@llumiverse/drivers 0.22.0 → 0.22.2

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 (289) hide show
  1. package/lib/cjs/adobe/firefly.js +8 -7
  2. package/lib/cjs/adobe/firefly.js.map +1 -1
  3. package/lib/cjs/azure/azure_foundry.js +12 -12
  4. package/lib/cjs/azure/azure_foundry.js.map +1 -1
  5. package/lib/cjs/bedrock/index.js +172 -22
  6. package/lib/cjs/bedrock/index.js.map +1 -1
  7. package/lib/cjs/bedrock/twelvelabs.js +87 -0
  8. package/lib/cjs/bedrock/twelvelabs.js.map +1 -0
  9. package/lib/cjs/groq/index.js +91 -16
  10. package/lib/cjs/groq/index.js.map +1 -1
  11. package/lib/cjs/huggingface_ie.js +7 -6
  12. package/lib/cjs/huggingface_ie.js.map +1 -1
  13. package/lib/cjs/index.js +2 -2
  14. package/lib/cjs/index.js.map +1 -1
  15. package/lib/cjs/mistral/index.js +5 -4
  16. package/lib/cjs/mistral/index.js.map +1 -1
  17. package/lib/cjs/openai/azure_openai.js +1 -1
  18. package/lib/cjs/openai/azure_openai.js.map +1 -1
  19. package/lib/cjs/openai/index.js +16 -12
  20. package/lib/cjs/openai/index.js.map +1 -1
  21. package/lib/cjs/replicate.js +6 -6
  22. package/lib/cjs/replicate.js.map +1 -1
  23. package/lib/cjs/test/utils.js +1 -1
  24. package/lib/cjs/test/utils.js.map +1 -1
  25. package/lib/cjs/test-driver/TestErrorCompletionStream.js +20 -0
  26. package/lib/cjs/test-driver/TestErrorCompletionStream.js.map +1 -0
  27. package/lib/cjs/test-driver/TestValidationErrorCompletionStream.js +24 -0
  28. package/lib/cjs/test-driver/TestValidationErrorCompletionStream.js.map +1 -0
  29. package/lib/cjs/test-driver/index.js +109 -0
  30. package/lib/cjs/test-driver/index.js.map +1 -0
  31. package/lib/cjs/test-driver/utils.js +30 -0
  32. package/lib/cjs/test-driver/utils.js.map +1 -0
  33. package/lib/cjs/togetherai/index.js +4 -4
  34. package/lib/cjs/togetherai/index.js.map +1 -1
  35. package/lib/cjs/vertexai/embeddings/embeddings-text.js +1 -1
  36. package/lib/cjs/vertexai/embeddings/embeddings-text.js.map +1 -1
  37. package/lib/cjs/vertexai/index.js +136 -31
  38. package/lib/cjs/vertexai/index.js.map +1 -1
  39. package/lib/cjs/vertexai/models/claude.js +38 -16
  40. package/lib/cjs/vertexai/models/claude.js.map +1 -1
  41. package/lib/cjs/vertexai/models/gemini.js +131 -41
  42. package/lib/cjs/vertexai/models/gemini.js.map +1 -1
  43. package/lib/cjs/vertexai/models/imagen.js +12 -23
  44. package/lib/cjs/vertexai/models/imagen.js.map +1 -1
  45. package/lib/cjs/vertexai/models/llama.js +4 -3
  46. package/lib/cjs/vertexai/models/llama.js.map +1 -1
  47. package/lib/cjs/vertexai/models.js +13 -2
  48. package/lib/cjs/vertexai/models.js.map +1 -1
  49. package/lib/cjs/watsonx/index.js +5 -5
  50. package/lib/cjs/watsonx/index.js.map +1 -1
  51. package/lib/cjs/xai/index.js +1 -1
  52. package/lib/cjs/xai/index.js.map +1 -1
  53. package/lib/esm/adobe/firefly.js +8 -7
  54. package/lib/esm/adobe/firefly.js.map +1 -1
  55. package/lib/esm/azure/azure_foundry.js +12 -12
  56. package/lib/esm/azure/azure_foundry.js.map +1 -1
  57. package/lib/esm/bedrock/index.js +172 -22
  58. package/lib/esm/bedrock/index.js.map +1 -1
  59. package/lib/esm/bedrock/twelvelabs.js +84 -0
  60. package/lib/esm/bedrock/twelvelabs.js.map +1 -0
  61. package/lib/esm/groq/index.js +91 -16
  62. package/lib/esm/groq/index.js.map +1 -1
  63. package/lib/esm/huggingface_ie.js +8 -7
  64. package/lib/esm/huggingface_ie.js.map +1 -1
  65. package/lib/esm/index.js +2 -2
  66. package/lib/esm/index.js.map +1 -1
  67. package/lib/esm/mistral/index.js +5 -4
  68. package/lib/esm/mistral/index.js.map +1 -1
  69. package/lib/esm/openai/azure_openai.js +1 -1
  70. package/lib/esm/openai/azure_openai.js.map +1 -1
  71. package/lib/esm/openai/index.js +16 -12
  72. package/lib/esm/openai/index.js.map +1 -1
  73. package/lib/esm/replicate.js +6 -6
  74. package/lib/esm/replicate.js.map +1 -1
  75. package/lib/esm/src/adobe/firefly.js +116 -0
  76. package/lib/esm/src/adobe/firefly.js.map +1 -0
  77. package/lib/esm/src/azure/azure_foundry.js +382 -0
  78. package/lib/esm/src/azure/azure_foundry.js.map +1 -0
  79. package/lib/esm/src/bedrock/converse.js +278 -0
  80. package/lib/esm/src/bedrock/converse.js.map +1 -0
  81. package/lib/esm/src/bedrock/index.js +962 -0
  82. package/lib/esm/src/bedrock/index.js.map +1 -0
  83. package/lib/esm/src/bedrock/nova-image-payload.js +203 -0
  84. package/lib/esm/src/bedrock/nova-image-payload.js.map +1 -0
  85. package/lib/esm/src/bedrock/payloads.js +2 -0
  86. package/lib/esm/src/bedrock/payloads.js.map +1 -0
  87. package/lib/esm/src/bedrock/s3.js +99 -0
  88. package/lib/esm/src/bedrock/s3.js.map +1 -0
  89. package/lib/esm/src/bedrock/twelvelabs.js +84 -0
  90. package/lib/esm/src/bedrock/twelvelabs.js.map +1 -0
  91. package/lib/esm/src/groq/index.js +286 -0
  92. package/lib/esm/src/groq/index.js.map +1 -0
  93. package/lib/esm/src/huggingface_ie.js +197 -0
  94. package/lib/esm/src/huggingface_ie.js.map +1 -0
  95. package/lib/esm/src/index.js +14 -0
  96. package/lib/esm/src/index.js.map +1 -0
  97. package/lib/esm/src/mistral/index.js +169 -0
  98. package/lib/esm/src/mistral/index.js.map +1 -0
  99. package/lib/esm/src/mistral/types.js +80 -0
  100. package/lib/esm/src/mistral/types.js.map +1 -0
  101. package/lib/esm/src/openai/azure_openai.js +68 -0
  102. package/lib/esm/src/openai/azure_openai.js.map +1 -0
  103. package/lib/esm/src/openai/index.js +464 -0
  104. package/lib/esm/src/openai/index.js.map +1 -0
  105. package/lib/esm/src/openai/openai.js +14 -0
  106. package/lib/esm/src/openai/openai.js.map +1 -0
  107. package/lib/esm/src/openai/openai_format.js +134 -0
  108. package/lib/esm/src/openai/openai_format.js.map +1 -0
  109. package/lib/esm/src/replicate.js +268 -0
  110. package/lib/esm/src/replicate.js.map +1 -0
  111. package/lib/esm/src/test/TestErrorCompletionStream.js +16 -0
  112. package/lib/esm/src/test/TestErrorCompletionStream.js.map +1 -0
  113. package/lib/esm/src/test/TestValidationErrorCompletionStream.js +20 -0
  114. package/lib/esm/src/test/TestValidationErrorCompletionStream.js.map +1 -0
  115. package/lib/esm/src/test/index.js +91 -0
  116. package/lib/esm/src/test/index.js.map +1 -0
  117. package/lib/esm/src/test/utils.js +25 -0
  118. package/lib/esm/src/test/utils.js.map +1 -0
  119. package/lib/esm/src/test-driver/TestErrorCompletionStream.js +16 -0
  120. package/lib/esm/src/test-driver/TestErrorCompletionStream.js.map +1 -0
  121. package/lib/esm/src/test-driver/TestValidationErrorCompletionStream.js +20 -0
  122. package/lib/esm/src/test-driver/TestValidationErrorCompletionStream.js.map +1 -0
  123. package/lib/esm/src/test-driver/index.js +91 -0
  124. package/lib/esm/src/test-driver/index.js.map +1 -0
  125. package/lib/esm/src/test-driver/utils.js +25 -0
  126. package/lib/esm/src/test-driver/utils.js.map +1 -0
  127. package/lib/esm/src/togetherai/index.js +122 -0
  128. package/lib/esm/src/togetherai/index.js.map +1 -0
  129. package/lib/esm/src/togetherai/interfaces.js +2 -0
  130. package/lib/esm/src/togetherai/interfaces.js.map +1 -0
  131. package/lib/esm/src/vertexai/debug.js +6 -0
  132. package/lib/esm/src/vertexai/debug.js.map +1 -0
  133. package/lib/esm/src/vertexai/embeddings/embeddings-image.js +24 -0
  134. package/lib/esm/src/vertexai/embeddings/embeddings-image.js.map +1 -0
  135. package/lib/esm/src/vertexai/embeddings/embeddings-text.js +20 -0
  136. package/lib/esm/src/vertexai/embeddings/embeddings-text.js.map +1 -0
  137. package/lib/esm/src/vertexai/index.js +383 -0
  138. package/lib/esm/src/vertexai/index.js.map +1 -0
  139. package/lib/esm/src/vertexai/models/claude.js +394 -0
  140. package/lib/esm/src/vertexai/models/claude.js.map +1 -0
  141. package/lib/esm/src/vertexai/models/gemini.js +817 -0
  142. package/lib/esm/src/vertexai/models/gemini.js.map +1 -0
  143. package/lib/esm/src/vertexai/models/imagen.js +302 -0
  144. package/lib/esm/src/vertexai/models/imagen.js.map +1 -0
  145. package/lib/esm/src/vertexai/models/llama.js +179 -0
  146. package/lib/esm/src/vertexai/models/llama.js.map +1 -0
  147. package/lib/esm/src/vertexai/models.js +32 -0
  148. package/lib/esm/src/vertexai/models.js.map +1 -0
  149. package/lib/esm/src/watsonx/index.js +157 -0
  150. package/lib/esm/src/watsonx/index.js.map +1 -0
  151. package/lib/esm/src/watsonx/interfaces.js +2 -0
  152. package/lib/esm/src/watsonx/interfaces.js.map +1 -0
  153. package/lib/esm/src/xai/index.js +64 -0
  154. package/lib/esm/src/xai/index.js.map +1 -0
  155. package/lib/esm/test/utils.js +1 -1
  156. package/lib/esm/test/utils.js.map +1 -1
  157. package/lib/esm/test-driver/TestErrorCompletionStream.js +16 -0
  158. package/lib/esm/test-driver/TestErrorCompletionStream.js.map +1 -0
  159. package/lib/esm/test-driver/TestValidationErrorCompletionStream.js +20 -0
  160. package/lib/esm/test-driver/TestValidationErrorCompletionStream.js.map +1 -0
  161. package/lib/esm/test-driver/index.js +91 -0
  162. package/lib/esm/test-driver/index.js.map +1 -0
  163. package/lib/esm/test-driver/utils.js +25 -0
  164. package/lib/esm/test-driver/utils.js.map +1 -0
  165. package/lib/esm/togetherai/index.js +4 -4
  166. package/lib/esm/togetherai/index.js.map +1 -1
  167. package/lib/esm/tsconfig.tsbuildinfo +1 -0
  168. package/lib/esm/vertexai/embeddings/embeddings-text.js +1 -1
  169. package/lib/esm/vertexai/embeddings/embeddings-text.js.map +1 -1
  170. package/lib/esm/vertexai/index.js +136 -31
  171. package/lib/esm/vertexai/index.js.map +1 -1
  172. package/lib/esm/vertexai/models/claude.js +37 -15
  173. package/lib/esm/vertexai/models/claude.js.map +1 -1
  174. package/lib/esm/vertexai/models/gemini.js +133 -43
  175. package/lib/esm/vertexai/models/gemini.js.map +1 -1
  176. package/lib/esm/vertexai/models/imagen.js +9 -17
  177. package/lib/esm/vertexai/models/imagen.js.map +1 -1
  178. package/lib/esm/vertexai/models/llama.js +4 -3
  179. package/lib/esm/vertexai/models/llama.js.map +1 -1
  180. package/lib/esm/vertexai/models.js +13 -2
  181. package/lib/esm/vertexai/models.js.map +1 -1
  182. package/lib/esm/watsonx/index.js +5 -5
  183. package/lib/esm/watsonx/index.js.map +1 -1
  184. package/lib/esm/xai/index.js +1 -1
  185. package/lib/esm/xai/index.js.map +1 -1
  186. package/lib/types/adobe/firefly.d.ts +3 -3
  187. package/lib/types/adobe/firefly.d.ts.map +1 -1
  188. package/lib/types/azure/azure_foundry.d.ts +2 -2
  189. package/lib/types/azure/azure_foundry.d.ts.map +1 -1
  190. package/lib/types/bedrock/index.d.ts +9 -5
  191. package/lib/types/bedrock/index.d.ts.map +1 -1
  192. package/lib/types/bedrock/twelvelabs.d.ts +50 -0
  193. package/lib/types/bedrock/twelvelabs.d.ts.map +1 -0
  194. package/lib/types/groq/index.d.ts +3 -0
  195. package/lib/types/groq/index.d.ts.map +1 -1
  196. package/lib/types/huggingface_ie.d.ts +8 -5
  197. package/lib/types/huggingface_ie.d.ts.map +1 -1
  198. package/lib/types/index.d.ts +2 -2
  199. package/lib/types/index.d.ts.map +1 -1
  200. package/lib/types/mistral/index.d.ts +2 -2
  201. package/lib/types/mistral/index.d.ts.map +1 -1
  202. package/lib/types/openai/index.d.ts +2 -2
  203. package/lib/types/openai/index.d.ts.map +1 -1
  204. package/lib/types/replicate.d.ts +6 -3
  205. package/lib/types/replicate.d.ts.map +1 -1
  206. package/lib/types/src/adobe/firefly.d.ts +29 -0
  207. package/lib/types/src/azure/azure_foundry.d.ts +49 -0
  208. package/lib/types/src/bedrock/converse.d.ts +8 -0
  209. package/lib/types/src/bedrock/index.d.ts +61 -0
  210. package/lib/types/src/bedrock/nova-image-payload.d.ts +73 -0
  211. package/lib/types/src/bedrock/payloads.d.ts +11 -0
  212. package/lib/types/src/bedrock/s3.d.ts +22 -0
  213. package/lib/types/src/bedrock/twelvelabs.d.ts +49 -0
  214. package/lib/types/src/groq/index.d.ts +26 -0
  215. package/lib/types/src/huggingface_ie.d.ts +34 -0
  216. package/lib/types/src/index.d.ts +13 -0
  217. package/lib/types/src/mistral/index.d.ts +24 -0
  218. package/lib/types/src/mistral/types.d.ts +131 -0
  219. package/lib/types/src/openai/azure_openai.d.ts +24 -0
  220. package/lib/types/src/openai/index.d.ts +24 -0
  221. package/lib/types/src/openai/openai.d.ts +14 -0
  222. package/lib/types/src/openai/openai_format.d.ts +18 -0
  223. package/lib/types/src/replicate.d.ts +47 -0
  224. package/lib/types/src/test/TestErrorCompletionStream.d.ts +8 -0
  225. package/lib/types/src/test/TestValidationErrorCompletionStream.d.ts +8 -0
  226. package/lib/types/src/test/index.d.ts +23 -0
  227. package/lib/types/src/test/utils.d.ts +4 -0
  228. package/lib/types/src/test-driver/TestErrorCompletionStream.d.ts +8 -0
  229. package/lib/types/src/test-driver/TestValidationErrorCompletionStream.d.ts +8 -0
  230. package/lib/types/src/test-driver/index.d.ts +23 -0
  231. package/lib/types/src/test-driver/utils.d.ts +4 -0
  232. package/lib/types/src/togetherai/index.d.ts +22 -0
  233. package/lib/types/src/togetherai/interfaces.d.ts +95 -0
  234. package/lib/types/src/vertexai/debug.d.ts +1 -0
  235. package/lib/types/src/vertexai/embeddings/embeddings-image.d.ts +10 -0
  236. package/lib/types/src/vertexai/embeddings/embeddings-text.d.ts +9 -0
  237. package/lib/types/src/vertexai/index.d.ts +52 -0
  238. package/lib/types/src/vertexai/models/claude.d.ts +19 -0
  239. package/lib/types/src/vertexai/models/gemini.d.ts +17 -0
  240. package/lib/types/src/vertexai/models/imagen.d.ts +74 -0
  241. package/lib/types/src/vertexai/models/llama.d.ts +19 -0
  242. package/lib/types/src/vertexai/models.d.ts +14 -0
  243. package/lib/types/src/watsonx/index.d.ts +26 -0
  244. package/lib/types/src/watsonx/interfaces.d.ts +64 -0
  245. package/lib/types/src/xai/index.d.ts +18 -0
  246. package/lib/types/test-driver/TestErrorCompletionStream.d.ts +9 -0
  247. package/lib/types/test-driver/TestErrorCompletionStream.d.ts.map +1 -0
  248. package/lib/types/test-driver/TestValidationErrorCompletionStream.d.ts +9 -0
  249. package/lib/types/test-driver/TestValidationErrorCompletionStream.d.ts.map +1 -0
  250. package/lib/types/test-driver/index.d.ts +24 -0
  251. package/lib/types/test-driver/index.d.ts.map +1 -0
  252. package/lib/types/test-driver/utils.d.ts +5 -0
  253. package/lib/types/test-driver/utils.d.ts.map +1 -0
  254. package/lib/types/togetherai/index.d.ts +3 -3
  255. package/lib/types/togetherai/index.d.ts.map +1 -1
  256. package/lib/types/vertexai/index.d.ts +17 -14
  257. package/lib/types/vertexai/index.d.ts.map +1 -1
  258. package/lib/types/vertexai/models/claude.d.ts +2 -0
  259. package/lib/types/vertexai/models/claude.d.ts.map +1 -1
  260. package/lib/types/vertexai/models/gemini.d.ts.map +1 -1
  261. package/lib/types/vertexai/models/imagen.d.ts +2 -2
  262. package/lib/types/vertexai/models/imagen.d.ts.map +1 -1
  263. package/lib/types/vertexai/models/llama.d.ts +2 -2
  264. package/lib/types/vertexai/models/llama.d.ts.map +1 -1
  265. package/lib/types/vertexai/models.d.ts +2 -2
  266. package/lib/types/vertexai/models.d.ts.map +1 -1
  267. package/lib/types/watsonx/index.d.ts +3 -3
  268. package/lib/types/watsonx/index.d.ts.map +1 -1
  269. package/package.json +9 -9
  270. package/src/adobe/firefly.ts +12 -20
  271. package/src/azure/azure_foundry.ts +5 -5
  272. package/src/bedrock/index.ts +203 -24
  273. package/src/bedrock/twelvelabs.ts +150 -0
  274. package/src/groq/index.ts +134 -37
  275. package/src/huggingface_ie.ts +7 -7
  276. package/src/mistral/index.ts +8 -7
  277. package/src/openai/index.ts +16 -10
  278. package/src/replicate.ts +11 -11
  279. package/src/test/utils.ts +1 -1
  280. package/src/togetherai/index.ts +7 -7
  281. package/src/vertexai/embeddings/embeddings-text.ts +2 -2
  282. package/src/vertexai/index.ts +133 -21
  283. package/src/vertexai/models/claude.ts +43 -17
  284. package/src/vertexai/models/gemini.ts +161 -60
  285. package/src/vertexai/models/imagen.ts +15 -26
  286. package/src/vertexai/models/llama.ts +6 -5
  287. package/src/vertexai/models.ts +18 -6
  288. package/src/watsonx/index.ts +5 -5
  289. package/src/xai/index.ts +11 -12
