@llumiverse/drivers 1.3.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 (409) 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/{types/anthropic → anthropic}/index.d.ts +4 -2
  6. package/lib/anthropic/index.d.ts.map +1 -0
  7. package/lib/{esm/anthropic → anthropic}/index.js +19 -8
  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 +16 -5
  68. package/lib/openai/index.d.ts.map +1 -0
  69. package/lib/{esm/openai → openai}/index.js +242 -141
  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/{types/shared → shared}/claude-messages.d.ts +25 -1
  88. package/lib/shared/claude-messages.d.ts.map +1 -0
  89. package/lib/{esm/shared → shared}/claude-messages.js +212 -59
  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/{types/vertexai → vertexai}/models/claude.d.ts +4 -4
  143. package/lib/vertexai/models/claude.d.ts.map +1 -0
  144. package/lib/{esm/vertexai → vertexai}/models/claude.js +17 -20
  145. package/lib/vertexai/models/claude.js.map +1 -0
  146. package/lib/{types/vertexai → vertexai}/models/gemini.d.ts +28 -4
  147. package/lib/vertexai/models/gemini.d.ts.map +1 -0
  148. package/lib/{esm/vertexai → vertexai}/models/gemini.js +238 -116
  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 +87 -36
  173. package/src/adobe/firefly.ts +60 -43
  174. package/src/anthropic/index.ts +37 -20
  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 -16
  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 +378 -248
  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 +303 -97
  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 +331 -244
  219. package/src/vertexai/models/claude-error-handling.test.ts +83 -36
  220. package/src/vertexai/models/claude-streaming-spacing.test.ts +82 -75
  221. package/src/vertexai/models/claude.ts +55 -40
  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 +349 -172
  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/anthropic/index.js +0 -64
  235. package/lib/cjs/anthropic/index.js.map +0 -1
  236. package/lib/cjs/azure/azure_foundry.js +0 -432
  237. package/lib/cjs/azure/azure_foundry.js.map +0 -1
  238. package/lib/cjs/bedrock/converse.js +0 -359
  239. package/lib/cjs/bedrock/converse.js.map +0 -1
  240. package/lib/cjs/bedrock/index.js +0 -1508
  241. package/lib/cjs/bedrock/index.js.map +0 -1
  242. package/lib/cjs/bedrock/nova-image-payload.js +0 -207
  243. package/lib/cjs/bedrock/nova-image-payload.js.map +0 -1
  244. package/lib/cjs/bedrock/payloads.js +0 -3
  245. package/lib/cjs/bedrock/s3.js +0 -107
  246. package/lib/cjs/bedrock/s3.js.map +0 -1
  247. package/lib/cjs/bedrock/twelvelabs.js +0 -87
  248. package/lib/cjs/bedrock/twelvelabs.js.map +0 -1
  249. package/lib/cjs/groq/index.js +0 -328
  250. package/lib/cjs/groq/index.js.map +0 -1
  251. package/lib/cjs/huggingface_ie.js +0 -201
  252. package/lib/cjs/huggingface_ie.js.map +0 -1
  253. package/lib/cjs/index.js +0 -32
  254. package/lib/cjs/index.js.map +0 -1
  255. package/lib/cjs/mistral/index.js +0 -176
  256. package/lib/cjs/mistral/index.js.map +0 -1
  257. package/lib/cjs/mistral/types.js +0 -83
  258. package/lib/cjs/mistral/types.js.map +0 -1
  259. package/lib/cjs/openai/azure_openai.js +0 -72
  260. package/lib/cjs/openai/azure_openai.js.map +0 -1
  261. package/lib/cjs/openai/index.js +0 -1135
  262. package/lib/cjs/openai/index.js.map +0 -1
  263. package/lib/cjs/openai/openai.js +0 -21
  264. package/lib/cjs/openai/openai.js.map +0 -1
  265. package/lib/cjs/openai/openai_compatible.js +0 -63
  266. package/lib/cjs/openai/openai_compatible.js.map +0 -1
  267. package/lib/cjs/openai/openai_format.js +0 -131
  268. package/lib/cjs/openai/openai_format.js.map +0 -1
  269. package/lib/cjs/package.json +0 -3
  270. package/lib/cjs/replicate.js +0 -275
  271. package/lib/cjs/replicate.js.map +0 -1
  272. package/lib/cjs/shared/claude-messages.js +0 -737
  273. package/lib/cjs/shared/claude-messages.js.map +0 -1
  274. package/lib/cjs/shared/claude-thinking.js +0 -60
  275. package/lib/cjs/shared/claude-thinking.js.map +0 -1
  276. package/lib/cjs/test-driver/TestErrorCompletionStream.js +0 -20
  277. package/lib/cjs/test-driver/TestErrorCompletionStream.js.map +0 -1
  278. package/lib/cjs/test-driver/TestValidationErrorCompletionStream.js +0 -24
  279. package/lib/cjs/test-driver/TestValidationErrorCompletionStream.js.map +0 -1
  280. package/lib/cjs/test-driver/index.js +0 -109
  281. package/lib/cjs/test-driver/index.js.map +0 -1
  282. package/lib/cjs/test-driver/utils.js +0 -30
  283. package/lib/cjs/test-driver/utils.js.map +0 -1
  284. package/lib/cjs/togetherai/index.js +0 -126
  285. package/lib/cjs/togetherai/index.js.map +0 -1
  286. package/lib/cjs/togetherai/interfaces.js +0 -3
  287. package/lib/cjs/togetherai/interfaces.js.map +0 -1
  288. package/lib/cjs/vertexai/debug.js +0 -12
  289. package/lib/cjs/vertexai/debug.js.map +0 -1
  290. package/lib/cjs/vertexai/embeddings/embeddings-image.js +0 -27
  291. package/lib/cjs/vertexai/embeddings/embeddings-image.js.map +0 -1
  292. package/lib/cjs/vertexai/embeddings/embeddings-text.js +0 -23
  293. package/lib/cjs/vertexai/embeddings/embeddings-text.js.map +0 -1
  294. package/lib/cjs/vertexai/index.js +0 -644
  295. package/lib/cjs/vertexai/index.js.map +0 -1
  296. package/lib/cjs/vertexai/models/claude.js +0 -72
  297. package/lib/cjs/vertexai/models/claude.js.map +0 -1
  298. package/lib/cjs/vertexai/models/gemini.js +0 -864
  299. package/lib/cjs/vertexai/models/gemini.js.map +0 -1
  300. package/lib/cjs/vertexai/models/imagen.js +0 -303
  301. package/lib/cjs/vertexai/models/imagen.js.map +0 -1
  302. package/lib/cjs/vertexai/models/llama.js +0 -183
  303. package/lib/cjs/vertexai/models/llama.js.map +0 -1
  304. package/lib/cjs/vertexai/models.js +0 -35
  305. package/lib/cjs/vertexai/models.js.map +0 -1
  306. package/lib/cjs/watsonx/index.js +0 -161
  307. package/lib/cjs/watsonx/index.js.map +0 -1
  308. package/lib/cjs/watsonx/interfaces.js +0 -3
  309. package/lib/cjs/xai/index.js +0 -65
  310. package/lib/cjs/xai/index.js.map +0 -1
  311. package/lib/esm/adobe/firefly.js +0 -116
  312. package/lib/esm/adobe/firefly.js.map +0 -1
  313. package/lib/esm/anthropic/index.js.map +0 -1
  314. package/lib/esm/azure/azure_foundry.js.map +0 -1
  315. package/lib/esm/bedrock/converse.js.map +0 -1
  316. package/lib/esm/bedrock/index.js.map +0 -1
  317. package/lib/esm/bedrock/nova-image-payload.js.map +0 -1
  318. package/lib/esm/bedrock/payloads.js.map +0 -1
  319. package/lib/esm/bedrock/s3.js.map +0 -1
  320. package/lib/esm/bedrock/twelvelabs.js.map +0 -1
  321. package/lib/esm/groq/index.js.map +0 -1
  322. package/lib/esm/huggingface_ie.js.map +0 -1
  323. package/lib/esm/index.js +0 -16
  324. package/lib/esm/index.js.map +0 -1
  325. package/lib/esm/mistral/index.js.map +0 -1
  326. package/lib/esm/mistral/types.js.map +0 -1
  327. package/lib/esm/openai/azure_openai.js.map +0 -1
  328. package/lib/esm/openai/index.js.map +0 -1
  329. package/lib/esm/openai/openai.js +0 -14
  330. package/lib/esm/openai/openai.js.map +0 -1
  331. package/lib/esm/openai/openai_compatible.js.map +0 -1
  332. package/lib/esm/openai/openai_format.js.map +0 -1
  333. package/lib/esm/replicate.js.map +0 -1
  334. package/lib/esm/shared/claude-messages.js.map +0 -1
  335. package/lib/esm/shared/claude-thinking.js.map +0 -1
  336. package/lib/esm/test-driver/TestErrorCompletionStream.js +0 -16
  337. package/lib/esm/test-driver/TestErrorCompletionStream.js.map +0 -1
  338. package/lib/esm/test-driver/TestValidationErrorCompletionStream.js.map +0 -1
  339. package/lib/esm/test-driver/index.js.map +0 -1
  340. package/lib/esm/test-driver/utils.js.map +0 -1
  341. package/lib/esm/togetherai/index.js +0 -122
  342. package/lib/esm/togetherai/index.js.map +0 -1
  343. package/lib/esm/togetherai/interfaces.js.map +0 -1
  344. package/lib/esm/vertexai/debug.js.map +0 -1
  345. package/lib/esm/vertexai/embeddings/embeddings-image.js +0 -24
  346. package/lib/esm/vertexai/embeddings/embeddings-image.js.map +0 -1
  347. package/lib/esm/vertexai/embeddings/embeddings-text.js +0 -20
  348. package/lib/esm/vertexai/embeddings/embeddings-text.js.map +0 -1
  349. package/lib/esm/vertexai/index.js.map +0 -1
  350. package/lib/esm/vertexai/models/claude.js.map +0 -1
  351. package/lib/esm/vertexai/models/gemini.js.map +0 -1
  352. package/lib/esm/vertexai/models/imagen.js.map +0 -1
  353. package/lib/esm/vertexai/models/llama.js.map +0 -1
  354. package/lib/esm/vertexai/models.js.map +0 -1
  355. package/lib/esm/watsonx/index.js.map +0 -1
  356. package/lib/esm/xai/index.js.map +0 -1
  357. package/lib/types/adobe/firefly.d.ts.map +0 -1
  358. package/lib/types/anthropic/index.d.ts.map +0 -1
  359. package/lib/types/azure/azure_foundry.d.ts.map +0 -1
  360. package/lib/types/bedrock/converse.d.ts.map +0 -1
  361. package/lib/types/bedrock/index.d.ts.map +0 -1
  362. package/lib/types/bedrock/nova-image-payload.d.ts.map +0 -1
  363. package/lib/types/bedrock/payloads.d.ts.map +0 -1
  364. package/lib/types/bedrock/s3.d.ts.map +0 -1
  365. package/lib/types/bedrock/twelvelabs.d.ts.map +0 -1
  366. package/lib/types/groq/index.d.ts.map +0 -1
  367. package/lib/types/huggingface_ie.d.ts.map +0 -1
  368. package/lib/types/index.d.ts +0 -16
  369. package/lib/types/index.d.ts.map +0 -1
  370. package/lib/types/mistral/index.d.ts.map +0 -1
  371. package/lib/types/mistral/types.d.ts.map +0 -1
  372. package/lib/types/openai/azure_openai.d.ts.map +0 -1
  373. package/lib/types/openai/index.d.ts.map +0 -1
  374. package/lib/types/openai/openai.d.ts.map +0 -1
  375. package/lib/types/openai/openai_compatible.d.ts.map +0 -1
  376. package/lib/types/openai/openai_format.d.ts.map +0 -1
  377. package/lib/types/replicate.d.ts.map +0 -1
  378. package/lib/types/shared/claude-messages.d.ts.map +0 -1
  379. package/lib/types/shared/claude-thinking.d.ts.map +0 -1
  380. package/lib/types/test-driver/TestErrorCompletionStream.d.ts.map +0 -1
  381. package/lib/types/test-driver/TestValidationErrorCompletionStream.d.ts.map +0 -1
  382. package/lib/types/test-driver/index.d.ts.map +0 -1
  383. package/lib/types/test-driver/utils.d.ts.map +0 -1
  384. package/lib/types/togetherai/index.d.ts +0 -23
  385. package/lib/types/togetherai/index.d.ts.map +0 -1
  386. package/lib/types/togetherai/interfaces.d.ts.map +0 -1
  387. package/lib/types/vertexai/debug.d.ts +0 -2
  388. package/lib/types/vertexai/debug.d.ts.map +0 -1
  389. package/lib/types/vertexai/embeddings/embeddings-image.d.ts +0 -11
  390. package/lib/types/vertexai/embeddings/embeddings-image.d.ts.map +0 -1
  391. package/lib/types/vertexai/embeddings/embeddings-text.d.ts +0 -10
  392. package/lib/types/vertexai/embeddings/embeddings-text.d.ts.map +0 -1
  393. package/lib/types/vertexai/index.d.ts.map +0 -1
  394. package/lib/types/vertexai/models/claude.d.ts.map +0 -1
  395. package/lib/types/vertexai/models/gemini.d.ts.map +0 -1
  396. package/lib/types/vertexai/models/imagen.d.ts.map +0 -1
  397. package/lib/types/vertexai/models/llama.d.ts.map +0 -1
  398. package/lib/types/vertexai/models.d.ts +0 -20
  399. package/lib/types/vertexai/models.d.ts.map +0 -1
  400. package/lib/types/watsonx/index.d.ts.map +0 -1
  401. package/lib/types/watsonx/interfaces.d.ts.map +0 -1
  402. package/lib/types/xai/index.d.ts.map +0 -1
  403. package/src/vertexai/embeddings/embeddings-image.ts +0 -52
  404. package/src/vertexai/embeddings/embeddings-text.ts +0 -54
  405. /package/lib/{esm/bedrock → bedrock}/payloads.js +0 -0
  406. /package/lib/{esm/mistral → mistral}/types.js +0 -0
  407. /package/lib/{esm/togetherai → togetherai}/interfaces.js +0 -0
  408. /package/lib/{types/watsonx → watsonx}/interfaces.d.ts +0 -0
  409. /package/lib/{esm/watsonx → watsonx}/interfaces.js +0 -0
