@llumiverse/drivers 1.2.0 → 1.4.0-dev.20260629.090753Z

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 (403) hide show
  1. package/lib/{types/adobe → adobe}/firefly.d.ts +2 -1
  2. package/lib/adobe/firefly.d.ts.map +1 -0
  3. package/lib/adobe/firefly.js +120 -0
  4. package/lib/adobe/firefly.js.map +1 -0
  5. package/lib/anthropic/index.d.ts +23 -0
  6. package/lib/anthropic/index.d.ts.map +1 -0
  7. package/lib/anthropic/index.js +68 -0
  8. package/lib/anthropic/index.js.map +1 -0
  9. package/lib/{types/azure → azure}/azure_foundry.d.ts +9 -7
  10. package/lib/azure/azure_foundry.d.ts.map +1 -0
  11. package/lib/{esm/azure → azure}/azure_foundry.js +138 -124
  12. package/lib/azure/azure_foundry.js.map +1 -0
  13. package/lib/{types/bedrock → bedrock}/converse.d.ts +2 -2
  14. package/lib/bedrock/converse.d.ts.map +1 -0
  15. package/lib/{esm/bedrock → bedrock}/converse.js +86 -79
  16. package/lib/bedrock/converse.js.map +1 -0
  17. package/lib/bedrock/embeddings.d.ts +4 -0
  18. package/lib/bedrock/embeddings.d.ts.map +1 -0
  19. package/lib/bedrock/embeddings.js +359 -0
  20. package/lib/bedrock/embeddings.js.map +1 -0
  21. package/lib/{types/bedrock → bedrock}/index.d.ts +33 -9
  22. package/lib/bedrock/index.d.ts.map +1 -0
  23. package/lib/{esm/bedrock → bedrock}/index.js +599 -324
  24. package/lib/bedrock/index.js.map +1 -0
  25. package/lib/{types/bedrock → bedrock}/nova-image-payload.d.ts +5 -5
  26. package/lib/bedrock/nova-image-payload.d.ts.map +1 -0
  27. package/lib/{esm/bedrock → bedrock}/nova-image-payload.js +31 -36
  28. package/lib/bedrock/nova-image-payload.js.map +1 -0
  29. package/lib/{types/bedrock → bedrock}/payloads.d.ts +1 -1
  30. package/lib/bedrock/payloads.d.ts.map +1 -0
  31. package/lib/{cjs/bedrock → bedrock}/payloads.js.map +1 -1
  32. package/lib/{types/bedrock → bedrock}/s3.d.ts +3 -2
  33. package/lib/bedrock/s3.d.ts.map +1 -0
  34. package/lib/{esm/bedrock → bedrock}/s3.js +27 -23
  35. package/lib/bedrock/s3.js.map +1 -0
  36. package/lib/{types/bedrock → bedrock}/twelvelabs.d.ts +8 -9
  37. package/lib/bedrock/twelvelabs.d.ts.map +1 -0
  38. package/lib/{esm/bedrock → bedrock}/twelvelabs.js +17 -21
  39. package/lib/bedrock/twelvelabs.js.map +1 -0
  40. package/lib/{types/groq → groq}/index.d.ts +6 -4
  41. package/lib/groq/index.d.ts.map +1 -0
  42. package/lib/{esm/groq → groq}/index.js +72 -39
  43. package/lib/groq/index.js.map +1 -0
  44. package/lib/{types/huggingface_ie.d.ts → huggingface_ie.d.ts} +4 -3
  45. package/lib/huggingface_ie.d.ts.map +1 -0
  46. package/lib/{esm/huggingface_ie.js → huggingface_ie.js} +32 -31
  47. package/lib/huggingface_ie.js.map +1 -0
  48. package/lib/index.d.ts +16 -0
  49. package/lib/index.d.ts.map +1 -0
  50. package/lib/index.js +16 -0
  51. package/lib/index.js.map +1 -0
  52. package/lib/{types/mistral → mistral}/index.d.ts +6 -5
  53. package/lib/mistral/index.d.ts.map +1 -0
  54. package/lib/{esm/mistral → mistral}/index.js +66 -38
  55. package/lib/mistral/index.js.map +1 -0
  56. package/lib/{types/mistral → mistral}/types.d.ts +1 -0
  57. package/lib/mistral/types.d.ts.map +1 -0
  58. package/lib/mistral/types.js.map +1 -0
  59. package/lib/{types/openai → openai}/azure_openai.d.ts +5 -4
  60. package/lib/openai/azure_openai.d.ts.map +1 -0
  61. package/lib/{esm/openai → openai}/azure_openai.js +17 -14
  62. package/lib/openai/azure_openai.js.map +1 -0
  63. package/lib/openai/drivers.d.ts +4 -0
  64. package/lib/openai/drivers.d.ts.map +1 -0
  65. package/lib/openai/drivers.js +9 -0
  66. package/lib/openai/drivers.js.map +1 -0
  67. package/lib/{types/openai → openai}/index.d.ts +17 -5
  68. package/lib/openai/index.d.ts.map +1 -0
  69. package/lib/{esm/openai → openai}/index.js +254 -148
  70. package/lib/openai/index.js.map +1 -0
  71. package/lib/{types/openai → openai}/openai.d.ts +3 -3
  72. package/lib/openai/openai.d.ts.map +1 -0
  73. package/lib/openai/openai.js +15 -0
  74. package/lib/openai/openai.js.map +1 -0
  75. package/lib/{types/openai → openai}/openai_compatible.d.ts +3 -3
  76. package/lib/openai/openai_compatible.d.ts.map +1 -0
  77. package/lib/{esm/openai → openai}/openai_compatible.js +14 -11
  78. package/lib/openai/openai_compatible.js.map +1 -0
  79. package/lib/{types/openai → openai}/openai_format.d.ts +3 -2
  80. package/lib/openai/openai_format.d.ts.map +1 -0
  81. package/lib/{esm/openai → openai}/openai_format.js +66 -24
  82. package/lib/openai/openai_format.js.map +1 -0
  83. package/lib/{types/replicate.d.ts → replicate.d.ts} +3 -2
  84. package/lib/replicate.d.ts.map +1 -0
  85. package/lib/{esm/replicate.js → replicate.js} +59 -49
  86. package/lib/replicate.js.map +1 -0
  87. package/lib/shared/claude-messages.d.ts +99 -0
  88. package/lib/shared/claude-messages.d.ts.map +1 -0
  89. package/lib/shared/claude-messages.js +869 -0
  90. package/lib/shared/claude-messages.js.map +1 -0
  91. package/lib/{types/shared → shared}/claude-thinking.d.ts +1 -1
  92. package/lib/shared/claude-thinking.d.ts.map +1 -0
  93. package/lib/{esm/shared → shared}/claude-thinking.js +5 -7
  94. package/lib/shared/claude-thinking.js.map +1 -0
  95. package/lib/shared/debug-prompt.d.ts +5 -0
  96. package/lib/shared/debug-prompt.d.ts.map +1 -0
  97. package/lib/shared/debug-prompt.js +25 -0
  98. package/lib/shared/debug-prompt.js.map +1 -0
  99. package/lib/{types/test-driver → test-driver}/TestErrorCompletionStream.d.ts +1 -1
  100. package/lib/test-driver/TestErrorCompletionStream.d.ts.map +1 -0
  101. package/lib/test-driver/TestErrorCompletionStream.js +16 -0
  102. package/lib/test-driver/TestErrorCompletionStream.js.map +1 -0
  103. package/lib/{types/test-driver → test-driver}/TestValidationErrorCompletionStream.d.ts +1 -1
  104. package/lib/test-driver/TestValidationErrorCompletionStream.d.ts.map +1 -0
  105. package/lib/{esm/test-driver → test-driver}/TestValidationErrorCompletionStream.js +4 -4
  106. package/lib/test-driver/TestValidationErrorCompletionStream.js.map +1 -0
  107. package/lib/{types/test-driver → test-driver}/index.d.ts +3 -3
  108. package/lib/test-driver/index.d.ts.map +1 -0
  109. package/lib/{esm/test-driver → test-driver}/index.js +20 -20
  110. package/lib/test-driver/index.js.map +1 -0
  111. package/lib/{types/test-driver → test-driver}/utils.d.ts +1 -1
  112. package/lib/test-driver/utils.d.ts.map +1 -0
  113. package/lib/{esm/test-driver → test-driver}/utils.js +4 -4
  114. package/lib/test-driver/utils.js.map +1 -0
  115. package/lib/togetherai/index.d.ts +15 -0
  116. package/lib/togetherai/index.d.ts.map +1 -0
  117. package/lib/togetherai/index.js +54 -0
  118. package/lib/togetherai/index.js.map +1 -0
  119. package/lib/{types/togetherai → togetherai}/interfaces.d.ts +1 -1
  120. package/lib/togetherai/interfaces.d.ts.map +1 -0
  121. package/lib/{cjs/watsonx → togetherai}/interfaces.js.map +1 -1
  122. package/lib/vertexai/debug.d.ts +2 -0
  123. package/lib/vertexai/debug.d.ts.map +1 -0
  124. package/lib/{esm/vertexai → vertexai}/debug.js +1 -1
  125. package/lib/vertexai/debug.js.map +1 -0
  126. package/lib/vertexai/embeddings/embed-legacy-multimodal.d.ts +9 -0
  127. package/lib/vertexai/embeddings/embed-legacy-multimodal.d.ts.map +1 -0
  128. package/lib/vertexai/embeddings/embed-legacy-multimodal.js +141 -0
  129. package/lib/vertexai/embeddings/embed-legacy-multimodal.js.map +1 -0
  130. package/lib/vertexai/embeddings/embed.d.ts +13 -0
  131. package/lib/vertexai/embeddings/embed.d.ts.map +1 -0
  132. package/lib/vertexai/embeddings/embed.js +162 -0
  133. package/lib/vertexai/embeddings/embed.js.map +1 -0
  134. package/lib/vertexai/embeddings/source-utils.d.ts +9 -0
  135. package/lib/vertexai/embeddings/source-utils.d.ts.map +1 -0
  136. package/lib/vertexai/embeddings/source-utils.js +18 -0
  137. package/lib/vertexai/embeddings/source-utils.js.map +1 -0
  138. package/lib/{types/vertexai → vertexai}/index.d.ts +31 -19
  139. package/lib/vertexai/index.d.ts.map +1 -0
  140. package/lib/{esm/vertexai → vertexai}/index.js +221 -159
  141. package/lib/vertexai/index.js.map +1 -0
  142. package/lib/vertexai/models/claude.d.ts +16 -0
  143. package/lib/vertexai/models/claude.d.ts.map +1 -0
  144. package/lib/vertexai/models/claude.js +65 -0
  145. package/lib/vertexai/models/claude.js.map +1 -0
  146. package/lib/{types/vertexai → vertexai}/models/gemini.d.ts +29 -5
  147. package/lib/vertexai/models/gemini.d.ts.map +1 -0
  148. package/lib/{esm/vertexai → vertexai}/models/gemini.js +255 -127
  149. package/lib/vertexai/models/gemini.js.map +1 -0
  150. package/lib/{types/vertexai → vertexai}/models/imagen.d.ts +12 -11
  151. package/lib/vertexai/models/imagen.d.ts.map +1 -0
  152. package/lib/{esm/vertexai → vertexai}/models/imagen.js +74 -47
  153. package/lib/vertexai/models/imagen.js.map +1 -0
  154. package/lib/{types/vertexai → vertexai}/models/llama.d.ts +4 -4
  155. package/lib/vertexai/models/llama.d.ts.map +1 -0
  156. package/lib/{esm/vertexai → vertexai}/models/llama.js +37 -33
  157. package/lib/vertexai/models/llama.js.map +1 -0
  158. package/lib/vertexai/models.d.ts +21 -0
  159. package/lib/vertexai/models.d.ts.map +1 -0
  160. package/lib/{esm/vertexai → vertexai}/models.js +12 -9
  161. package/lib/vertexai/models.js.map +1 -0
  162. package/lib/{types/watsonx → watsonx}/index.d.ts +4 -3
  163. package/lib/watsonx/index.d.ts.map +1 -0
  164. package/lib/{esm/watsonx → watsonx}/index.js +69 -41
  165. package/lib/watsonx/index.js.map +1 -0
  166. package/lib/watsonx/interfaces.d.ts.map +1 -0
  167. package/lib/{esm/watsonx → watsonx}/interfaces.js.map +1 -1
  168. package/lib/{types/xai → xai}/index.d.ts +4 -4
  169. package/lib/xai/index.d.ts.map +1 -0
  170. package/lib/{esm/xai → xai}/index.js +22 -18
  171. package/lib/xai/index.js.map +1 -0
  172. package/package.json +88 -36
  173. package/src/adobe/firefly.ts +60 -43
  174. package/src/anthropic/index.ts +121 -0
  175. package/src/azure/azure_foundry.ts +210 -165
  176. package/src/bedrock/converse.ts +124 -101
  177. package/src/bedrock/embeddings.test.ts +508 -0
  178. package/src/bedrock/embeddings.ts +517 -0
  179. package/src/bedrock/error-handling.test.ts +62 -14
  180. package/src/bedrock/index.ts +832 -466
  181. package/src/bedrock/nova-image-payload.ts +98 -91
  182. package/src/bedrock/payloads.ts +9 -9
  183. package/src/bedrock/s3.test.ts +39 -0
  184. package/src/bedrock/s3.ts +57 -38
  185. package/src/bedrock/streaming-tool-use.test.ts +86 -69
  186. package/src/bedrock/twelvelabs.ts +35 -32
  187. package/src/groq/index.ts +143 -60
  188. package/src/http-timeout-wiring.test.ts +263 -0
  189. package/src/huggingface_ie.ts +45 -61
  190. package/src/index.ts +15 -15
  191. package/src/mistral/index.ts +97 -48
  192. package/src/mistral/types.ts +13 -12
  193. package/src/openai/azure_openai.ts +35 -27
  194. package/src/openai/drivers.ts +9 -0
  195. package/src/openai/error-handling.test.ts +308 -113
  196. package/src/openai/index.ts +389 -254
  197. package/src/openai/openai.ts +6 -13
  198. package/src/openai/openai_compatible.ts +35 -25
  199. package/src/openai/openai_format.ts +90 -40
  200. package/src/replicate.ts +108 -86
  201. package/src/shared/claude-messages.test.ts +37 -0
  202. package/src/shared/claude-messages.ts +1085 -0
  203. package/src/shared/claude-thinking.ts +6 -12
  204. package/src/shared/debug-prompt.ts +28 -0
  205. package/src/test-driver/TestErrorCompletionStream.ts +9 -10
  206. package/src/test-driver/TestValidationErrorCompletionStream.ts +9 -10
  207. package/src/test-driver/index.ts +43 -27
  208. package/src/test-driver/utils.ts +8 -8
  209. package/src/togetherai/index.test.ts +32 -0
  210. package/src/togetherai/index.ts +64 -128
  211. package/src/togetherai/interfaces.ts +5 -5
  212. package/src/vertexai/debug.ts +3 -3
  213. package/src/vertexai/embeddings/embed-legacy-multimodal.ts +211 -0
  214. package/src/vertexai/embeddings/embed.ts +206 -0
  215. package/src/vertexai/embeddings/embeddings.test.ts +497 -0
  216. package/src/vertexai/embeddings/source-utils.test.ts +54 -0
  217. package/src/vertexai/embeddings/source-utils.ts +29 -0
  218. package/src/vertexai/index.ts +339 -253
  219. package/src/vertexai/models/claude-error-handling.test.ts +86 -39
  220. package/src/vertexai/models/claude-streaming-spacing.test.ts +82 -75
  221. package/src/vertexai/models/claude.ts +84 -1041
  222. package/src/vertexai/models/gemini-conversation-mutation.test.ts +65 -23
  223. package/src/vertexai/models/gemini-error-handling.test.ts +126 -10
  224. package/src/vertexai/models/gemini-orphaned-tool-result.test.ts +118 -0
  225. package/src/vertexai/models/gemini.ts +372 -182
  226. package/src/vertexai/models/imagen.ts +164 -100
  227. package/src/vertexai/models/llama.ts +70 -48
  228. package/src/vertexai/models.ts +36 -16
  229. package/src/watsonx/index.ts +101 -65
  230. package/src/watsonx/interfaces.ts +10 -15
  231. package/src/xai/index.ts +30 -30
  232. package/lib/cjs/adobe/firefly.js +0 -120
  233. package/lib/cjs/adobe/firefly.js.map +0 -1
  234. package/lib/cjs/azure/azure_foundry.js +0 -432
  235. package/lib/cjs/azure/azure_foundry.js.map +0 -1
  236. package/lib/cjs/bedrock/converse.js +0 -359
  237. package/lib/cjs/bedrock/converse.js.map +0 -1
  238. package/lib/cjs/bedrock/index.js +0 -1508
  239. package/lib/cjs/bedrock/index.js.map +0 -1
  240. package/lib/cjs/bedrock/nova-image-payload.js +0 -207
  241. package/lib/cjs/bedrock/nova-image-payload.js.map +0 -1
  242. package/lib/cjs/bedrock/payloads.js +0 -3
  243. package/lib/cjs/bedrock/s3.js +0 -107
  244. package/lib/cjs/bedrock/s3.js.map +0 -1
  245. package/lib/cjs/bedrock/twelvelabs.js +0 -87
  246. package/lib/cjs/bedrock/twelvelabs.js.map +0 -1
  247. package/lib/cjs/groq/index.js +0 -328
  248. package/lib/cjs/groq/index.js.map +0 -1
  249. package/lib/cjs/huggingface_ie.js +0 -201
  250. package/lib/cjs/huggingface_ie.js.map +0 -1
  251. package/lib/cjs/index.js +0 -31
  252. package/lib/cjs/index.js.map +0 -1
  253. package/lib/cjs/mistral/index.js +0 -176
  254. package/lib/cjs/mistral/index.js.map +0 -1
  255. package/lib/cjs/mistral/types.js +0 -83
  256. package/lib/cjs/mistral/types.js.map +0 -1
  257. package/lib/cjs/openai/azure_openai.js +0 -72
  258. package/lib/cjs/openai/azure_openai.js.map +0 -1
  259. package/lib/cjs/openai/index.js +0 -1129
  260. package/lib/cjs/openai/index.js.map +0 -1
  261. package/lib/cjs/openai/openai.js +0 -21
  262. package/lib/cjs/openai/openai.js.map +0 -1
  263. package/lib/cjs/openai/openai_compatible.js +0 -63
  264. package/lib/cjs/openai/openai_compatible.js.map +0 -1
  265. package/lib/cjs/openai/openai_format.js +0 -131
  266. package/lib/cjs/openai/openai_format.js.map +0 -1
  267. package/lib/cjs/package.json +0 -3
  268. package/lib/cjs/replicate.js +0 -275
  269. package/lib/cjs/replicate.js.map +0 -1
  270. package/lib/cjs/shared/claude-thinking.js +0 -60
  271. package/lib/cjs/shared/claude-thinking.js.map +0 -1
  272. package/lib/cjs/test-driver/TestErrorCompletionStream.js +0 -20
  273. package/lib/cjs/test-driver/TestErrorCompletionStream.js.map +0 -1
  274. package/lib/cjs/test-driver/TestValidationErrorCompletionStream.js +0 -24
  275. package/lib/cjs/test-driver/TestValidationErrorCompletionStream.js.map +0 -1
  276. package/lib/cjs/test-driver/index.js +0 -109
  277. package/lib/cjs/test-driver/index.js.map +0 -1
  278. package/lib/cjs/test-driver/utils.js +0 -30
  279. package/lib/cjs/test-driver/utils.js.map +0 -1
  280. package/lib/cjs/togetherai/index.js +0 -126
  281. package/lib/cjs/togetherai/index.js.map +0 -1
  282. package/lib/cjs/togetherai/interfaces.js +0 -3
  283. package/lib/cjs/togetherai/interfaces.js.map +0 -1
  284. package/lib/cjs/vertexai/debug.js +0 -12
  285. package/lib/cjs/vertexai/debug.js.map +0 -1
  286. package/lib/cjs/vertexai/embeddings/embeddings-image.js +0 -27
  287. package/lib/cjs/vertexai/embeddings/embeddings-image.js.map +0 -1
  288. package/lib/cjs/vertexai/embeddings/embeddings-text.js +0 -23
  289. package/lib/cjs/vertexai/embeddings/embeddings-text.js.map +0 -1
  290. package/lib/cjs/vertexai/index.js +0 -644
  291. package/lib/cjs/vertexai/index.js.map +0 -1
  292. package/lib/cjs/vertexai/models/claude.js +0 -917
  293. package/lib/cjs/vertexai/models/claude.js.map +0 -1
  294. package/lib/cjs/vertexai/models/gemini.js +0 -858
  295. package/lib/cjs/vertexai/models/gemini.js.map +0 -1
  296. package/lib/cjs/vertexai/models/imagen.js +0 -303
  297. package/lib/cjs/vertexai/models/imagen.js.map +0 -1
  298. package/lib/cjs/vertexai/models/llama.js +0 -183
  299. package/lib/cjs/vertexai/models/llama.js.map +0 -1
  300. package/lib/cjs/vertexai/models.js +0 -35
  301. package/lib/cjs/vertexai/models.js.map +0 -1
  302. package/lib/cjs/watsonx/index.js +0 -161
  303. package/lib/cjs/watsonx/index.js.map +0 -1
  304. package/lib/cjs/watsonx/interfaces.js +0 -3
  305. package/lib/cjs/xai/index.js +0 -65
  306. package/lib/cjs/xai/index.js.map +0 -1
  307. package/lib/esm/adobe/firefly.js +0 -116
  308. package/lib/esm/adobe/firefly.js.map +0 -1
  309. package/lib/esm/azure/azure_foundry.js.map +0 -1
  310. package/lib/esm/bedrock/converse.js.map +0 -1
  311. package/lib/esm/bedrock/index.js.map +0 -1
  312. package/lib/esm/bedrock/nova-image-payload.js.map +0 -1
  313. package/lib/esm/bedrock/payloads.js.map +0 -1
  314. package/lib/esm/bedrock/s3.js.map +0 -1
  315. package/lib/esm/bedrock/twelvelabs.js.map +0 -1
  316. package/lib/esm/groq/index.js.map +0 -1
  317. package/lib/esm/huggingface_ie.js.map +0 -1
  318. package/lib/esm/index.js +0 -15
  319. package/lib/esm/index.js.map +0 -1
  320. package/lib/esm/mistral/index.js.map +0 -1
  321. package/lib/esm/mistral/types.js.map +0 -1
  322. package/lib/esm/openai/azure_openai.js.map +0 -1
  323. package/lib/esm/openai/index.js.map +0 -1
  324. package/lib/esm/openai/openai.js +0 -14
  325. package/lib/esm/openai/openai.js.map +0 -1
  326. package/lib/esm/openai/openai_compatible.js.map +0 -1
  327. package/lib/esm/openai/openai_format.js.map +0 -1
  328. package/lib/esm/replicate.js.map +0 -1
  329. package/lib/esm/shared/claude-thinking.js.map +0 -1
  330. package/lib/esm/test-driver/TestErrorCompletionStream.js +0 -16
  331. package/lib/esm/test-driver/TestErrorCompletionStream.js.map +0 -1
  332. package/lib/esm/test-driver/TestValidationErrorCompletionStream.js.map +0 -1
  333. package/lib/esm/test-driver/index.js.map +0 -1
  334. package/lib/esm/test-driver/utils.js.map +0 -1
  335. package/lib/esm/togetherai/index.js +0 -122
  336. package/lib/esm/togetherai/index.js.map +0 -1
  337. package/lib/esm/togetherai/interfaces.js.map +0 -1
  338. package/lib/esm/vertexai/debug.js.map +0 -1
  339. package/lib/esm/vertexai/embeddings/embeddings-image.js +0 -24
  340. package/lib/esm/vertexai/embeddings/embeddings-image.js.map +0 -1
  341. package/lib/esm/vertexai/embeddings/embeddings-text.js +0 -20
  342. package/lib/esm/vertexai/embeddings/embeddings-text.js.map +0 -1
  343. package/lib/esm/vertexai/index.js.map +0 -1
  344. package/lib/esm/vertexai/models/claude.js +0 -906
  345. package/lib/esm/vertexai/models/claude.js.map +0 -1
  346. package/lib/esm/vertexai/models/gemini.js.map +0 -1
  347. package/lib/esm/vertexai/models/imagen.js.map +0 -1
  348. package/lib/esm/vertexai/models/llama.js.map +0 -1
  349. package/lib/esm/vertexai/models.js.map +0 -1
  350. package/lib/esm/watsonx/index.js.map +0 -1
  351. package/lib/esm/xai/index.js.map +0 -1
  352. package/lib/types/adobe/firefly.d.ts.map +0 -1
  353. package/lib/types/azure/azure_foundry.d.ts.map +0 -1
  354. package/lib/types/bedrock/converse.d.ts.map +0 -1
  355. package/lib/types/bedrock/index.d.ts.map +0 -1
  356. package/lib/types/bedrock/nova-image-payload.d.ts.map +0 -1
  357. package/lib/types/bedrock/payloads.d.ts.map +0 -1
  358. package/lib/types/bedrock/s3.d.ts.map +0 -1
  359. package/lib/types/bedrock/twelvelabs.d.ts.map +0 -1
  360. package/lib/types/groq/index.d.ts.map +0 -1
  361. package/lib/types/huggingface_ie.d.ts.map +0 -1
  362. package/lib/types/index.d.ts +0 -15
  363. package/lib/types/index.d.ts.map +0 -1
  364. package/lib/types/mistral/index.d.ts.map +0 -1
  365. package/lib/types/mistral/types.d.ts.map +0 -1
  366. package/lib/types/openai/azure_openai.d.ts.map +0 -1
  367. package/lib/types/openai/index.d.ts.map +0 -1
  368. package/lib/types/openai/openai.d.ts.map +0 -1
  369. package/lib/types/openai/openai_compatible.d.ts.map +0 -1
  370. package/lib/types/openai/openai_format.d.ts.map +0 -1
  371. package/lib/types/replicate.d.ts.map +0 -1
  372. package/lib/types/shared/claude-thinking.d.ts.map +0 -1
  373. package/lib/types/test-driver/TestErrorCompletionStream.d.ts.map +0 -1
  374. package/lib/types/test-driver/TestValidationErrorCompletionStream.d.ts.map +0 -1
  375. package/lib/types/test-driver/index.d.ts.map +0 -1
  376. package/lib/types/test-driver/utils.d.ts.map +0 -1
  377. package/lib/types/togetherai/index.d.ts +0 -23
  378. package/lib/types/togetherai/index.d.ts.map +0 -1
  379. package/lib/types/togetherai/interfaces.d.ts.map +0 -1
  380. package/lib/types/vertexai/debug.d.ts +0 -2
  381. package/lib/types/vertexai/debug.d.ts.map +0 -1
  382. package/lib/types/vertexai/embeddings/embeddings-image.d.ts +0 -11
  383. package/lib/types/vertexai/embeddings/embeddings-image.d.ts.map +0 -1
  384. package/lib/types/vertexai/embeddings/embeddings-text.d.ts +0 -10
  385. package/lib/types/vertexai/embeddings/embeddings-text.d.ts.map +0 -1
  386. package/lib/types/vertexai/index.d.ts.map +0 -1
  387. package/lib/types/vertexai/models/claude.d.ts +0 -119
  388. package/lib/types/vertexai/models/claude.d.ts.map +0 -1
  389. package/lib/types/vertexai/models/gemini.d.ts.map +0 -1
  390. package/lib/types/vertexai/models/imagen.d.ts.map +0 -1
  391. package/lib/types/vertexai/models/llama.d.ts.map +0 -1
  392. package/lib/types/vertexai/models.d.ts +0 -20
  393. package/lib/types/vertexai/models.d.ts.map +0 -1
  394. package/lib/types/watsonx/index.d.ts.map +0 -1
  395. package/lib/types/watsonx/interfaces.d.ts.map +0 -1
  396. package/lib/types/xai/index.d.ts.map +0 -1
  397. package/src/vertexai/embeddings/embeddings-image.ts +0 -52
  398. package/src/vertexai/embeddings/embeddings-text.ts +0 -54
  399. /package/lib/{esm/bedrock → bedrock}/payloads.js +0 -0
  400. /package/lib/{esm/mistral → mistral}/types.js +0 -0
  401. /package/lib/{esm/togetherai → togetherai}/interfaces.js +0 -0
  402. /package/lib/{types/watsonx → watsonx}/interfaces.d.ts +0 -0
  403. /package/lib/{esm/watsonx → watsonx}/interfaces.js +0 -0