@@ -1,4 +1,4 @@
1
- import { AIModel, Completion, ExecutionOptions, ImageGeneration, PromptSegment } from "@llumiverse/core";
1
+ import { AIModel, Completion, ExecutionOptions, PromptSegment } from "@llumiverse/core";
2
2
  import { VertexAIDriver } from "../index.js";
3
3
  interface ImagenBaseReference {
4
4
  referenceType: "REFERENCE_TYPE_RAW" | "REFERENCE_TYPE_MASK" | "REFERENCE_TYPE_SUBJECT" | "REFERENCE_TYPE_CONTROL" | "REFERENCE_TYPE_STYLE";
@@ -69,7 +69,7 @@ export declare class ImagenModelDefinition {
69
69
  model: AIModel;
70
70
  constructor(modelId: string);
71
71
  createPrompt(_driver: VertexAIDriver, segments: PromptSegment[], options: ExecutionOptions): Promise<ImagenPrompt>;
72
- requestImageGeneration(driver: VertexAIDriver, prompt: ImagenPrompt, options: ExecutionOptions): Promise<Completion<ImageGeneration>>;
72
+ requestImageGeneration(driver: VertexAIDriver, prompt: ImagenPrompt, options: ExecutionOptions): Promise<Completion>;
73
73
  }
74
74
  export {};
75
75
  //# sourceMappingURL=imagen.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"imagen.d.ts","sourceRoot":"","sources":["../../../../src/vertexai/models/imagen.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAC/B,aAAa,EACvC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAY7C,UAAU,mBAAmB;IACzB,aAAa,EAAE,oBAAoB,GAAG,qBAAqB,GAAG,wBAAwB,GACtF,wBAAwB,GAAG,sBAAsB,CAAC;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE;QACZ,kBAAkB,EAAE,MAAM,CAAC;KAC9B,CAAA;CACJ;AAED,oBAAY,cAAc;IACtB,UAAU,eAAe;IACzB,yBAAyB,8BAA8B;IACvD,2BAA2B,gCAAgC;IAC3D,gBAAgB,qBAAqB;IACrC,kBAAkB,uBAAuB;IACzC,qBAAqB,0BAA0B;IAC/C,mBAAmB,wBAAwB;IAC3C,wBAAwB,6BAA6B;IACrD,sBAAsB,2BAA2B;CACpD;AAED,oBAAY,cAAc;IACtB,uBAAuB,4BAA4B;IACnD,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;IAC7C,kBAAkB,uBAAuB;CAC5C;AAED,UAAU,kBAAmB,SAAQ,mBAAmB;IACpD,aAAa,EAAE,oBAAoB,CAAC;CACvC;AAED,UAAU,mBAAoB,SAAQ,IAAI,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;IAC7E,aAAa,EAAE,qBAAqB,CAAC;IACrC,eAAe,EAAE;QACb,QAAQ,CAAC,EAAE,cAAc,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAA;IACD,cAAc,CAAC,EAAE;QACb,kBAAkB,EAAE,MAAM,CAAC;KAC9B,CAAA;CACJ;AAED,UAAU,sBAAuB,SAAQ,mBAAmB;IACxD,aAAa,EAAE,wBAAwB,CAAC;IACxC,kBAAkB,EAAE;QAChB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,WAAW,EAAE,qBAAqB,GAAG,qBAAqB,GAAG,sBAAsB,GAAG,sBAAsB,CAAC;KAChH,CAAA;CACJ;AAED,UAAU,sBAAuB,SAAQ,mBAAmB;IACxD,aAAa,EAAE,wBAAwB,CAAC;IACxC,kBAAkB,EAAE;QAChB,WAAW,EAAE,wBAAwB,GAAG,oBAAoB,GAAG,uBAAuB,CAAC;QACvF,6BAA6B,CAAC,EAAE,OAAO,CAAC;KAC3C,CAAA;CACJ;AAED,UAAU,oBAAqB,SAAQ,mBAAmB;IACtD,aAAa,EAAE,sBAAsB,CAAC;IACtC,gBAAgB,EAAE;QACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC7B,CAAA;CACJ;AAED,KAAK,aAAa,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,sBAAsB,GAAG,sBAAsB,GAAG,oBAAoB,CAAC;AAEvI,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AA0ED,qBAAa,qBAAqB;IAE9B,KAAK,EAAE,OAAO,CAAA;gBAEF,OAAO,EAAE,MAAM;IAUrB,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;IAiKlH,sBAAsB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;CA8D9I"}
1
+ {"version":3,"file":"imagen.d.ts","sourceRoot":"","sources":["../../../../src/vertexai/models/imagen.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EACd,aAAa,EACvC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAK7C,UAAU,mBAAmB;IACzB,aAAa,EAAE,oBAAoB,GAAG,qBAAqB,GAAG,wBAAwB,GACtF,wBAAwB,GAAG,sBAAsB,CAAC;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE;QACZ,kBAAkB,EAAE,MAAM,CAAC;KAC9B,CAAA;CACJ;AAED,oBAAY,cAAc;IACtB,UAAU,eAAe;IACzB,yBAAyB,8BAA8B;IACvD,2BAA2B,gCAAgC;IAC3D,gBAAgB,qBAAqB;IACrC,kBAAkB,uBAAuB;IACzC,qBAAqB,0BAA0B;IAC/C,mBAAmB,wBAAwB;IAC3C,wBAAwB,6BAA6B;IACrD,sBAAsB,2BAA2B;CACpD;AAED,oBAAY,cAAc;IACtB,uBAAuB,4BAA4B;IACnD,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;IAC7C,kBAAkB,uBAAuB;CAC5C;AAED,UAAU,kBAAmB,SAAQ,mBAAmB;IACpD,aAAa,EAAE,oBAAoB,CAAC;CACvC;AAED,UAAU,mBAAoB,SAAQ,IAAI,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;IAC7E,aAAa,EAAE,qBAAqB,CAAC;IACrC,eAAe,EAAE;QACb,QAAQ,CAAC,EAAE,cAAc,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAA;IACD,cAAc,CAAC,EAAE;QACb,kBAAkB,EAAE,MAAM,CAAC;KAC9B,CAAA;CACJ;AAED,UAAU,sBAAuB,SAAQ,mBAAmB;IACxD,aAAa,EAAE,wBAAwB,CAAC;IACxC,kBAAkB,EAAE;QAChB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,WAAW,EAAE,qBAAqB,GAAG,qBAAqB,GAAG,sBAAsB,GAAG,sBAAsB,CAAC;KAChH,CAAA;CACJ;AAED,UAAU,sBAAuB,SAAQ,mBAAmB;IACxD,aAAa,EAAE,wBAAwB,CAAC;IACxC,kBAAkB,EAAE;QAChB,WAAW,EAAE,wBAAwB,GAAG,oBAAoB,GAAG,uBAAuB,CAAC;QACvF,6BAA6B,CAAC,EAAE,OAAO,CAAC;KAC3C,CAAA;CACJ;AAED,UAAU,oBAAqB,SAAQ,mBAAmB;IACtD,aAAa,EAAE,sBAAsB,CAAC;IACtC,gBAAgB,EAAE;QACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC7B,CAAA;CACJ;AAED,KAAK,aAAa,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,sBAAsB,GAAG,sBAAsB,GAAG,oBAAoB,CAAC;AAEvI,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAkED,qBAAa,qBAAqB;IAE9B,KAAK,EAAE,OAAO,CAAA;gBAEF,OAAO,EAAE,MAAM;IAUrB,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;IAiKlH,sBAAsB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;CAkE7H"}
@@ -1,4 +1,4 @@
1
- import { AIModel, Completion, CompletionChunk, ExecutionOptions, PromptOptions, PromptSegment } from "@llumiverse/core";
1
+ import { AIModel, Completion, CompletionChunkObject, ExecutionOptions, PromptOptions, PromptSegment } from "@llumiverse/core";
2
2
  import { VertexAIDriver } from "../index.js";
3
3
  import { ModelDefinition } from "../models.js";
4
4
  interface LLamaMessage {
@@ -14,7 +14,7 @@ export declare class LLamaModelDefinition implements ModelDefinition<LLamaPrompt
14
14
  getLlamaModelRegion(modelName: string): string;
15
15
  createPrompt(_driver: VertexAIDriver, segments: PromptSegment[], options: PromptOptions): Promise<LLamaPrompt>;
16
16
  requestTextCompletion(driver: VertexAIDriver, prompt: LLamaPrompt, options: ExecutionOptions): Promise<Completion>;
17
- requestTextCompletionStream(driver: VertexAIDriver, prompt: LLamaPrompt, options: ExecutionOptions): Promise<AsyncIterable<CompletionChunk>>;
17
+ requestTextCompletionStream(driver: VertexAIDriver, prompt: LLamaPrompt, options: ExecutionOptions): Promise<AsyncIterable<CompletionChunkObject>>;
18
18
  }
19
19
  export {};
20
20
  //# sourceMappingURL=llama.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"llama.d.ts","sourceRoot":"","sources":["../../../../src/vertexai/models/llama.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAyB,gBAAgB,EAC7E,aAAa,EAAc,aAAa,EAE3C,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,UAAU,YAAY;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,WAAW;IACjB,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC5B;AAqED,qBAAa,oBAAqB,YAAW,eAAe,CAAC,WAAW,CAAC;IAErE,KAAK,EAAE,OAAO,CAAA;gBAEF,OAAO,EAAE,MAAM;IAW3B,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IASxC,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;IAwC9G,qBAAqB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IA2DlH,2BAA2B,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;CAoDrJ"}
1
+ {"version":3,"file":"llama.d.ts","sourceRoot":"","sources":["../../../../src/vertexai/models/llama.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,gBAAgB,EAC5D,aAAa,EAAc,aAAa,EAE3C,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,UAAU,YAAY;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,WAAW;IACjB,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC5B;AAqED,qBAAa,oBAAqB,YAAW,eAAe,CAAC,WAAW,CAAC;IAErE,KAAK,EAAE,OAAO,CAAA;gBAEF,OAAO,EAAE,MAAM;IAW3B,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IASxC,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;IAwC9G,qBAAqB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IA2DlH,2BAA2B,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;CAqD3J"}
@@ -1,11 +1,11 @@
1
- import { AIModel, Completion, PromptSegment, ExecutionOptions, CompletionChunk } from "@llumiverse/core";
1
+ import { AIModel, Completion, PromptSegment, ExecutionOptions, CompletionChunkObject } from "@llumiverse/core";
2
2
  import { VertexAIDriver } from "./index.js";
3
3
  export interface ModelDefinition<PromptT = any> {
4
4
  model: AIModel;
5
5
  versions?: string[];
6
6
  createPrompt: (driver: VertexAIDriver, segments: PromptSegment[], options: ExecutionOptions) => Promise<PromptT>;
7
7
  requestTextCompletion: (driver: VertexAIDriver, prompt: PromptT, options: ExecutionOptions) => Promise<Completion>;
8
- requestTextCompletionStream: (driver: VertexAIDriver, prompt: PromptT, options: ExecutionOptions) => Promise<AsyncIterable<CompletionChunk>>;
8
+ requestTextCompletionStream: (driver: VertexAIDriver, prompt: PromptT, options: ExecutionOptions) => Promise<AsyncIterable<CompletionChunkObject>>;
9
9
  preValidationProcessing?(result: Completion, options: ExecutionOptions): {
10
10
  result: Completion;
11
11
  options: ExecutionOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/vertexai/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACzG,OAAO,EAAE,cAAc,EAAiB,MAAM,YAAY,CAAC;AAK3D,MAAM,WAAW,eAAe,CAAC,OAAO,GAAG,GAAG;IAC1C,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACjH,qBAAqB,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACnH,2BAA2B,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;IAC7I,uBAAuB,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,GAAG;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,gBAAgB,CAAA;KAAE,CAAC;CAC9H;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAejE"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/vertexai/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC/G,OAAO,EAAE,cAAc,EAAiB,MAAM,YAAY,CAAC;AAK3D,MAAM,WAAW,eAAe,CAAC,OAAO,GAAG,GAAG;IAC1C,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACjH,qBAAqB,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACnH,2BAA2B,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACnJ,uBAAuB,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,GAAG;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,gBAAgB,CAAA;KAAE,CAAC;CAC9H;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CA2BjE"}
@@ -1,4 +1,4 @@
1
- import { AIModel, AbstractDriver, Completion, CompletionChunk, DriverOptions, EmbeddingsOptions, EmbeddingsResult, ExecutionOptions } from "@llumiverse/core";
1
+ import { AIModel, AbstractDriver, Completion, CompletionChunkObject, DriverOptions, EmbeddingsOptions, EmbeddingsResult, ExecutionOptions } from "@llumiverse/core";
2
2
  import { FetchClient } from "@vertesia/api-fetch-client";
3
3
  import { WatsonAuthToken } from "./interfaces.js";
4
4
  interface WatsonxDriverOptions extends DriverOptions {
@@ -16,8 +16,8 @@ export declare class WatsonxDriver extends AbstractDriver<WatsonxDriverOptions,
16
16
  fetcher?: FetchClient;
17
17
  fetchClient: FetchClient;
18
18
  constructor(options: WatsonxDriverOptions);
19
- requestTextCompletion(prompt: string, options: ExecutionOptions): Promise<Completion<any>>;
20
- requestTextCompletionStream(prompt: string, options: ExecutionOptions): Promise<AsyncIterable<CompletionChunk>>;
19
+ requestTextCompletion(prompt: string, options: ExecutionOptions): Promise<Completion>;
20
+ requestTextCompletionStream(prompt: string, options: ExecutionOptions): Promise<AsyncIterable<CompletionChunkObject>>;
21
21
  listModels(): Promise<AIModel<string>[]>;
22
22
  getAuthToken(): Promise<string>;
23
23
  validateConnection(): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/watsonx/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAuB,MAAM,kBAAkB,CAAC;AAEnL,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAuD,eAAe,EAA2G,MAAM,iBAAiB,CAAC;AAEhN,UAAU,oBAAqB,SAAQ,aAAa;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACvB;AAID,qBAAa,aAAc,SAAQ,cAAc,CAAC,oBAAoB,EAAE,MAAM,CAAC;IAC3E,MAAM,CAAC,QAAQ,SAAa;IAC5B,QAAQ,SAA0B;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,WAAW,EAAE,WAAW,CAAA;gBAEZ,OAAO,EAAE,oBAAoB;IAQnC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAmC1F,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IAwC/G,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;IAoBxC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAwB/B,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAStC,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAwBlF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/watsonx/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,qBAAqB,EAAE,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAuB,MAAM,kBAAkB,CAAC;AAEzL,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAuD,eAAe,EAA2G,MAAM,iBAAiB,CAAC;AAEhN,UAAU,oBAAqB,SAAQ,aAAa;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACvB;AAID,qBAAa,aAAc,SAAQ,cAAc,CAAC,oBAAoB,EAAE,MAAM,CAAC;IAC3E,MAAM,CAAC,QAAQ,SAAa;IAC5B,QAAQ,SAA0B;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,WAAW,EAAE,WAAW,CAAA;gBAEZ,OAAO,EAAE,oBAAoB;IAQnC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAmCrF,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAwCrH,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;IAoBxC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAwB/B,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAStC,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAwBlF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llumiverse/drivers",
3
- "version": "0.22.0",
3
+ "version": "0.22.2",
4
4
  "type": "module",
5
5
  "description": "LLM driver implementations. Currently supported are: openai, huggingface, bedrock, replicate.",
6
6
  "files": [
@@ -44,12 +44,12 @@
44
44
  "dotenv": "^16.6.1",
45
45
  "rimraf": "^6.0.1",
46
46
  "ts-dual-module": "^0.6.3",
47
- "typescript": "^5.8.3",
47
+ "typescript": "^5.9.2",
48
48
  "vitest": "^3.2.4"
49
49
  },
50
50
  "dependencies": {
51
- "@anthropic-ai/sdk": "^0.55.1",
52
- "@anthropic-ai/vertex-sdk": "^0.11.5",
51
+ "@anthropic-ai/sdk": "^0.66.0",
52
+ "@anthropic-ai/vertex-sdk": "^0.14.0",
53
53
  "@aws-sdk/client-bedrock": "^3.840.0",
54
54
  "@aws-sdk/client-bedrock-runtime": "^3.840.0",
55
55
  "@aws-sdk/client-s3": "^3.840.0",
@@ -63,18 +63,18 @@
63
63
  "@azure/identity": "^4.10.1",
64
64
  "@azure/openai": "2.0.0",
65
65
  "@google-cloud/aiplatform": "^3.35.0",
66
- "@google/genai": "^1.7.0",
66
+ "@google/genai": "^1.25.0",
67
67
  "@huggingface/inference": "2.6.7",
68
- "@vertesia/api-fetch-client": "^0.72.0",
68
+ "@vertesia/api-fetch-client": "^0.74.0",
69
69
  "eventsource": "^4.0.0",
70
70
  "google-auth-library": "^9.15.1",
71
- "groq-sdk": "^0.26.0",
71
+ "groq-sdk": "^0.34.0",
72
72
  "mnemonist": "^0.40.3",
73
73
  "node-web-stream-adapters": "^0.2.1",
74
74
  "openai": "^4.104.0",
75
75
  "replicate": "^1.0.1",
76
- "@llumiverse/common": "0.22.0",
77
- "@llumiverse/core": "0.22.0"
76
+ "@llumiverse/common": "0.22.2",
77
+ "@llumiverse/core": "0.22.2"
78
78
  },
79
79
  "ts_dual_module": {
80
80
  "outDir": "lib"
@@ -1,13 +1,4 @@
1
- import {
2
- AbstractDriver, AIModel,
3
- Completion,
4
- CompletionChunk, DriverOptions, EmbeddingsOptions,
5
- EmbeddingsResult,
6
- ExecutionOptions,
7
- ImageGeneration,
8
- ModelSearchPayload,
9
- PromptSegment
10
- } from "@llumiverse/core";
1
+ import { AbstractDriver, AIModel, Completion, CompletionChunkObject, DriverOptions, EmbeddingsOptions, EmbeddingsResult, ExecutionOptions, ModelSearchPayload, PromptSegment } from "@llumiverse/core";
11
2
 
12
3
  interface FireflyImageSource {
13
4
  url?: string;
@@ -83,7 +74,7 @@ export class FireflyDriver extends AbstractDriver<FireflyDriverOptions> {
83
74
 
84
75
  constructor(options: FireflyDriverOptions) {
85
76
  super(options);
86
-
77
+
87
78
  if (!options.apiKey) {
88
79
  throw new Error("No API key provided for Firefly driver");
89
80
  }
@@ -95,14 +86,14 @@ export class FireflyDriver extends AbstractDriver<FireflyDriverOptions> {
95
86
  throw new Error("Text completion not supported by Firefly");
96
87
  }
97
88
 
98
- async requestTextCompletionStream(_prompt: string, _options: ExecutionOptions): Promise<AsyncIterable<CompletionChunk>> {
89
+ async requestTextCompletionStream(_prompt: string, _options: ExecutionOptions): Promise<AsyncIterable<CompletionChunkObject>> {
99
90
  throw new Error("Text completion streaming not supported by Firefly");
100
91
  }
101
92
 
102
- async requestImageGeneration(segments: PromptSegment[], options: ExecutionOptions): Promise<Completion<ImageGeneration>> {
93
+ async requestImageGeneration(segments: PromptSegment[], options: ExecutionOptions): Promise<Completion> {
103
94
  this.logger.debug(`[${this.provider}] Generating image with model ${options.model}`);
104
95
  const prompt = segments.map(s => s.content).join("\n\n");
105
-
96
+
106
97
 
107
98
  try {
108
99
  const payload: FireflyGenerateRequest = {
@@ -127,7 +118,7 @@ export class FireflyDriver extends AbstractDriver<FireflyDriverOptions> {
127
118
 
128
119
  if (result.promptHasDeniedWords || result.promptHasBlockedArtists) {
129
120
  return {
130
- result: {},
121
+ result: [],
131
122
  error: {
132
123
  message: "Prompt contains denied words or blocked artists",
133
124
  code: "content_policy_violation"
@@ -136,15 +127,16 @@ export class FireflyDriver extends AbstractDriver<FireflyDriverOptions> {
136
127
  }
137
128
 
138
129
  return {
139
- result: {
140
- images: result.outputs.map(output => output.image.url)
141
- }
130
+ result: result.outputs.map(output => ({
131
+ type: "image" as const,
132
+ value: output.image.url
133
+ }))
142
134
  };
143
135
 
144
136
  } catch (error: any) {
145
137
  this.logger.error("[Firefly] Image generation failed", { error });
146
138
  return {
147
- result: {},
139
+ result: [],
148
140
  error: {
149
141
  message: error.message,
150
142
  code: error.code || 'GENERATION_FAILED'
@@ -171,7 +163,7 @@ export class FireflyDriver extends AbstractDriver<FireflyDriverOptions> {
171
163
  tags: ["image-generation"]
172
164
  },
173
165
  {
174
- id: "firefly-v3-image-to-image",
166
+ id: "firefly-v3-image-to-image",
175
167
  name: "Firefly v3 Image to Image",
176
168
  provider: this.provider,
177
169
  description: "Adobe Firefly v3 image to image generation model",
@@ -1,5 +1,5 @@
1
1
  import { DefaultAzureCredential, getBearerTokenProvider, TokenCredential } from "@azure/identity";
2
- import { AbstractDriver, AIModel, Completion, CompletionChunk, DriverOptions, EmbeddingsOptions, EmbeddingsResult, ExecutionOptions, getModelCapabilities, modelModalitiesToArray, Providers } from "@llumiverse/core";
2
+ import { AbstractDriver, AIModel, Completion, CompletionChunkObject, DriverOptions, EmbeddingsOptions, EmbeddingsResult, ExecutionOptions, getModelCapabilities, modelModalitiesToArray, Providers } from "@llumiverse/core";
3
3
  import { AIProjectClient, DeploymentUnion, ModelDeployment } from '@azure/ai-projects';
4
4
  import { isUnexpected } from "@azure-rest/ai-inference";
5
5
  import { ChatCompletionMessageParam } from "openai/resources";
@@ -139,7 +139,7 @@ export class AzureFoundryDriver extends AbstractDriver<AzureFoundryDriverOptions
139
139
  }
140
140
  }
141
141
 
142
- async requestTextCompletionStream(prompt: ChatCompletionMessageParam[], options: ExecutionOptions): Promise<AsyncIterable<CompletionChunk>> {
142
+ async requestTextCompletionStream(prompt: ChatCompletionMessageParam[], options: ExecutionOptions): Promise<AsyncIterable<CompletionChunkObject>> {
143
143
  const { deploymentName } = parseAzureFoundryModelId(options.model);
144
144
  const model_options = options.model_options as any;
145
145
  const isOpenAI = await this.isOpenAIDeployment(options.model);
@@ -184,7 +184,7 @@ export class AzureFoundryDriver extends AbstractDriver<AzureFoundryDriverOptions
184
184
  }
185
185
  }
186
186
 
187
- private async *processStreamResponse(sseStream: any): AsyncIterable<CompletionChunk> {
187
+ private async *processStreamResponse(sseStream: any): AsyncIterable<CompletionChunkObject> {
188
188
  try {
189
189
  for await (const event of sseStream) {
190
190
  if (event.data === "[DONE]") {
@@ -201,7 +201,7 @@ export class AzureFoundryDriver extends AbstractDriver<AzureFoundryDriverOptions
201
201
  if (!choice) {
202
202
  continue;
203
203
  }
204
- const chunk: CompletionChunk = {
204
+ const chunk: CompletionChunkObject = {
205
205
  result: choice.delta?.content || "",
206
206
  finish_reason: this.convertFinishReason(choice.finish_reason),
207
207
  token_usage: {
@@ -246,7 +246,7 @@ export class AzureFoundryDriver extends AbstractDriver<AzureFoundryDriverOptions
246
246
  }
247
247
 
248
248
  const completion: Completion = {
249
- result: data,
249
+ result: data ? [{ type: "text", value: data }] : [],
250
250
  token_usage: tokenInfo,
251
251
  finish_reason: this.convertFinishReason(choice.finish_reason),
252
252
  };
@@ -7,9 +7,9 @@ import { S3Client } from "@aws-sdk/client-s3";
7
7
  import { AwsCredentialIdentity, Provider } from "@aws-sdk/types";
8
8
  import {
9
9
  AbstractDriver, AIModel, Completion, CompletionChunkObject, DataSource, DriverOptions, EmbeddingsOptions, EmbeddingsResult,
10
- ExecutionOptions, ExecutionTokenUsage, ImageGeneration, Modalities, PromptSegment,
10
+ ExecutionOptions, ExecutionTokenUsage, Modalities, PromptSegment,
11
11
  TextFallbackOptions, ToolDefinition, ToolUse, TrainingJob, TrainingJobStatus, TrainingOptions,
12
- BedrockClaudeOptions, BedrockPalmyraOptions, getMaxTokensLimitBedrock, NovaCanvasOptions,
12
+ BedrockClaudeOptions, BedrockPalmyraOptions, BedrockGptOssOptions, getMaxTokensLimitBedrock, NovaCanvasOptions,
13
13
  modelModalitiesToArray, getModelCapabilities,
14
14
  StatelessExecutionOptions,
15
15
  ModelOptions
@@ -20,6 +20,12 @@ import { LRUCache } from "mnemonist";
20
20
  import { converseConcatMessages, converseJSONprefill, converseSystemToMessages, formatConversePrompt } from "./converse.js";
21
21
  import { formatNovaImageGenerationPayload, NovaImageGenerationTaskType } from "./nova-image-payload.js";
22
22
  import { forceUploadFile } from "./s3.js";
23
+ import {
24
+ formatTwelvelabsPegasusPrompt,
25
+ TwelvelabsPegasusRequest,
26
+ TwelvelabsMarengoRequest,
27
+ TwelvelabsMarengoResponse
28
+ } from "./twelvelabs.js";
23
29
 
24
30
  const supportStreamingCache = new LRUCache<string, boolean>(4096);
25
31
 
@@ -84,7 +90,7 @@ function maxTokenFallbackClaude(option: StatelessExecutionOptions): number {
84
90
  }
85
91
  }
86
92
 
87
- export type BedrockPrompt = NovaMessagesPrompt | ConverseRequest;
93
+ export type BedrockPrompt = NovaMessagesPrompt | ConverseRequest | TwelvelabsPegasusRequest;
88
94
 
89
95
  export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockPrompt> {
90
96
 
@@ -129,6 +135,9 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
129
135
  if (opts.model.includes("canvas")) {
130
136
  return await formatNovaPrompt(segments, opts.result_schema);
131
137
  }
138
+ if (opts.model.includes("twelvelabs.pegasus")) {
139
+ return await formatTwelvelabsPegasusPrompt(segments, opts);
140
+ }
132
141
  return await formatConversePrompt(segments, opts);
133
142
  }
134
143
 
@@ -171,7 +180,7 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
171
180
  }
172
181
 
173
182
  const completionResult: CompletionChunkObject = {
174
- result: reasoning + resultText,
183
+ result: reasoning + resultText ? [{ type: "text", value: reasoning + resultText }] : [],
175
184
  token_usage: {
176
185
  prompt: result.usage?.inputTokens,
177
186
  result: result.usage?.outputTokens,
@@ -252,7 +261,7 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
252
261
  }
253
262
 
254
263
  const completionResult: CompletionChunkObject = {
255
- result: reasoning + output,
264
+ result: reasoning + output ? [{ type: "text", value: reasoning + output }] : [],
256
265
  token_usage: token_usage,
257
266
  finish_reason: converseFinishReason(stop_reason),
258
267
  };
@@ -320,6 +329,11 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
320
329
  }
321
330
 
322
331
  protected async canStream(options: ExecutionOptions): Promise<boolean> {
332
+ // // TwelveLabs Pegasus supports streaming according to the documentation
333
+ // if (options.model.includes("twelvelabs.pegasus")) {
334
+ // return true;
335
+ // }
336
+
323
337
  let canStream = supportStreamingCache.get(options.model);
324
338
  if (canStream == null) {
325
339
  let type = BedrockModelType.Unknown;
@@ -336,8 +350,15 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
336
350
  return canStream;
337
351
  }
338
352
 
339
- async requestTextCompletion(prompt: ConverseRequest, options: ExecutionOptions): Promise<Completion> {
340
- let conversation = updateConversation(options.conversation as ConverseRequest, prompt);
353
+ async requestTextCompletion(prompt: BedrockPrompt, options: ExecutionOptions): Promise<Completion> {
354
+ // Handle Twelvelabs Pegasus models
355
+ if (options.model.includes("twelvelabs.pegasus")) {
356
+ return this.requestTwelvelabsPegasusCompletion(prompt as TwelvelabsPegasusRequest, options);
357
+ }
358
+
359
+ // Handle other Bedrock models that use Converse API
360
+ const conversePrompt = prompt as ConverseRequest;
361
+ let conversation = updateConversation(options.conversation as ConverseRequest, conversePrompt);
341
362
 
342
363
  const payload = this.preparePayload(conversation, options);
343
364
  const executor = this.getExecutor();
@@ -348,7 +369,7 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
348
369
 
349
370
  conversation = updateConversation(conversation, {
350
371
  messages: [res.output?.message ?? { content: [{ text: "" }], role: "assistant" }],
351
- modelId: prompt.modelId,
372
+ modelId: conversePrompt.modelId,
352
373
  });
353
374
 
354
375
  let tool_use: ToolUse[] | undefined = undefined;
@@ -369,7 +390,7 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
369
390
  }
370
391
 
371
392
  const completion = {
372
- ...this.getExtractedExecution(res, prompt, options),
393
+ ...this.getExtractedExecution(res, conversePrompt, options),
373
394
  original_response: options.include_original_response ? res : undefined,
374
395
  conversation: conversation,
375
396
  tool_use: tool_use,
@@ -378,8 +399,104 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
378
399
  return completion;
379
400
  }
380
401
 
381
- async requestTextCompletionStream(prompt: ConverseRequest, options: ExecutionOptions): Promise<AsyncIterable<CompletionChunkObject>> {
382
- const payload = this.preparePayload(prompt, options);
402
+ private async requestTwelvelabsPegasusCompletion(prompt: TwelvelabsPegasusRequest, options: ExecutionOptions): Promise<Completion> {
403
+ const executor = this.getExecutor();
404
+
405
+ const res = await executor.invokeModel({
406
+ modelId: options.model,
407
+ contentType: "application/json",
408
+ accept: "application/json",
409
+ body: JSON.stringify(prompt),
410
+ });
411
+
412
+ const decoder = new TextDecoder();
413
+ const body = decoder.decode(res.body);
414
+ const result = JSON.parse(body);
415
+
416
+ // Extract the response according to TwelveLabs Pegasus format
417
+ let finishReason: string | undefined;
418
+ switch (result.finishReason) {
419
+ case "stop":
420
+ finishReason = "stop";
421
+ break;
422
+ case "length":
423
+ finishReason = "length";
424
+ break;
425
+ default:
426
+ finishReason = result.finishReason;
427
+ }
428
+
429
+ return {
430
+ result: result.message ? [{ type: "text" as const, value: result.message }] : [],
431
+ finish_reason: finishReason,
432
+ original_response: options.include_original_response ? result : undefined,
433
+ };
434
+ }
435
+
436
+ private async requestTwelvelabsPegasusCompletionStream(prompt: TwelvelabsPegasusRequest, options: ExecutionOptions): Promise<AsyncIterable<CompletionChunkObject>> {
437
+ const executor = this.getExecutor();
438
+
439
+ const res = await executor.invokeModelWithResponseStream({
440
+ modelId: options.model,
441
+ contentType: "application/json",
442
+ accept: "application/json",
443
+ body: JSON.stringify(prompt),
444
+ });
445
+
446
+ if (!res.body) {
447
+ throw new Error("[Bedrock] Stream not found in response");
448
+ }
449
+
450
+ return transformAsyncIterator(res.body, (chunk: any) => {
451
+ if (chunk.chunk?.bytes) {
452
+ const decoder = new TextDecoder();
453
+ const body = decoder.decode(chunk.chunk.bytes);
454
+
455
+ try {
456
+ const result = JSON.parse(body);
457
+
458
+ // Extract streaming response according to TwelveLabs Pegasus format
459
+ let finishReason: string | undefined;
460
+ if (result.finishReason) {
461
+ switch (result.finishReason) {
462
+ case "stop":
463
+ finishReason = "stop";
464
+ break;
465
+ case "length":
466
+ finishReason = "length";
467
+ break;
468
+ default:
469
+ finishReason = result.finishReason;
470
+ }
471
+ }
472
+
473
+ return {
474
+ result: result.delta || result.message ? [{ type: "text" as const, value: result.delta || result.message || "" }] : [],
475
+ finish_reason: finishReason,
476
+ } satisfies CompletionChunkObject;
477
+ } catch (error) {
478
+ // If JSON parsing fails, return empty chunk
479
+ return {
480
+ result: [],
481
+ } satisfies CompletionChunkObject;
482
+ }
483
+ }
484
+
485
+ return {
486
+ result: [],
487
+ } satisfies CompletionChunkObject;
488
+ });
489
+ }
490
+
491
+ async requestTextCompletionStream(prompt: BedrockPrompt, options: ExecutionOptions): Promise<AsyncIterable<CompletionChunkObject>> {
492
+ // Handle Twelvelabs Pegasus models
493
+ if (options.model.includes("twelvelabs.pegasus")) {
494
+ return this.requestTwelvelabsPegasusCompletionStream(prompt as TwelvelabsPegasusRequest, options);
495
+ }
496
+
497
+ // Handle other Bedrock models that use Converse API
498
+ const conversePrompt = prompt as ConverseRequest;
499
+ const payload = this.preparePayload(conversePrompt, options);
383
500
  const executor = this.getExecutor();
384
501
  return executor.converseStream({
385
502
  ...payload,
@@ -391,7 +508,7 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
391
508
  }
392
509
 
393
510
  return transformAsyncIterator(stream, (streamSegment: ConverseStreamOutput) => {
394
- return this.getExtractedStream(streamSegment, prompt, options);
511
+ return this.getExtractedStream(streamSegment, conversePrompt, options);
395
512
  });
396
513
 
397
514
  }).catch((err) => {
@@ -443,7 +560,6 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
443
560
  } else if (options.model.includes("mistral")) {
444
561
  //7B instruct and 8x7B instruct
445
562
  if (options.model.includes("7b")) {
446
- supportsJSONPrefill = true;
447
563
  additionalField = { top_k: model_options.top_k };
448
564
  //Does not support system messages
449
565
  if (prompt.system && prompt.system?.length != 0) {
@@ -499,12 +615,17 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
499
615
  }
500
616
  } else if (options.model.includes("deepseek")) {
501
617
  //DeepSeek models support no additional options
618
+ } else if (options.model.includes("gpt-oss")) {
619
+ const gptOssOptions = model_options as ModelOptions as BedrockGptOssOptions;
620
+ additionalField = {
621
+ reasoning_effort: gptOssOptions?.reasoning_effort,
622
+ };
502
623
  }
503
624
 
504
625
  //If last message is "```json", add corresponding ``` as a stop sequence.
505
626
  if (prompt.messages && prompt.messages.length > 0) {
506
627
  if (prompt.messages[prompt.messages.length - 1].content?.[0].text === "```json") {
507
- let stopSeq = model_options.stop_sequence;
628
+ const stopSeq = model_options.stop_sequence;
508
629
  if (!stopSeq) {
509
630
  model_options.stop_sequence = ["```"];
510
631
  } else if (!stopSeq.includes("```")) {
@@ -536,8 +657,8 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
536
657
  }
537
658
  };
538
659
 
539
- //Only add tools if they are defined
540
- if (tool_defs) {
660
+ //Only add tools if they are defined and not empty
661
+ if (tool_defs?.length) {
541
662
  request.toolConfig = {
542
663
  tools: tool_defs,
543
664
  }
@@ -547,7 +668,7 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
547
668
  }
548
669
 
549
670
 
550
- async requestImageGeneration(prompt: NovaMessagesPrompt, options: ExecutionOptions): Promise<Completion<ImageGeneration>> {
671
+ async requestImageGeneration(prompt: NovaMessagesPrompt, options: ExecutionOptions): Promise<Completion> {
551
672
  if (options.output_modality !== Modalities.image) {
552
673
  throw new Error(`Image generation requires image output_modality`);
553
674
  }
@@ -579,13 +700,14 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
579
700
 
580
701
  const decoder = new TextDecoder();
581
702
  const body = decoder.decode(res.body);
582
- const result = JSON.parse(body);
703
+ const bedrockResult = JSON.parse(body);
583
704
 
584
705
  return {
585
- error: result.error,
586
- result: {
587
- images: result.images,
588
- }
706
+ error: bedrockResult.error,
707
+ result: bedrockResult.images.map((image: any) => ({
708
+ type: "image" as const,
709
+ value: image
710
+ }))
589
711
  }
590
712
  }
591
713
 
@@ -698,16 +820,21 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
698
820
  foundationModels = foundationModels.filter(foundationFilter);
699
821
  }
700
822
 
701
- const supportedPublishers = ["amazon", "anthropic", "cohere", "ai21", "mistral", "meta", "deepseek", "writer"];
823
+ const supportedPublishers = ["amazon", "anthropic", "cohere", "ai21",
824
+ "mistral", "meta", "deepseek", "writer",
825
+ "openai", "twelvelabs", "qwen"];
702
826
  const unsupportedModelsByPublisher = {
703
827
  amazon: ["titan-image-generator", "nova-reel", "nova-sonic", "rerank"],
704
828
  anthropic: [],
705
- cohere: ["rerank"],
829
+ cohere: ["rerank", "embed"],
706
830
  ai21: [],
707
831
  mistral: [],
708
832
  meta: [],
709
833
  deepseek: [],
710
834
  writer: [],
835
+ openai: [],
836
+ twelvelabs: ["marengo"],
837
+ qwen: [],
711
838
  };
712
839
 
713
840
  // Helper function to check if model should be filtered out
@@ -833,6 +960,13 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
833
960
  async generateEmbeddings({ text, image, model }: EmbeddingsOptions): Promise<EmbeddingsResult> {
834
961
 
835
962
  this.logger.info("[Bedrock] Generating embeddings with model " + model);
963
+
964
+ // Handle TwelveLabs Marengo models
965
+ if (model?.includes("twelvelabs.marengo")) {
966
+ return this.generateTwelvelabsMarengoEmbeddings({ text, image, model });
967
+ }
968
+
969
+ // Handle other Bedrock embedding models
836
970
  const defaultModel = image ? "amazon.titan-embed-image-v1" : "amazon.titan-embed-text-v2:0";
837
971
  const modelID = model ?? defaultModel;
838
972
 
@@ -865,6 +999,51 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
865
999
  token_count: result.inputTextTokenCount
866
1000
  };
867
1001
  }
1002
+
1003
+ private async generateTwelvelabsMarengoEmbeddings({ text, image, model }: EmbeddingsOptions): Promise<EmbeddingsResult> {
1004
+ const executor = this.getExecutor();
1005
+
1006
+ // Prepare the request payload for TwelveLabs Marengo
1007
+ let invokeBody: TwelvelabsMarengoRequest = {
1008
+ inputType: "text"
1009
+ };
1010
+
1011
+ if (text) {
1012
+ invokeBody.inputText = text;
1013
+ invokeBody.inputType = "text";
1014
+ }
1015
+
1016
+ if (image) {
1017
+ // For the embeddings interface, image is expected to be base64
1018
+ invokeBody.mediaSource = {
1019
+ base64String: image
1020
+ };
1021
+ invokeBody.inputType = "image";
1022
+ }
1023
+
1024
+ const res = await executor.invokeModel({
1025
+ modelId: model!,
1026
+ contentType: "application/json",
1027
+ accept: "application/json",
1028
+ body: JSON.stringify(invokeBody),
1029
+ });
1030
+
1031
+ const decoder = new TextDecoder();
1032
+ const body = decoder.decode(res.body);
1033
+ const result: TwelvelabsMarengoResponse = JSON.parse(body);
1034
+
1035
+ // TwelveLabs Marengo returns embedding data
1036
+ if (!result.embedding) {
1037
+ throw new Error("Embeddings not found in TwelveLabs Marengo response");
1038
+ }
1039
+
1040
+ return {
1041
+ values: result.embedding,
1042
+ model: model!,
1043
+ // TwelveLabs Marengo doesn't return token count in the same way
1044
+ token_count: undefined
1045
+ };
1046
+ }
868
1047
  }
869
1048
 
870
1049
  function jobInfo(job: GetModelCustomizationJobCommandOutput, jobId: string): TrainingJob {