package/src/replicate.ts CHANGED
@@ -1,33 +1,49 @@
1
1
  import {
2
- AbstractDriver,
3
- AIModel,
4
- Completion,
5
- CompletionChunkObject,
6
- DataSource,
7
- DriverOptions,
8
- EmbeddingsResult,
9
- ExecutionOptions,
10
- ModelSearchPayload,
11
- TextFallbackOptions,
12
- TrainingJob,
2
+ type AIModel,
3
+ type Completion,
4
+ type CompletionChunkObject,
5
+ type DataSource,
6
+ type DriverOptions,
7
+ type EmbeddingsResult,
8
+ type ExecutionOptions,
9
+ type ModelSearchPayload,
10
+ type TextFallbackOptions,
11
+ type TrainingJob,
13
12
  TrainingJobStatus,
14
- TrainingOptions,
15
- } from "@llumiverse/core";
16
- import { EventStream } from "@llumiverse/core/async";
17
- import { EventSource } from "eventsource";
18
- import Replicate, { Prediction, Training } from "replicate";
13
+ type TrainingOptions,
14
+ } from '@llumiverse/core';
15
+ import { EventStream } from '@llumiverse/core/async';
16
+ import { AbstractDriver } from '@llumiverse/core/driver';
17
+ import { EventSource } from 'eventsource';
18
+ import Replicate, { type Prediction, type Training } from 'replicate';
19
19
 