@@ -1,86 +1,93 @@
1
1
  import {
2
- ContentBlock,
2
+ type ContentBlock,
3
3
  ConversationRole,
4
- ConverseRequest,
5
- Message,
6
- SystemContentBlock,
7
- ToolResultContentBlock,
8
- } from "@aws-sdk/client-bedrock-runtime";
9
- import { DataSource, ExecutionOptions, PromptRole, PromptSegment, readStreamAsString, readStreamAsUint8Array } from "@llumiverse/core";
10
- import { parseS3UrlToUri } from "./s3.js";
4
+ type ConverseRequest,
5
+ type Message,
6
+ type SystemContentBlock,
7
+ type ToolResultContentBlock,
8
+ } from '@aws-sdk/client-bedrock-runtime';
9
+ import {
10
+ type DataSource,
11
+ type ExecutionOptions,
12
+ PromptRole,
13
+ type PromptSegment,
14
+ readStreamAsString,
15
+ readStreamAsUint8Array,
16
+ } from '@llumiverse/core';
17
+ import { isAmazonS3Hostname, parseS3UrlToUri } from './s3.js';
11
18
 
12
19
  function roleConversion(role: PromptRole): ConversationRole {
13
20
  return role === PromptRole.assistant ? ConversationRole.ASSISTANT : ConversationRole.USER;
14
21
  }
