@llumiverse/drivers 1.3.0 → 1.4.0

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
@@ -1,18 +1,19 @@
1
1
  import {
2
- AIModel,
3
- Completion,
4
- CompletionChunkObject,
5
- DriverOptions,
6
- EmbeddingsOptions,
7
- EmbeddingsResult,
8
- ExecutionOptions,
9
- ModelSearchPayload,
2
+ type AIModel,
3
+ type Completion,
4
+ type CompletionChunkObject,
5
+ type DriverOptions,
6
+ type EmbeddingsOptions,
7
+ type EmbeddingsResult,
8
+ type ExecutionOptions,
9
+ type ModelSearchPayload,
10
10
  PromptRole,
11
- PromptSegment,
11
+ type PromptSegment,
12
12
  } from '@llumiverse/common';
13
- import { AbstractDriver } from '@llumiverse/core';
13
+ import { AbstractDriver } from '@llumiverse/core/driver';
14
14
  import { beforeEach, describe, expect, it } from 'vitest';
15
- import { BedrockDriver } from './index.js';
15
+ import type { Tree } from '../../test/__helpers__/test-utils.js';
16
+ import { BedrockDriver, type BedrockPrompt } from './index.js';
16
17
 
17
18
  // ---------------------------------------------------------------------------
18
19
  // Unit tests: getExtractedStream tool use handling
@@ -28,7 +29,7 @@ describe('BedrockDriver getExtractedStream — tool use', () => {
28
29
  });
29
30
 