20
20
  let cachedTrainableModels: AIModel[] | undefined;
21
21
  let cachedTrainableModelsTimestamp: number = 0;
22
+ type ReplicateEvent = { data: string };
23
+ type ReplicateModelVersion = {
24
+ id: string;
25
+ cog_version: string;
26
+ };
27
+ type ReplicateVersionsResponse = {
28
+ results?: ReplicateModelVersion[];
29
+ };
30
+ type ReplicateSearchModel = {
31
+ name: string;
32
+ username: string;
33
+ description?: string;
34
+ };
35
+ type ReplicateSearchResponse = {
36
+ models: ReplicateSearchModel[];
37
+ };
22
38
 
23
39
  const supportFineTunning = new Set([
24
- "meta/llama-2-70b-chat",
25
- "meta/llama-2-13b-chat",
26
- "meta/llama-2-7b-chat",
27
- "meta/llama-2-7b",
28
- "meta/llama-2-70b",
29
- "meta/llama-2-13b",
30
- "mistralai/mistral-7b-v0.1"
40
+ 'meta/llama-2-70b-chat',
41
+ 'meta/llama-2-13b-chat',
42
+ 'meta/llama-2-7b-chat',
43
+ 'meta/llama-2-7b',
44
+ 'meta/llama-2-70b',
45
+ 'meta/llama-2-13b',
46
+ 'mistralai/mistral-7b-v0.1',
31
47
  ]);