15
22
 
16
- type BedrockImageFormat = "png" | "jpeg" | "gif" | "webp";
17
- const BEDROCK_IMAGE_FORMATS = new Set<string>(["png", "jpeg", "gif", "webp"]);
23
+ type BedrockImageFormat = 'png' | 'jpeg' | 'gif' | 'webp';
24
+ const BEDROCK_IMAGE_FORMATS = new Set<string>(['png', 'jpeg', 'gif', 'webp']);
18
25
  const mimeToImageMap: Record<string, BedrockImageFormat> = {
19
- "image/png": "png",
20
- "image/jpeg": "jpeg",
21
- "image/gif": "gif",
22
- "image/webp": "webp",
26
+ 'image/png': 'png',
27
+ 'image/jpeg': 'jpeg',
28
+ 'image/gif': 'gif',
29
+ 'image/webp': 'webp',
23
30
  };
24
31
  function mimeToImageType(mime: string): BedrockImageFormat {
25
32
  const mapped = mimeToImageMap[mime];
26
33
  if (mapped) return mapped;
27
- if (mime.startsWith("image/")) {
28
- const subtype = mime.split("/")[1];
34
+ if (mime.startsWith('image/')) {
35
+ const subtype = mime.split('/')[1];
29
36
  if (subtype && BEDROCK_IMAGE_FORMATS.has(subtype)) {
30
37
  return subtype as BedrockImageFormat;
31
38
  }
32
39
  }
33
- return "png";
40
+ return 'png';
34
41
  }
35
42
 
36
- type BedrockDocFormat = "pdf" | "csv" | "doc" | "docx" | "xls" | "xlsx" | "html" | "txt" | "md";
37
- const BEDROCK_DOC_FORMATS = new Set<string>(["pdf", "csv", "doc", "docx", "xls", "xlsx", "html", "txt", "md"]);
43
+ type BedrockDocFormat = 'pdf' | 'csv' | 'doc' | 'docx' | 'xls' | 'xlsx' | 'html' | 'txt' | 'md';
44
+ const BEDROCK_DOC_FORMATS = new Set<string>(['pdf', 'csv', 'doc', 'docx', 'xls', 'xlsx', 'html', 'txt', 'md']);
38
45
  const mimeToDocMap: Record<string, BedrockDocFormat> = {
39
- "application/pdf": "pdf",
40
- "text/csv": "csv",
41
- "application/msword": "doc",
42
- "application/vnd.openxmlformats-officedocument.wordprocessingml.document": "docx",
43
- "application/vnd.ms-excel": "xls",
44
- "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": "xlsx",
45
- "text/html": "html",
46
- "text/plain": "txt",
47
- "text/markdown": "md",
46
+ 'application/pdf': 'pdf',
47
+ 'text/csv': 'csv',
48
+ 'application/msword': 'doc',
49
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': 'docx',
50
+ 'application/vnd.ms-excel': 'xls',
51
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': 'xlsx',
52
+ 'text/html': 'html',
53
+ 'text/plain': 'txt',
54
+ 'text/markdown': 'md',
48
55
  };
49
56
  function mimeToDocType(mime: string): BedrockDocFormat {
50
57
  // 1. Exact map lookup (handles complex MIME types like vnd.openxmlformats-*)
51
58
  const mapped = mimeToDocMap[mime];
52
59
  if (mapped) return mapped;
53
60
  // 2. Fallback: extract subtype for simple application/ or text/ MIME types
54
- if (mime.startsWith("application/") || mime.startsWith("text/")) {
55
- const subtype = mime.split("/")[1];
61
+ if (mime.startsWith('application/') || mime.startsWith('text/')) {
62
+ const subtype = mime.split('/')[1];
56
63
  if (subtype && BEDROCK_DOC_FORMATS.has(subtype)) {
57
64
  return subtype as BedrockDocFormat;
58
65
  }
59
66
  }
60
- return "txt";
67
+ return 'txt';
61
68
  }
62
- type BedrockVideoFormat = "mov" | "mkv" | "mp4" | "webm" | "flv" | "mpeg" | "mpg" | "wmv" | "three_gp";
63
- const BEDROCK_VIDEO_FORMATS = new Set<string>(["mov", "mkv", "mp4", "webm", "flv", "mpeg", "mpg", "wmv", "three_gp"]);
69
+ type BedrockVideoFormat = 'mov' | 'mkv' | 'mp4' | 'webm' | 'flv' | 'mpeg' | 'mpg' | 'wmv' | 'three_gp';
70
+ const BEDROCK_VIDEO_FORMATS = new Set<string>(['mov', 'mkv', 'mp4', 'webm', 'flv', 'mpeg', 'mpg', 'wmv', 'three_gp']);
64
71
  const mimeToVideoMap: Record<string, BedrockVideoFormat> = {
65
- "video/quicktime": "mov",
66
- "video/x-matroska": "mkv",
67
- "video/mp4": "mp4",
68
- "video/webm": "webm",
69
- "video/x-flv": "flv",
70
- "video/mpeg": "mpeg",
71
- "video/x-ms-wmv": "wmv",
72
- "video/3gpp": "three_gp",
72
+ 'video/quicktime': 'mov',
73
+ 'video/x-matroska': 'mkv',
74
+ 'video/mp4': 'mp4',
75
+ 'video/webm': 'webm',
76
+ 'video/x-flv': 'flv',
77
+ 'video/mpeg': 'mpeg',
78
+ 'video/x-ms-wmv': 'wmv',
79
+ 'video/3gpp': 'three_gp',
73
80
  };
74
81
  function mimeToVideoType(mime: string): BedrockVideoFormat {
75
82
  const mapped = mimeToVideoMap[mime];
76
83
  if (mapped) return mapped;
77
- if (mime.startsWith("video/")) {
78
- const subtype = mime.split("/")[1];
84
+ if (mime.startsWith('video/')) {
85
+ const subtype = mime.split('/')[1];
79
86
  if (subtype && BEDROCK_VIDEO_FORMATS.has(subtype)) {
80
87
  return subtype as BedrockVideoFormat;
81
88
  }
82
89
  }
83
- return "mp4";
90
+ return 'mp4';
84
91
  }
85
92
 
86
93
  /**
@@ -100,8 +107,8 @@ function cleanBedrockFilename(name: string | undefined): string | undefined {
100
107
  }
101
108
 
102
109
  return name
103
- .replace(/[^\w\s\-()[\]]/g, " ") // Replace invalid characters with space
104
- .replace(/\s+/g, " ") // Collapse consecutive whitespaces
110
+ .replace(/[^\w\s\-()[\]]/g, ' ') // Replace invalid characters with space
111
+ .replace(/\s+/g, ' ') // Collapse consecutive whitespaces
105
112
  .trim();
106
113
  }
107
114
 
@@ -109,17 +116,17 @@ type FileProcessingMode = 'content' | 'tool';
109
116
 
110
117
  async function processFile<T extends FileProcessingMode>(
111
118
  f: DataSource,
112
- mode: T
119
+ mode: T,
113
120
  ): Promise<T extends 'content' ? ContentBlock : ToolResultContentBlock> {
114
121
  const source = await f.getStream();
115
122
 
116
123
  //Image file - "png" | "jpeg" | "gif" | "webp"
117
- if (f.mime_type && f.mime_type.startsWith("image")) {
124
+ if (f.mime_type?.startsWith('image')) {
118
125
  const imageBlock = {
119
126
  image: {
120
127
  format: mimeToImageType(f.mime_type),
121
128
  source: { bytes: await readStreamAsUint8Array(source) },
122
- }
129
+ },
123
130
  };
124
131
 
125
132
  return mode === 'content'
@@ -127,19 +134,21 @@ async function processFile<T extends FileProcessingMode>(
127
134
  : (imageBlock satisfies ToolResultContentBlock.ImageMember);
128
135
  }
129
136
  //Document file - "pdf | csv | doc | docx | xls | xlsx | html | txt | md"
130
- else if (f.mime_type && (f.mime_type.startsWith("text") || f.mime_type?.startsWith("application"))) {
137
+ else if (f.mime_type && (f.mime_type.startsWith('text') || f.mime_type?.startsWith('application'))) {
131
138
  // Handle JSON files specially
132
- if (f.mime_type === "application/json" || (f.name && f.name.endsWith('.json'))) {
139
+ if (f.mime_type === 'application/json' || f.name?.endsWith('.json')) {
133
140
  const jsonContent = await readStreamAsString(source);
134
141
  try {
135
142
  const parsedJson = JSON.parse(jsonContent);
136
143
  if (mode === 'tool') {
137
- return { json: parsedJson } satisfies ToolResultContentBlock.JsonMember as T extends 'content' ? ContentBlock : ToolResultContentBlock;
144
+ return { json: parsedJson } satisfies ToolResultContentBlock.JsonMember as T extends 'content'
145
+ ? ContentBlock
146
+ : ToolResultContentBlock;
138
147
  } else {
139
148
  // ContentBlock doesn't support JSON, so treat as text
140
149
  return { text: jsonContent } satisfies ContentBlock.TextMember;
141
150
  }
142
- } catch (error) {
151
+ } catch {
143
152
  const textBlock = { text: jsonContent };
144
153
  return mode === 'content'
145
154
  ? (textBlock satisfies ContentBlock.TextMember)
@@ -160,33 +169,35 @@ async function processFile<T extends FileProcessingMode>(
160
169
  }
161
170
  }
162
171
  //Video file - "mov | mkv | mp4 | webm | flv | mpeg | mpg | wmv | three_gp"
163
- else if (f.mime_type && f.mime_type.startsWith("video")) {
164
- let url_string = (await f.getURL()).toLowerCase();
172
+ else if (f.mime_type?.startsWith('video')) {
173
+ let url_string = await f.getURL();
165
174
  let url_format = new URL(url_string);
166
- if (url_format.hostname.endsWith("amazonaws.com") &&
167
- (url_format.hostname.startsWith("s3.") || url_format.hostname.includes(".s3."))) {
175
+ if (isAmazonS3Hostname(url_format.hostname)) {
168
176
  //Convert to s3:// format
169
177
  const parsedUrl = parseS3UrlToUri(new URL(url_string));
170
178
  url_string = parsedUrl;
171
179
  url_format = new URL(parsedUrl);
172
180
  }
173
181
 
174
- const videoBlock = url_format.protocol === "s3:" ? {
175
- video: {
176
- format: mimeToVideoType(f.mime_type),
177
- source: {
178
- s3Location: {
179
- uri: url_string, //S3 URL
180
- //bucketOwner: We don't have this additional information.
181
- }
182
- },
183
- },
184
- } : {
185
- video: {
186
- format: mimeToVideoType(f.mime_type),
187
- source: { bytes: await readStreamAsUint8Array(source) },
188
- },
189
- };
182
+ const videoBlock =
183
+ url_format.protocol === 's3:'
184
+ ? {
185
+ video: {
186
+ format: mimeToVideoType(f.mime_type),
187
+ source: {
188
+ s3Location: {
189
+ uri: url_string, //S3 URL
190
+ //bucketOwner: We don't have this additional information.
191
+ },
192
+ },
193
+ },
194
+ }
195
+ : {
196
+ video: {
197
+ format: mimeToVideoType(f.mime_type),
198
+ source: { bytes: await readStreamAsUint8Array(source) },
199
+ },
200
+ };
190
201
 
191
202
  return mode === 'content'
192
203
  ? (videoBlock satisfies ContentBlock.VideoMember)
@@ -205,24 +216,27 @@ async function processFileToContentBlock(f: DataSource): Promise<ContentBlock> {
205
216
  try {
206
217
  return processFile(f, 'content');
207
218
  } catch (error) {
208
- throw new Error(`Failed to process file ${f.name} for prompt: ${error instanceof Error ? error.message : String(error)}`);
219
+ throw new Error(
220
+ `Failed to process file ${f.name} for prompt: ${error instanceof Error ? error.message : String(error)}`,
221
+ );
209
222
  }
210
223
  }
211
224
 
212
225
  async function processFileToToolContentBlock(f: DataSource): Promise<ToolResultContentBlock> {
213
226
  try {
214
227
  return processFile(f, 'tool');
215
- }
216
- catch (error) {
217
- throw new Error(`Failed to process file ${f.name} for tool response: ${error instanceof Error ? error.message : String(error)}`);
228
+ } catch (error) {
229
+ throw new Error(
230
+ `Failed to process file ${f.name} for tool response: ${error instanceof Error ? error.message : String(error)}`,
231
+ );
218
232
  }
219
233
  }
220
234
 
221
235
  export function converseConcatMessages(messages: Message[] | undefined): Message[] {
222
236
  if (!messages || messages.length === 0) return [];
223
237
 
224
- const needsMerging = messages.some((message, i) =>
225
- i < messages.length - 1 && message.role === messages[i + 1].role
238
+ const needsMerging = messages.some(
239
+ (message, i) => i < messages.length - 1 && message.role === messages[i + 1].role,
226
240
  );
227
241
  // If no merging needed, return original array
228
242
  if (!needsMerging) {
@@ -248,15 +262,22 @@ export function converseConcatMessages(messages: Message[] | undefined): Message
248
262
 
249
263
  export function converseSystemToMessages(system: SystemContentBlock[]): Message {
250
264
  return {
251
- content: [{ text: system.map(system => system.text).join('\n').trim() }],
252
- role: ConversationRole.USER
265
+ content: [
266
+ {
267
+ text: system
268
+ .map((system) => system.text)
269
+ .join('\n')
270
+ .trim(),
271
+ },
272
+ ],
273
+ role: ConversationRole.USER,
253
274
  };
254
275
  }
255
276
 
256
277
  export function converseRemoveJSONprefill(messages: Message[] | undefined): Message[] {
257
278
  //Remove the "```json" stop message
258
279
  if (messages && messages.length > 0) {
259
- if (messages[messages.length - 1].content?.[0].text === "```json") {
280
+ if (messages[messages.length - 1].content?.[0].text === '```json') {
260
281
  messages.pop();
261
282
  }
262
283
  }
@@ -270,19 +291,19 @@ export function converseJSONprefill(messages: Message[] | undefined): Message[]
270
291
 
271
292
  //prefill the json
272
293
  messages.push({
273
- content: [{ text: "```json" }],
294
+ content: [{ text: '```json' }],
274
295
  role: ConversationRole.ASSISTANT,
275
296
  });
276
297
  return messages;
277
298
  }
278
299
 
279
300
  // Used to ignore unsupported roles. Typically these are things like image specific roles.
280
- const unsupportedRoles = [
281
- PromptRole.negative,
282
- PromptRole.mask,
283
- ];
301
+ const unsupportedRoles = [PromptRole.negative, PromptRole.mask];
284
302
 
285
- export async function formatConversePrompt(segments: PromptSegment[], options: ExecutionOptions): Promise<ConverseRequest> {
303
+ export async function formatConversePrompt(
304
+ segments: PromptSegment[],
305
+ options: ExecutionOptions,
306
+ ): Promise<ConverseRequest> {
286
307
  //Non-const for concat
287
308
  let system: SystemContentBlock.TextMember[] | undefined = [];
288
309
  const safety: Message[] = [];
@@ -294,7 +315,7 @@ export async function formatConversePrompt(segments: PromptSegment[], options: E
294
315
  system.push({ text: segment.content });
295
316
  } else if (segment.role === PromptRole.tool) {
296
317
  if (!segment.tool_use_id) {
297
- throw new Error("Tool use ID is required for tool segments");
318
+ throw new Error('Tool use ID is required for tool segments');
298
319
  }
299
320
  //Tool use results (i.e. the model has requested a tool and this it the answer to that request)
300
321
  const toolContentBlocks: ToolResultContentBlock[] = [];
@@ -311,13 +332,15 @@ export async function formatConversePrompt(segments: PromptSegment[], options: E
311
332
  toolContentBlocks.push({ text: '[No output]' });
312
333
  }
313
334
  messages.push({
314
- content: [{
315
- toolResult: {
316
- toolUseId: segment.tool_use_id,
317
- content: toolContentBlocks,
318
- }
319
- }],
320
- role: ConversationRole.USER
335
+ content: [
336
+ {
337
+ toolResult: {
338
+ toolUseId: segment.tool_use_id,
339
+ content: toolContentBlocks,
340
+ },
341
+ },
342
+ ],
343
+ role: ConversationRole.USER,
321
344
  });
322
345
  } else if (!unsupportedRoles.includes(segment.role)) {
323
346
  //User, Assistant or safety roles
@@ -334,7 +357,7 @@ export async function formatConversePrompt(segments: PromptSegment[], options: E
334
357
  if (contentBlocks.length !== 0) {
335
358
  const message = { content: contentBlocks, role: roleConversion(segment.role) };
336
359
  if (segment.role === PromptRole.safety) {
337
- safety.push(message)
360
+ safety.push(message);
338
361
  } else {
339
362
  messages.push(message);
340
363
  }
@@ -345,11 +368,11 @@ export async function formatConversePrompt(segments: PromptSegment[], options: E
345
368
  if (options.result_schema) {
346
369
  let schemaText: string;
347
370
  if (options.tools && options.tools.length > 0) {
348
- schemaText = "When not calling tools, the answer must be a JSON object using the following JSON Schema:\n" + JSON.stringify(options.result_schema, undefined, 2);
371
+ schemaText = `When not calling tools, the answer must be a JSON object using the following JSON Schema:\n${JSON.stringify(options.result_schema, undefined, 2)}`;
349
372
  } else {
350
- schemaText = "The answer must be a JSON object using the following JSON Schema:\n" + JSON.stringify(options.result_schema, undefined, 2);
373
+ schemaText = `The answer must be a JSON object using the following JSON Schema:\n${JSON.stringify(options.result_schema, undefined, 2)}`;
351
374
  }
352
- system.push({ text: "IMPORTANT: " + schemaText });
375
+ system.push({ text: `IMPORTANT: ${schemaText}` });
353
376
  }
354
377
 
355
378
  // Safety messages are user messages that should be included at the end.
@@ -364,7 +387,7 @@ export async function formatConversePrompt(segments: PromptSegment[], options: E
364
387
  if (systemMessage?.content?.[0]?.text?.trim()) {
365
388
  messages.push(systemMessage);
366
389
  } else {
367
- throw new Error("Prompt must contain at least one message");
390
+ throw new Error('Prompt must contain at least one message');
368
391
  }
369
392
  system = undefined;
370
393
  }