30
31
  it('emits an initial tool_use chunk on contentBlockStart', () => {
31
- const chunk = driver['getExtractedStream'](
32
+ const chunk = driver.getExtractedStream(
32
33
  {
33
34
  contentBlockStart: {
34
35
  contentBlockIndex: 1,
@@ -37,18 +38,18 @@ describe('BedrockDriver getExtractedStream — tool use', () => {
37
38
  },
38
39
  undefined,
39
40
  undefined,
40
- toolBlocks
41
+ toolBlocks,
41
42
  );
42
43
 
43
44
  expect(chunk.tool_use).toHaveLength(1);
44
- expect(chunk.tool_use![0]).toMatchObject({ id: 'tool-abc', tool_name: 'my_tool', tool_input: '' });
45
+ expect(chunk.tool_use?.[0]).toMatchObject({ id: 'tool-abc', tool_name: 'my_tool', tool_input: '' });
45
46
  expect(toolBlocks.get(1)).toEqual({ id: 'tool-abc', name: 'my_tool' });
46
47
  });
47
48
 
48
49
  it('emits a delta tool_use chunk on contentBlockDelta', () => {
49
50
  toolBlocks.set(1, { id: 'tool-abc', name: 'my_tool' });
50
51
 
51
- const chunk = driver['getExtractedStream'](
52
+ const chunk = driver.getExtractedStream(
52
53
  {
53
54
  contentBlockDelta: {
54
55
  contentBlockIndex: 1,
@@ -57,52 +58,53 @@ describe('BedrockDriver getExtractedStream — tool use', () => {
57
58
  },
58
59
  undefined,
59
60
  undefined,
60
- toolBlocks
61
+ toolBlocks,
61
62
  );
62
63
 
63
64
  expect(chunk.tool_use).toHaveLength(1);
64
- expect(chunk.tool_use![0]).toMatchObject({ id: 'tool-abc', tool_name: '', tool_input: '{"key":' });
65
+ expect(chunk.tool_use?.[0]).toMatchObject({ id: 'tool-abc', tool_name: '', tool_input: '{"key":' });
65
66
  });
66
67
 
67
68
  it('removes the block from the map on contentBlockStop', () => {
68
69
  toolBlocks.set(1, { id: 'tool-abc', name: 'my_tool' });
69
70
 
70
- driver['getExtractedStream'](
71
- { contentBlockStop: { contentBlockIndex: 1 } },
72
- undefined,
73
- undefined,
74
- toolBlocks
75
- );
71
+ driver.getExtractedStream({ contentBlockStop: { contentBlockIndex: 1 } }, undefined, undefined, toolBlocks);
76
72
 
77
73
  expect(toolBlocks.has(1)).toBe(false);
78
74
  });
79
75
 
80
76
  it('tracks two interleaved tool calls by independent contentBlockIndex', () => {
81
- driver['getExtractedStream'](
77
+ driver.getExtractedStream(
82
78
  { contentBlockStart: { contentBlockIndex: 1, start: { toolUse: { toolUseId: 'id-1', name: 'tool_a' } } } },
83
- undefined, undefined, toolBlocks
79
+ undefined,
80
+ undefined,
81
+ toolBlocks,
84
82
  );
85
- driver['getExtractedStream'](
83
+ driver.getExtractedStream(
86
84
  { contentBlockStart: { contentBlockIndex: 3, start: { toolUse: { toolUseId: 'id-2', name: 'tool_b' } } } },
87
- undefined, undefined, toolBlocks
85
+ undefined,
86
+ undefined,
87
+ toolBlocks,
88
88
  );
89
89
 
90
90
  expect(toolBlocks.get(1)).toEqual({ id: 'id-1', name: 'tool_a' });
91
91
  expect(toolBlocks.get(3)).toEqual({ id: 'id-2', name: 'tool_b' });
92
92
 
93
- const chunk = driver['getExtractedStream'](
93
+ const chunk = driver.getExtractedStream(
94
94
  { contentBlockDelta: { contentBlockIndex: 3, delta: { toolUse: { input: '"val"' } } } },
95
- undefined, undefined, toolBlocks
95
+ undefined,
96
+ undefined,
97
+ toolBlocks,
96
98
  );
97
- expect(chunk.tool_use![0].id).toBe('id-2');
99
+ expect(chunk.tool_use?.[0].id).toBe('id-2');
98
100
  });
99
101
 
100
102
  it('still extracts text deltas when no tool use is present', () => {
101
- const chunk = driver['getExtractedStream'](
103
+ const chunk = driver.getExtractedStream(
102
104
  { contentBlockDelta: { contentBlockIndex: 0, delta: { text: 'hello' } } },
103
105
  undefined,
104
106
  undefined,
105
- toolBlocks
107
+ toolBlocks,
106
108
  );
107
109
 
108
110
  expect(chunk.result).toEqual([{ type: 'text', value: 'hello' }]);
@@ -110,11 +112,11 @@ describe('BedrockDriver getExtractedStream — tool use', () => {
110
112
  });
111
113
 
112
114
  it('emits finish_reason "tool_use" from messageStop', () => {
113
- const chunk = driver['getExtractedStream'](
115
+ const chunk = driver.getExtractedStream(
114
116
  { messageStop: { stopReason: 'tool_use' } },
115
117
  undefined,
116
118
  undefined,
117
- toolBlocks
119
+ toolBlocks,
118
120
  );
119
121
 
120
122
  expect(chunk.finish_reason).toBe('tool_use');
@@ -133,13 +135,22 @@ class FakeDriver extends AbstractDriver<DriverOptions, string> {
133
135
  throw new Error('not implemented');
134
136
  }
135
137
 
136
- async requestTextCompletionStream(_prompt: string, _options: ExecutionOptions): Promise<AsyncIterable<CompletionChunkObject>> {
138
+ async requestTextCompletionStream(
139
+ _prompt: string,
140
+ _options: ExecutionOptions,
141
+ ): Promise<AsyncIterable<CompletionChunkObject>> {
137
142
  const chunks = this.chunks;
138
- return (async function* () { for (const c of chunks) yield c; })();
143
+ return (async function* () {
144
+ for (const c of chunks) yield c;
145
+ })();
139
146
  }
140
147
 
141
- async listModels(_params?: ModelSearchPayload): Promise<AIModel[]> { return []; }
142
- async validateConnection(): Promise<boolean> { return true; }
148
+ async listModels(_params?: ModelSearchPayload): Promise<AIModel[]> {
149
+ return [];
150
+ }
151
+ async validateConnection(): Promise<boolean> {
152
+ return true;
153
+ }
143
154
  async generateEmbeddings(_options: EmbeddingsOptions): Promise<EmbeddingsResult> {
144
155
  throw new Error('not implemented');
145
156
  }
@@ -154,18 +165,20 @@ describe('driver.stream() — Bedrock tool use accumulation', () => {
154
165
 
155
166
  // Simulate what the fixed getExtractedStream emits for one tool call
156
167
  driver.chunks = [
157
- { result: [], tool_use: [{ id: 'tool-1', tool_name: 'do_thing', tool_input: '' as any }] },
158
- { result: [], tool_use: [{ id: 'tool-1', tool_name: '', tool_input: '{"param"' as any }] },
159
- { result: [], tool_use: [{ id: 'tool-1', tool_name: '', tool_input: ':"hello"}' as any }] },
168
+ { result: [], tool_use: [{ id: 'tool-1', tool_name: 'do_thing', tool_input: '' as unknown }] },
169
+ { result: [], tool_use: [{ id: 'tool-1', tool_name: '', tool_input: '{"param"' as unknown }] },
170
+ { result: [], tool_use: [{ id: 'tool-1', tool_name: '', tool_input: ':"hello"}' as unknown }] },
160
171
  { result: [], finish_reason: 'tool_use' },
161
172
  ];
162
173
 
163
174
  const stream = await driver.stream(FAKE_SEGMENTS, options);
164
- for await (const _ of stream) { /* drain */ }
175
+ for await (const _ of stream) {
176
+ /* drain */
177
+ }
165
178
 
166
- expect(stream.completion!.finish_reason).toBe('tool_use');
167
- expect(stream.completion!.tool_use).toHaveLength(1);
168
- expect(stream.completion!.tool_use![0]).toMatchObject({
179
+ expect(stream.completion?.finish_reason).toBe('tool_use');
180
+ expect(stream.completion?.tool_use).toHaveLength(1);
181
+ expect(stream.completion?.tool_use?.[0]).toMatchObject({
169
182
  id: 'tool-1',
170
183
  tool_name: 'do_thing',
171
184
  tool_input: { param: 'hello' },
@@ -177,20 +190,22 @@ describe('driver.stream() — Bedrock tool use accumulation', () => {
177
190
  const options: ExecutionOptions = { model: 'test-model' };
178
191
 
179
192
  driver.chunks = [
180
- { result: [], tool_use: [{ id: 'id-a', tool_name: 'tool_a', tool_input: '' as any }] },
181
- { result: [], tool_use: [{ id: 'id-b', tool_name: 'tool_b', tool_input: '' as any }] },
182
- { result: [], tool_use: [{ id: 'id-a', tool_name: '', tool_input: '{"x":1}' as any }] },
183
- { result: [], tool_use: [{ id: 'id-b', tool_name: '', tool_input: '{"y":2}' as any }] },
193
+ { result: [], tool_use: [{ id: 'id-a', tool_name: 'tool_a', tool_input: '' as unknown }] },
194
+ { result: [], tool_use: [{ id: 'id-b', tool_name: 'tool_b', tool_input: '' as unknown }] },
195
+ { result: [], tool_use: [{ id: 'id-a', tool_name: '', tool_input: '{"x":1}' as unknown }] },
196
+ { result: [], tool_use: [{ id: 'id-b', tool_name: '', tool_input: '{"y":2}' as unknown }] },
184
197
  { result: [], finish_reason: 'tool_use' },
185
198
  ];
186
199
 
187
200
  const stream = await driver.stream(FAKE_SEGMENTS, options);
188
- for await (const _ of stream) { /* drain */ }
201
+ for await (const _ of stream) {
202
+ /* drain */
203
+ }
189
204
 
190
- const toolUse = stream.completion!.tool_use!;
205
+ const toolUse = stream.completion?.tool_use ?? [];
191
206
  expect(toolUse).toHaveLength(2);
192
- expect(toolUse.find(t => t.id === 'id-a')!.tool_input).toEqual({ x: 1 });
193
- expect(toolUse.find(t => t.id === 'id-b')!.tool_input).toEqual({ y: 2 });
207
+ expect(toolUse.find((t) => t.id === 'id-a')?.tool_input).toEqual({ x: 1 });
208
+ expect(toolUse.find((t) => t.id === 'id-b')?.tool_input).toEqual({ y: 2 });
194
209
  });
195
210
 
196
211
  it('drops truncated tool calls when finish_reason is length', async () => {
@@ -198,15 +213,17 @@ describe('driver.stream() — Bedrock tool use accumulation', () => {
198
213
  const options: ExecutionOptions = { model: 'test-model' };
199
214
 
200
215
  driver.chunks = [
201
- { result: [], tool_use: [{ id: 'trunc', tool_name: 'tool_c', tool_input: '' as any }] },
202
- { result: [], tool_use: [{ id: 'trunc', tool_name: '', tool_input: '{"incomplete' as any }] },
216
+ { result: [], tool_use: [{ id: 'trunc', tool_name: 'tool_c', tool_input: '' as unknown }] },
217
+ { result: [], tool_use: [{ id: 'trunc', tool_name: '', tool_input: '{"incomplete' as unknown }] },
203
218
  { result: [], finish_reason: 'length' },
204
219
  ];
205
220
 
206
221
  const stream = await driver.stream(FAKE_SEGMENTS, options);
207
- for await (const _ of stream) { /* drain */ }
222
+ for await (const _ of stream) {
223
+ /* drain */
224
+ }
208
225
 
209
- expect(stream.completion!.tool_use).toBeUndefined();
226
+ expect(stream.completion?.tool_use).toBeUndefined();
210
227
  });
211
228
  });
212
229
 
@@ -215,21 +232,21 @@ describe('BedrockDriver buildStreamingConversation', () => {
215
232
  const driver = new BedrockDriver({ region: 'us-east-1' });
216
233
  const prompt = {
217
234
  modelId: 'anthropic.claude-sonnet',
218
- messages: [
219
- { role: 'user', content: [{ text: 'What is the weather in Paris?' }] },
220
- ],
235
+ messages: [{ role: 'user', content: [{ text: 'What is the weather in Paris?' }] }],
221
236
  };
222
237
 
223
238
  const conversation = driver.buildStreamingConversation(
224
- prompt as any,
225
- [{ type: 'text', value: 'Let me check.' }] as any,
226
- [{
227
- id: 'tool-1',
228
- tool_name: 'get_weather',
229
- tool_input: { location: 'Paris' },
230
- }],
231
- { model: 'anthropic.claude-sonnet' } as ExecutionOptions
232
- ) as any;
239
+ prompt as unknown as BedrockPrompt,
240
+ [{ type: 'text', value: 'Let me check.' }],
241
+ [
242
+ {
243
+ id: 'tool-1',
244
+ tool_name: 'get_weather',
245
+ tool_input: { location: 'Paris' },
246
+ },
247
+ ],
248
+ { model: 'anthropic.claude-sonnet' } as ExecutionOptions,
249
+ ) as unknown as Tree;
233
250
 
234
251
  expect(conversation.messages).toHaveLength(2);
235
252
  expect(conversation.messages[0]).toEqual(prompt.messages[0]);
@@ -1,15 +1,23 @@
1
- import { DataSource, ExecutionOptions, readStreamAsBase64 } from "@llumiverse/core";
2
- import { PromptSegment, PromptRole } from "@llumiverse/core";
1
+ import {
2
+ type DataSource,
3
+ type ExecutionOptions,
4
+ type JSONSchema,
5
+ PromptRole,
6
+ type PromptSegment,
7
+ readStreamAsBase64,
8
+ type TextFallbackOptions,
9
+ } from '@llumiverse/core';
10
+ import { isAmazonS3Hostname, parseS3UrlToUri } from './s3.js';
3
11
 
4
12
  // TwelveLabs Pegasus Request/Response Types
5
13
  export interface TwelvelabsPegasusRequest {
6
14
  inputPrompt: string;
7
15
  temperature?: number;
8
16
  responseFormat?: {
9
- type: "json_schema";
17
+ type: 'json_schema';
10
18
  json_schema: {
11
19
  name: string;
12
- schema: any;
20
+ schema: JSONSchema;
13
21
  };
14
22
  };
15
23
  mediaSource: {
@@ -24,14 +32,14 @@ export interface TwelvelabsPegasusRequest {
24
32
 
25
33
  export interface TwelvelabsPegasusResponse {
26
34
  message: string;
27
- finishReason: "stop" | "length";
35
+ finishReason: 'stop' | 'length';
28
36
  }
29
37
 
30
38
  // TwelveLabs Marengo Request/Response Types
31
39
  export interface TwelvelabsMarengoRequest {
32
- inputType: "text" | "image" | "video" | "audio";
40
+ inputType: 'text' | 'image' | 'video' | 'audio';
33
41
  inputText?: string;
34
- textTruncate?: "start" | "end";
42
+ textTruncate?: 'start' | 'end';
35
43
  mediaSource?: {
36
44
  base64String?: string;
37
45
  s3Location?: {
@@ -39,7 +47,7 @@ export interface TwelvelabsMarengoRequest {
39
47
  bucketOwner?: string;
40
48
  };
41
49
  };
42
- embeddingOption?: "visual-text" | "visual-image" | "audio";
50
+ embeddingOption?: 'visual-text' | 'visual-image' | 'audio';
43
51
  startSec?: number;
44
52
  lengthSec?: number;
45
53
  useFixedLengthSec?: boolean;
@@ -48,7 +56,7 @@ export interface TwelvelabsMarengoRequest {
48
56
 
49
57
  export interface TwelvelabsMarengoResponse {
50
58
  embedding: number[];
51
- embeddingOption: "visual-text" | "visual-image" | "audio";
59
+ embeddingOption: 'visual-text' | 'visual-image' | 'audio';
52
60
  startSec: number;
53
61
  endSec: number;
54
62
  }
@@ -56,21 +64,21 @@ export interface TwelvelabsMarengoResponse {
56
64
  // Convert prompt segments to TwelveLabs Pegasus request
57
65
  export async function formatTwelvelabsPegasusPrompt(
58
66
  segments: PromptSegment[],
59
- options: ExecutionOptions
67
+ options: ExecutionOptions,
60
68
  ): Promise<TwelvelabsPegasusRequest> {
61
- let inputPrompt = "";
69
+ let inputPrompt = '';
62
70
  let videoFile: DataSource | undefined;
63
71
 
64
72
  // Extract text content and video files from segments
65
73
  for (const segment of segments) {
66
74
  if (segment.role === PromptRole.system || segment.role === PromptRole.user) {
67
75
  if (segment.content) {
68
- inputPrompt += segment.content + "\n";
76
+ inputPrompt += `${segment.content}\n`;
69
77
  }
70
78
 
71
79
  // Look for video files
72
80
  for (const file of segment.files ?? []) {
73
- if (file.mime_type && file.mime_type.startsWith("video/")) {
81
+ if (file.mime_type?.startsWith('video/')) {
74
82
  videoFile = file;
75
83
  break; // Use the first video file found
76
84
  }
@@ -79,28 +87,23 @@ export async function formatTwelvelabsPegasusPrompt(
79
87
  }
80
88
 
81
89
  if (!videoFile) {
82
- throw new Error("TwelveLabs Pegasus requires a video file input");
90
+ throw new Error('TwelveLabs Pegasus requires a video file input');
83
91
  }
84
92
 
85
93
  // Prepare media source
86
- let mediaSource: TwelvelabsPegasusRequest["mediaSource"];
94
+ let mediaSource: TwelvelabsPegasusRequest['mediaSource'];
87
95
 
88
96
  try {
89
97
  // Try to get S3 URL first
90
98
  const url = await videoFile.getURL();
91
99
  const parsedUrl = new URL(url);
92
100
 
93
- if (parsedUrl.hostname.endsWith("amazonaws.com") &&
94
- (parsedUrl.hostname.startsWith("s3.") || parsedUrl.hostname.includes(".s3."))) {
101
+ if (parsedUrl.protocol === 's3:' || isAmazonS3Hostname(parsedUrl.hostname)) {
95
102
  // Convert S3 URL to s3:// format
96
- const bucketMatch = parsedUrl.hostname.match(/^(?:s3\.)?([^.]+)\.s3\./);
97
- const bucket = bucketMatch ? bucketMatch[1] : parsedUrl.hostname.split('.')[0];
98
- const key = parsedUrl.pathname.substring(1); // Remove leading slash
99
-
100
103
  mediaSource = {
101
104
  s3Location: {
102
- uri: `s3://${bucket}/${key}`,
103
- }
105
+ uri: parsedUrl.protocol === 's3:' ? url : parseS3UrlToUri(parsedUrl),
106
+ },
104
107
  };
105
108
  } else {
106
109
  // Fall back to base64 encoding
@@ -108,26 +111,26 @@ export async function formatTwelvelabsPegasusPrompt(
108
111
  const base64String = await readStreamAsBase64(stream);
109
112
 
110
113
  mediaSource = {
111
- base64String
114
+ base64String,
112
115
  };
113
116
  }
114
- } catch (error) {
117
+ } catch {
115
118
  // If getting URL fails, use base64 encoding
116
119
  const stream = await videoFile.getStream();
117
120
  const base64String = await readStreamAsBase64(stream);
118
121
 
119
122
  mediaSource = {
120
- base64String
123
+ base64String,
121
124
  };
122
125
  }
123
126
 
124
127
  const request: TwelvelabsPegasusRequest = {
125
128
  inputPrompt: inputPrompt.trim(),
126
- mediaSource
129
+ mediaSource,
127
130
  };
128
131
 
129
132
  // Add optional parameters from model options
130
- const modelOptions = options.model_options as any;
133
+ const modelOptions = options.model_options as TextFallbackOptions | undefined;
131
134
  if (modelOptions?.temperature !== undefined) {
132
135
  request.temperature = modelOptions.temperature;
133
136
  }
@@ -138,11 +141,11 @@ export async function formatTwelvelabsPegasusPrompt(
138
141
  // Add response format if result schema is specified
139
142
  if (options.result_schema) {
140
143
  request.responseFormat = {
141
- type: "json_schema",
144
+ type: 'json_schema',
142
145
  json_schema: {
143
- name: "response",
144
- schema: options.result_schema
145
- }
146
+ name: 'response',
147
+ schema: options.result_schema,
148
+ },
146
149
  };
147
150
  }
148
151