32
48
 
33
49
  export interface ReplicateDriverOptions extends DriverOptions {
@@ -35,38 +51,44 @@ export interface ReplicateDriverOptions extends DriverOptions {
35
51
  }
36
52
 
37
53
  export class ReplicateDriver extends AbstractDriver<DriverOptions, string> {
38
- static PROVIDER = "replicate";
54
+ static PROVIDER = 'replicate';
39
55
  provider = ReplicateDriver.PROVIDER;
40
56
  service: Replicate;
41
57
 
42
58
  static parseModelId(modelId: string) {
43
- const [owner, modelPart] = modelId.split("/");
59
+ const [owner, modelPart] = modelId.split('/');
44
60
  const i = modelPart.indexOf(':');
45
61
  if (i === -1) {
46
- throw new Error("Invalid model id. Expected format: owner/model:version");
62
+ throw new Error('Invalid model id. Expected format: owner/model:version');
47
63
  }
48
64
  return {
49
- owner, model: modelPart.slice(0, i), version: modelPart.slice(i + 1)
50
- }
65
+ owner,
66
+ model: modelPart.slice(0, i),
67
+ version: modelPart.slice(i + 1),
68
+ };
51
69
  }
52
70
 
53
71
  constructor(options: ReplicateDriverOptions) {
54
72
  super(options);
55
73
  this.service = new Replicate({
56
74
  auth: options.apiKey,
75
+ fetch: this.getDriverFetch(),
57
76
  });
58
77
  }
59
78
 
60
79
  extractDataFromResponse(response: Prediction): Completion {
61
- const text = response.output.join("");
80
+ const text = response.output.join('');
62
81
  return {
63
82
  result: text,
64
83
  };
65
84
  }
66
85
 
67
- async requestTextCompletionStream(prompt: string, options: ExecutionOptions): Promise<AsyncIterable<CompletionChunkObject>> {
68
- if (options.model_options?._option_id !== undefined && options.model_options?._option_id !== "text-fallback") {
69
- this.logger.debug({ options: options.model_options }, "Unexpected option id");
86
+ async requestTextCompletionStream(
87
+ prompt: string,
88
+ options: ExecutionOptions,
89
+ ): Promise<AsyncIterable<CompletionChunkObject>> {
90
+ if (options.model_options?._option_id !== undefined && options.model_options?._option_id !== 'text-fallback') {
91
+ this.logger.debug({ options: options.model_options }, 'Unexpected option id');
70
92
  }
71
93
  options.model_options = options.model_options as TextFallbackOptions;
72
94
 
@@ -81,27 +103,27 @@ export class ReplicateDriver extends AbstractDriver<DriverOptions, string> {
81
103
  stream: true, //streaming described here https://replicate.com/blog/streaming
82
104
  };
83
105
 
84
- const prediction =
85
- await this.service.predictions.create(predictionData);
106
+ const prediction = await this.service.predictions.create(predictionData);
86
107
 
87
108
  const stream = new EventStream<CompletionChunkObject>();
88
109
 
110
+ // biome-ignore lint/style/noNonNullAssertion: intentional non-null assertion; TS can't prove narrowing here
89
111
  const source = new EventSource(prediction.urls.stream!);
90
- source.addEventListener("output", (e: any) => {
91
- stream.push({ result: [{ type: "text", value: e.data }] });
112
+ source.addEventListener('output', (e: ReplicateEvent) => {
113
+ stream.push({ result: [{ type: 'text', value: e.data }] });
92
114
  });
93
- source.addEventListener("error", (e: any) => {
94
- let error: any;
115
+ source.addEventListener('error', (e: ReplicateEvent) => {
116
+ let error: unknown;
95
117
  try {
96
118
  error = JSON.parse(e.data);
97
- } catch (error) {
119
+ } catch {
98
120
  error = JSON.stringify(e);
99
121
  }
100
- this.logger.error({ e, error }, "Error in SSE stream");
122
+ this.logger.error({ e, error }, 'Error in SSE stream');
101
123
  });
102
- source.addEventListener("done", () => {
124
+ source.addEventListener('done', () => {
103
125
  try {
104
- stream.close(""); // not using e.data which is {}
126
+ stream.close(''); // not using e.data which is {}
105
127
  } finally {
106
128
  source.close();
107
129
  }
@@ -110,8 +132,8 @@ export class ReplicateDriver extends AbstractDriver<DriverOptions, string> {
110
132
  }
111
133
 
112
134
  async requestTextCompletion(prompt: string, options: ExecutionOptions) {
113
- if (options.model_options?._option_id !== undefined && options.model_options?._option_id !== "text-fallback") {
114
- this.logger.debug({ options: options.model_options }, "Unexpected option id");
135
+ if (options.model_options?._option_id !== undefined && options.model_options?._option_id !== 'text-fallback') {
136
+ this.logger.debug({ options: options.model_options }, 'Unexpected option id');
115
137
  }
116
138
  options.model_options = options.model_options as TextFallbackOptions;
117
139
  const model = ReplicateDriver.parseModelId(options.model);
@@ -126,8 +148,7 @@ export class ReplicateDriver extends AbstractDriver<DriverOptions, string> {
126
148
  //stream: stream, //streaming described here https://replicate.com/blog/streaming
127
149
  };
128
150
 
129
- const prediction =
130
- await this.service.predictions.create(predictionData);
151
+ const prediction = await this.service.predictions.create(predictionData);
131
152
 
132
153
  //TODO stream
133
154
  //if we're streaming, return right away for the stream handler to handle
@@ -136,24 +157,24 @@ export class ReplicateDriver extends AbstractDriver<DriverOptions, string> {
136
157
  //not streaming, wait for the result
137
158
  const res = await this.service.wait(prediction, {});
138
159
 
139
- const text: string = res.output.join("");
160
+ const text: string = res.output.join('');
140
161
  return {
141
- result: [{ type: "text" as const, value: text }],
162
+ result: [{ type: 'text' as const, value: text }],
142
163
  original_response: options.include_original_response ? res : undefined,
143
164
  };
144
165
  }
145
166
 
146
167
  async startTraining(dataset: DataSource, options: TrainingOptions): Promise<TrainingJob> {
147
- if (options.name.indexOf("/") === -1) {
148
- throw new Error("Invalid target model name. Expected format: owner/model");
168
+ if (options.name.indexOf('/') === -1) {
169
+ throw new Error('Invalid target model name. Expected format: owner/model');
149
170
  }
150
171
  const { owner, model, version } = ReplicateDriver.parseModelId(options.model);
151
172
  const job = await this.service.trainings.create(owner, model, version, {
152
- destination: options.name as any,
173
+ destination: options.name as `${string}/${string}`,
153
174
  input: {
154
175
  train_data: await dataset.getURL(),
155
176
  },
156
- })
177
+ });
157
178
  return jobInfo(job, options.name);
158
179
  }
159
180
 
@@ -185,33 +206,36 @@ export class ReplicateDriver extends AbstractDriver<DriverOptions, string> {
185
206
  try {
186
207
  await this.service.predictions.list();
187
208
  return true;
188
- } catch (error) {
209
+ } catch {
189
210
  return false;
190
211
  }
191
212
  }
192
213
 
193
214
  async _listTrainableModels(): Promise<AIModel[]> {
194
- const promises = Array.from(supportFineTunning).map(id => {
215
+ const promises = Array.from(supportFineTunning).map((id) => {
195
216
  const [owner, model] = id.split('/');
196
- return this.service.models.get(owner, model)
217
+ return this.service.models.get(owner, model);
197
218
  });
198
219
  const results = await Promise.all(promises);
199
- return results.filter(m => !!m.latest_version).map(m => {
200
- const fullName = m.owner + '/' + m.name;
201
- const v = m.latest_version!;
202
- return {
203
- id: fullName + ':' + v.id,
204
- name:
205
- fullName + "@" + v.cog_version + ":" + v.id.slice(0, 6),
206
- provider: this.provider,
207
- owner: m.owner,
208
- description: m.description,
209
- } as AIModel;
210
- });
220
+ return results
221
+ .filter((m) => !!m.latest_version)
222
+ .map((m) => {
223
+ const fullName = `${m.owner}/${m.name}`;
224
+ // biome-ignore lint/style/noNonNullAssertion: intentional non-null assertion; TS can't prove narrowing here
225
+ const v = m.latest_version!;
226
+ return {
227
+ id: `${fullName}:${v.id}`,
228
+ name: `${fullName}@${v.cog_version}:${v.id.slice(0, 6)}`,
229
+ provider: this.provider,
230
+ owner: m.owner,
231
+ description: m.description,
232
+ } as AIModel;
233
+ });
211
234
  }
212
235
 
213
236
  async listTrainableModels(): Promise<AIModel[]> {
214
- if (!cachedTrainableModels || Date.now() > cachedTrainableModelsTimestamp + 12 * 3600 * 1000) { // 12 hours
237
+ if (!cachedTrainableModels || Date.now() > cachedTrainableModelsTimestamp + 12 * 3600 * 1000) {
238
+ // 12 hours
215
239
  cachedTrainableModels = await this._listTrainableModels();
216
240
  cachedTrainableModelsTimestamp = Date.now();
217
241
  }
@@ -222,9 +246,9 @@ export class ReplicateDriver extends AbstractDriver<DriverOptions, string> {
222
246
  if (!params.text) {
223
247
  return this.listTrainableModels();
224
248
  }
225
- const [owner, model] = params.text.split("/");
249
+ const [owner, model] = params.text.split('/');
226
250
  if (!owner || !model) {
227
- throw new Error("Invalid model name. Expected format: owner/model");
251
+ throw new Error('Invalid model name. Expected format: owner/model');
228
252
  }
229
253
 
230
254
  return this.listModelVersions(owner, model);
@@ -236,16 +260,16 @@ export class ReplicateDriver extends AbstractDriver<DriverOptions, string> {
236
260
  this.service.models.versions.list(owner, model),
237
261
  ]);
238
262
 
239
- if (!rModel || !versions || (versions as any).results?.length === 0) {
240
- throw new Error("Model not found or no versions available");
263
+ const versionResults = (versions as ReplicateVersionsResponse).results ?? [];
264
+ if (!rModel || !versions || versionResults.length === 0) {
265
+ throw new Error('Model not found or no versions available');
241
266
  }
242
267
 
243
- const models: AIModel[] = (versions as any).results.map((v: any) => {
244
- const fullName = rModel.owner + '/' + rModel.name;
268
+ const models: AIModel[] = versionResults.map((v) => {
269
+ const fullName = `${rModel.owner}/${rModel.name}`;
245
270
  return {
246
- id: fullName + ':' + v.id,
247
- name:
248
- fullName + "@" + v.cog_version + ":" + v.id.slice(0, 6),
271
+ id: `${fullName}:${v.id}`,
272
+ name: `${fullName}@${v.cog_version}:${v.id.slice(0, 6)}`,
249
273
  provider: this.provider,
250
274
  owner: rModel.owner,
251
275
  description: rModel.description,
@@ -261,15 +285,15 @@ export class ReplicateDriver extends AbstractDriver<DriverOptions, string> {
261
285
  }
262
286
 
263
287
  async searchModels(params: ModelSearchPayload): Promise<AIModel[]> {
264
- const res = await this.service.request("models/search", {
288
+ const res = await this.service.request('models/search', {
265
289
  params: {
266
290
  query: params.text,
267
291
  },
268
292
  });
269
293
 
270
- const rModels = ((await res.json()) as any).models;
294
+ const rModels = ((await res.json()) as ReplicateSearchResponse).models;
271
295
 
272
- const models: AIModel[] = rModels.map((v: any) => {
296
+ const models: AIModel[] = rModels.map((v) => {
273
297
  return {
274
298
  id: v.name,
275
299
  name: v.name,
@@ -284,9 +308,8 @@ export class ReplicateDriver extends AbstractDriver<DriverOptions, string> {
284
308
  }
285
309
 
286
310
  async generateEmbeddings(): Promise<EmbeddingsResult> {
287
- throw new Error("Method not implemented.");
311
+ throw new Error('Method not implemented.');
288
312
  }
289
-
290
313
  }
291
314
 
292
315
  function jobInfo(job: Prediction | Training, modelName?: string): TrainingJob {
@@ -298,7 +321,7 @@ function jobInfo(job: Prediction | Training, modelName?: string): TrainingJob {
298
321
  status = TrainingJobStatus.succeeded;
299
322
  } else if (jobStatus === 'failed') {
300
323
  status = TrainingJobStatus.failed;
301
- const error = job.error as any;
324
+ const error = job.error as unknown;
302
325
  if (typeof error === 'string') {
303
326
  details = error;
304
327
  } else {
@@ -315,7 +338,6 @@ function jobInfo(job: Prediction | Training, modelName?: string): TrainingJob {
315
338
  id: job.id,
316
339
  status,
317
340
  details,
318
- model: modelName ? modelName + ':' + job.version : job.version
341
+ model: modelName ? `${modelName}:${job.version}` : job.version,
319
342
  } as TrainingJob;
320
-
321
- }
343
+ }
@@ -0,0 +1,37 @@
1
+ import { PromptRole, type PromptSegment } from '@llumiverse/core';
2
+ import { describe, expect, it, vi } from 'vitest';
3
+ import { formatClaudePrompt } from './claude-messages.js';
4
+
5
+ describe('formatClaudePrompt', () => {
6
+ it('warns and skips video attachments', async () => {
7
+ const getStream = vi.fn();
8
+ const warn = vi.fn();
9
+ const segments = [
10
+ {
11
+ role: PromptRole.user,
12
+ content: 'Look at this',
13
+ files: [
14
+ {
15
+ name: 'clip.mp4',
16
+ mime_type: 'video/mp4',
17
+ getStream,
18
+ },
19
+ ],
20
+ },
21
+ ] as unknown as PromptSegment[];
22
+
23
+ const prompt = await formatClaudePrompt(segments, { model: 'claude-haiku-4-5' } as never, { warn });
24
+
25
+ expect(prompt.messages).toEqual([
26
+ {
27
+ role: 'user',
28
+ content: [{ type: 'text', text: 'Look at this' }],
29
+ },
30
+ ]);
31
+ expect(getStream).not.toHaveBeenCalled();
32
+ expect(warn).toHaveBeenCalledWith(
33
+ { file_name: 'clip.mp4', mime_type: 'video/mp4' },
34
+ '[Claude] Skipping unsupported video attachment',
35
+ );
36
+ });
37
+ });