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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (409) hide show
  1. package/lib/{types/adobe → adobe}/firefly.d.ts +2 -1
  2. package/lib/adobe/firefly.d.ts.map +1 -0
  3. package/lib/adobe/firefly.js +120 -0
  4. package/lib/adobe/firefly.js.map +1 -0
  5. package/lib/{types/anthropic → anthropic}/index.d.ts +4 -2
  6. package/lib/anthropic/index.d.ts.map +1 -0
  7. package/lib/{esm/anthropic → anthropic}/index.js +19 -8
  8. package/lib/anthropic/index.js.map +1 -0
  9. package/lib/{types/azure → azure}/azure_foundry.d.ts +9 -7
  10. package/lib/azure/azure_foundry.d.ts.map +1 -0
  11. package/lib/{esm/azure → azure}/azure_foundry.js +138 -124
  12. package/lib/azure/azure_foundry.js.map +1 -0
  13. package/lib/{types/bedrock → bedrock}/converse.d.ts +2 -2
  14. package/lib/bedrock/converse.d.ts.map +1 -0
  15. package/lib/{esm/bedrock → bedrock}/converse.js +86 -79
  16. package/lib/bedrock/converse.js.map +1 -0
  17. package/lib/bedrock/embeddings.d.ts +4 -0
  18. package/lib/bedrock/embeddings.d.ts.map +1 -0
  19. package/lib/bedrock/embeddings.js +359 -0
  20. package/lib/bedrock/embeddings.js.map +1 -0
  21. package/lib/{types/bedrock → bedrock}/index.d.ts +33 -9
  22. package/lib/bedrock/index.d.ts.map +1 -0
  23. package/lib/{esm/bedrock → bedrock}/index.js +599 -324
  24. package/lib/bedrock/index.js.map +1 -0
  25. package/lib/{types/bedrock → bedrock}/nova-image-payload.d.ts +5 -5
  26. package/lib/bedrock/nova-image-payload.d.ts.map +1 -0
  27. package/lib/{esm/bedrock → bedrock}/nova-image-payload.js +31 -36
  28. package/lib/bedrock/nova-image-payload.js.map +1 -0
  29. package/lib/{types/bedrock → bedrock}/payloads.d.ts +1 -1
  30. package/lib/bedrock/payloads.d.ts.map +1 -0
  31. package/lib/{cjs/bedrock → bedrock}/payloads.js.map +1 -1
  32. package/lib/{types/bedrock → bedrock}/s3.d.ts +3 -2
  33. package/lib/bedrock/s3.d.ts.map +1 -0
  34. package/lib/{esm/bedrock → bedrock}/s3.js +27 -23
  35. package/lib/bedrock/s3.js.map +1 -0
  36. package/lib/{types/bedrock → bedrock}/twelvelabs.d.ts +8 -9
  37. package/lib/bedrock/twelvelabs.d.ts.map +1 -0
  38. package/lib/{esm/bedrock → bedrock}/twelvelabs.js +17 -21
  39. package/lib/bedrock/twelvelabs.js.map +1 -0
  40. package/lib/{types/groq → groq}/index.d.ts +6 -4
  41. package/lib/groq/index.d.ts.map +1 -0
  42. package/lib/{esm/groq → groq}/index.js +72 -39
  43. package/lib/groq/index.js.map +1 -0
  44. package/lib/{types/huggingface_ie.d.ts → huggingface_ie.d.ts} +4 -3
  45. package/lib/huggingface_ie.d.ts.map +1 -0
  46. package/lib/{esm/huggingface_ie.js → huggingface_ie.js} +32 -31
  47. package/lib/huggingface_ie.js.map +1 -0
  48. package/lib/index.d.ts +16 -0
  49. package/lib/index.d.ts.map +1 -0
  50. package/lib/index.js +16 -0
  51. package/lib/index.js.map +1 -0
  52. package/lib/{types/mistral → mistral}/index.d.ts +6 -5
  53. package/lib/mistral/index.d.ts.map +1 -0
  54. package/lib/{esm/mistral → mistral}/index.js +66 -38
  55. package/lib/mistral/index.js.map +1 -0
  56. package/lib/{types/mistral → mistral}/types.d.ts +1 -0
  57. package/lib/mistral/types.d.ts.map +1 -0
  58. package/lib/mistral/types.js.map +1 -0
  59. package/lib/{types/openai → openai}/azure_openai.d.ts +5 -4
  60. package/lib/openai/azure_openai.d.ts.map +1 -0
  61. package/lib/{esm/openai → openai}/azure_openai.js +17 -14
  62. package/lib/openai/azure_openai.js.map +1 -0
  63. package/lib/openai/drivers.d.ts +4 -0
  64. package/lib/openai/drivers.d.ts.map +1 -0
  65. package/lib/openai/drivers.js +9 -0
  66. package/lib/openai/drivers.js.map +1 -0
  67. package/lib/{types/openai → openai}/index.d.ts +16 -5
  68. package/lib/openai/index.d.ts.map +1 -0
  69. package/lib/{esm/openai → openai}/index.js +242 -141
  70. package/lib/openai/index.js.map +1 -0
  71. package/lib/{types/openai → openai}/openai.d.ts +3 -3
  72. package/lib/openai/openai.d.ts.map +1 -0
  73. package/lib/openai/openai.js +15 -0
  74. package/lib/openai/openai.js.map +1 -0
  75. package/lib/{types/openai → openai}/openai_compatible.d.ts +3 -3
  76. package/lib/openai/openai_compatible.d.ts.map +1 -0
  77. package/lib/{esm/openai → openai}/openai_compatible.js +14 -11
  78. package/lib/openai/openai_compatible.js.map +1 -0
  79. package/lib/{types/openai → openai}/openai_format.d.ts +3 -2
  80. package/lib/openai/openai_format.d.ts.map +1 -0
  81. package/lib/{esm/openai → openai}/openai_format.js +66 -24
  82. package/lib/openai/openai_format.js.map +1 -0
  83. package/lib/{types/replicate.d.ts → replicate.d.ts} +3 -2
  84. package/lib/replicate.d.ts.map +1 -0
  85. package/lib/{esm/replicate.js → replicate.js} +59 -49
  86. package/lib/replicate.js.map +1 -0
  87. package/lib/{types/shared → shared}/claude-messages.d.ts +25 -1
  88. package/lib/shared/claude-messages.d.ts.map +1 -0
  89. package/lib/{esm/shared → shared}/claude-messages.js +212 -59
  90. package/lib/shared/claude-messages.js.map +1 -0
  91. package/lib/{types/shared → shared}/claude-thinking.d.ts +1 -1
  92. package/lib/shared/claude-thinking.d.ts.map +1 -0
  93. package/lib/{esm/shared → shared}/claude-thinking.js +5 -7
  94. package/lib/shared/claude-thinking.js.map +1 -0
  95. package/lib/shared/debug-prompt.d.ts +5 -0
  96. package/lib/shared/debug-prompt.d.ts.map +1 -0
  97. package/lib/shared/debug-prompt.js +25 -0
  98. package/lib/shared/debug-prompt.js.map +1 -0
  99. package/lib/{types/test-driver → test-driver}/TestErrorCompletionStream.d.ts +1 -1
  100. package/lib/test-driver/TestErrorCompletionStream.d.ts.map +1 -0
  101. package/lib/test-driver/TestErrorCompletionStream.js +16 -0
  102. package/lib/test-driver/TestErrorCompletionStream.js.map +1 -0
  103. package/lib/{types/test-driver → test-driver}/TestValidationErrorCompletionStream.d.ts +1 -1
  104. package/lib/test-driver/TestValidationErrorCompletionStream.d.ts.map +1 -0
  105. package/lib/{esm/test-driver → test-driver}/TestValidationErrorCompletionStream.js +4 -4
  106. package/lib/test-driver/TestValidationErrorCompletionStream.js.map +1 -0
  107. package/lib/{types/test-driver → test-driver}/index.d.ts +3 -3
  108. package/lib/test-driver/index.d.ts.map +1 -0
  109. package/lib/{esm/test-driver → test-driver}/index.js +20 -20
  110. package/lib/test-driver/index.js.map +1 -0
  111. package/lib/{types/test-driver → test-driver}/utils.d.ts +1 -1
  112. package/lib/test-driver/utils.d.ts.map +1 -0
  113. package/lib/{esm/test-driver → test-driver}/utils.js +4 -4
  114. package/lib/test-driver/utils.js.map +1 -0
  115. package/lib/togetherai/index.d.ts +15 -0
  116. package/lib/togetherai/index.d.ts.map +1 -0
  117. package/lib/togetherai/index.js +54 -0
  118. package/lib/togetherai/index.js.map +1 -0
  119. package/lib/{types/togetherai → togetherai}/interfaces.d.ts +1 -1
  120. package/lib/togetherai/interfaces.d.ts.map +1 -0
  121. package/lib/{cjs/watsonx → togetherai}/interfaces.js.map +1 -1
  122. package/lib/vertexai/debug.d.ts +2 -0
  123. package/lib/vertexai/debug.d.ts.map +1 -0
  124. package/lib/{esm/vertexai → vertexai}/debug.js +1 -1
  125. package/lib/vertexai/debug.js.map +1 -0
  126. package/lib/vertexai/embeddings/embed-legacy-multimodal.d.ts +9 -0
  127. package/lib/vertexai/embeddings/embed-legacy-multimodal.d.ts.map +1 -0
  128. package/lib/vertexai/embeddings/embed-legacy-multimodal.js +141 -0
  129. package/lib/vertexai/embeddings/embed-legacy-multimodal.js.map +1 -0
  130. package/lib/vertexai/embeddings/embed.d.ts +13 -0
  131. package/lib/vertexai/embeddings/embed.d.ts.map +1 -0
  132. package/lib/vertexai/embeddings/embed.js +162 -0
  133. package/lib/vertexai/embeddings/embed.js.map +1 -0
  134. package/lib/vertexai/embeddings/source-utils.d.ts +9 -0
  135. package/lib/vertexai/embeddings/source-utils.d.ts.map +1 -0
  136. package/lib/vertexai/embeddings/source-utils.js +18 -0
  137. package/lib/vertexai/embeddings/source-utils.js.map +1 -0
  138. package/lib/{types/vertexai → vertexai}/index.d.ts +31 -19
  139. package/lib/vertexai/index.d.ts.map +1 -0
  140. package/lib/{esm/vertexai → vertexai}/index.js +221 -159
  141. package/lib/vertexai/index.js.map +1 -0
  142. package/lib/{types/vertexai → vertexai}/models/claude.d.ts +4 -4
  143. package/lib/vertexai/models/claude.d.ts.map +1 -0
  144. package/lib/{esm/vertexai → vertexai}/models/claude.js +17 -20
  145. package/lib/vertexai/models/claude.js.map +1 -0
  146. package/lib/{types/vertexai → vertexai}/models/gemini.d.ts +28 -4
  147. package/lib/vertexai/models/gemini.d.ts.map +1 -0
  148. package/lib/{esm/vertexai → vertexai}/models/gemini.js +238 -116
  149. package/lib/vertexai/models/gemini.js.map +1 -0
  150. package/lib/{types/vertexai → vertexai}/models/imagen.d.ts +12 -11
  151. package/lib/vertexai/models/imagen.d.ts.map +1 -0
  152. package/lib/{esm/vertexai → vertexai}/models/imagen.js +74 -47
  153. package/lib/vertexai/models/imagen.js.map +1 -0
  154. package/lib/{types/vertexai → vertexai}/models/llama.d.ts +4 -4
  155. package/lib/vertexai/models/llama.d.ts.map +1 -0
  156. package/lib/{esm/vertexai → vertexai}/models/llama.js +37 -33
  157. package/lib/vertexai/models/llama.js.map +1 -0
  158. package/lib/vertexai/models.d.ts +21 -0
  159. package/lib/vertexai/models.d.ts.map +1 -0
  160. package/lib/{esm/vertexai → vertexai}/models.js +12 -9
  161. package/lib/vertexai/models.js.map +1 -0
  162. package/lib/{types/watsonx → watsonx}/index.d.ts +4 -3
  163. package/lib/watsonx/index.d.ts.map +1 -0
  164. package/lib/{esm/watsonx → watsonx}/index.js +69 -41
  165. package/lib/watsonx/index.js.map +1 -0
  166. package/lib/watsonx/interfaces.d.ts.map +1 -0
  167. package/lib/{esm/watsonx → watsonx}/interfaces.js.map +1 -1
  168. package/lib/{types/xai → xai}/index.d.ts +4 -4
  169. package/lib/xai/index.d.ts.map +1 -0
  170. package/lib/{esm/xai → xai}/index.js +22 -18
  171. package/lib/xai/index.js.map +1 -0
  172. package/package.json +87 -36
  173. package/src/adobe/firefly.ts +60 -43
  174. package/src/anthropic/index.ts +37 -20
  175. package/src/azure/azure_foundry.ts +210 -165
  176. package/src/bedrock/converse.ts +124 -101
  177. package/src/bedrock/embeddings.test.ts +508 -0
  178. package/src/bedrock/embeddings.ts +517 -0
  179. package/src/bedrock/error-handling.test.ts +62 -14
  180. package/src/bedrock/index.ts +832 -466
  181. package/src/bedrock/nova-image-payload.ts +98 -91
  182. package/src/bedrock/payloads.ts +9 -9
  183. package/src/bedrock/s3.test.ts +39 -0
  184. package/src/bedrock/s3.ts +57 -38
  185. package/src/bedrock/streaming-tool-use.test.ts +86 -69
  186. package/src/bedrock/twelvelabs.ts +35 -32
  187. package/src/groq/index.ts +143 -60
  188. package/src/http-timeout-wiring.test.ts +263 -0
  189. package/src/huggingface_ie.ts +45 -61
  190. package/src/index.ts +15 -16
  191. package/src/mistral/index.ts +97 -48
  192. package/src/mistral/types.ts +13 -12
  193. package/src/openai/azure_openai.ts +35 -27
  194. package/src/openai/drivers.ts +9 -0
  195. package/src/openai/error-handling.test.ts +308 -113
  196. package/src/openai/index.ts +378 -248
  197. package/src/openai/openai.ts +6 -13
  198. package/src/openai/openai_compatible.ts +35 -25
  199. package/src/openai/openai_format.ts +90 -40
  200. package/src/replicate.ts +108 -86
  201. package/src/shared/claude-messages.test.ts +37 -0
  202. package/src/shared/claude-messages.ts +303 -97
  203. package/src/shared/claude-thinking.ts +6 -12
  204. package/src/shared/debug-prompt.ts +28 -0
  205. package/src/test-driver/TestErrorCompletionStream.ts +9 -10
  206. package/src/test-driver/TestValidationErrorCompletionStream.ts +9 -10
  207. package/src/test-driver/index.ts +43 -27
  208. package/src/test-driver/utils.ts +8 -8
  209. package/src/togetherai/index.test.ts +32 -0
  210. package/src/togetherai/index.ts +64 -128
  211. package/src/togetherai/interfaces.ts +5 -5
  212. package/src/vertexai/debug.ts +3 -3
  213. package/src/vertexai/embeddings/embed-legacy-multimodal.ts +211 -0
  214. package/src/vertexai/embeddings/embed.ts +206 -0
  215. package/src/vertexai/embeddings/embeddings.test.ts +497 -0
  216. package/src/vertexai/embeddings/source-utils.test.ts +54 -0
  217. package/src/vertexai/embeddings/source-utils.ts +29 -0
  218. package/src/vertexai/index.ts +331 -244
  219. package/src/vertexai/models/claude-error-handling.test.ts +83 -36
  220. package/src/vertexai/models/claude-streaming-spacing.test.ts +82 -75
  221. package/src/vertexai/models/claude.ts +55 -40
  222. package/src/vertexai/models/gemini-conversation-mutation.test.ts +65 -23
  223. package/src/vertexai/models/gemini-error-handling.test.ts +126 -10
  224. package/src/vertexai/models/gemini-orphaned-tool-result.test.ts +118 -0
  225. package/src/vertexai/models/gemini.ts +349 -172
  226. package/src/vertexai/models/imagen.ts +164 -100
  227. package/src/vertexai/models/llama.ts +70 -48
  228. package/src/vertexai/models.ts +36 -16
  229. package/src/watsonx/index.ts +101 -65
  230. package/src/watsonx/interfaces.ts +10 -15
  231. package/src/xai/index.ts +30 -30
  232. package/lib/cjs/adobe/firefly.js +0 -120
  233. package/lib/cjs/adobe/firefly.js.map +0 -1
  234. package/lib/cjs/anthropic/index.js +0 -64
  235. package/lib/cjs/anthropic/index.js.map +0 -1
  236. package/lib/cjs/azure/azure_foundry.js +0 -432
  237. package/lib/cjs/azure/azure_foundry.js.map +0 -1
  238. package/lib/cjs/bedrock/converse.js +0 -359
  239. package/lib/cjs/bedrock/converse.js.map +0 -1
  240. package/lib/cjs/bedrock/index.js +0 -1508
  241. package/lib/cjs/bedrock/index.js.map +0 -1
  242. package/lib/cjs/bedrock/nova-image-payload.js +0 -207
  243. package/lib/cjs/bedrock/nova-image-payload.js.map +0 -1
  244. package/lib/cjs/bedrock/payloads.js +0 -3
  245. package/lib/cjs/bedrock/s3.js +0 -107
  246. package/lib/cjs/bedrock/s3.js.map +0 -1
  247. package/lib/cjs/bedrock/twelvelabs.js +0 -87
  248. package/lib/cjs/bedrock/twelvelabs.js.map +0 -1
  249. package/lib/cjs/groq/index.js +0 -328
  250. package/lib/cjs/groq/index.js.map +0 -1
  251. package/lib/cjs/huggingface_ie.js +0 -201
  252. package/lib/cjs/huggingface_ie.js.map +0 -1
  253. package/lib/cjs/index.js +0 -32
  254. package/lib/cjs/index.js.map +0 -1
  255. package/lib/cjs/mistral/index.js +0 -176
  256. package/lib/cjs/mistral/index.js.map +0 -1
  257. package/lib/cjs/mistral/types.js +0 -83
  258. package/lib/cjs/mistral/types.js.map +0 -1
  259. package/lib/cjs/openai/azure_openai.js +0 -72
  260. package/lib/cjs/openai/azure_openai.js.map +0 -1
  261. package/lib/cjs/openai/index.js +0 -1135
  262. package/lib/cjs/openai/index.js.map +0 -1
  263. package/lib/cjs/openai/openai.js +0 -21
  264. package/lib/cjs/openai/openai.js.map +0 -1
  265. package/lib/cjs/openai/openai_compatible.js +0 -63
  266. package/lib/cjs/openai/openai_compatible.js.map +0 -1
  267. package/lib/cjs/openai/openai_format.js +0 -131
  268. package/lib/cjs/openai/openai_format.js.map +0 -1
  269. package/lib/cjs/package.json +0 -3
  270. package/lib/cjs/replicate.js +0 -275
  271. package/lib/cjs/replicate.js.map +0 -1
  272. package/lib/cjs/shared/claude-messages.js +0 -737
  273. package/lib/cjs/shared/claude-messages.js.map +0 -1
  274. package/lib/cjs/shared/claude-thinking.js +0 -60
  275. package/lib/cjs/shared/claude-thinking.js.map +0 -1
  276. package/lib/cjs/test-driver/TestErrorCompletionStream.js +0 -20
  277. package/lib/cjs/test-driver/TestErrorCompletionStream.js.map +0 -1
  278. package/lib/cjs/test-driver/TestValidationErrorCompletionStream.js +0 -24
  279. package/lib/cjs/test-driver/TestValidationErrorCompletionStream.js.map +0 -1
  280. package/lib/cjs/test-driver/index.js +0 -109
  281. package/lib/cjs/test-driver/index.js.map +0 -1
  282. package/lib/cjs/test-driver/utils.js +0 -30
  283. package/lib/cjs/test-driver/utils.js.map +0 -1
  284. package/lib/cjs/togetherai/index.js +0 -126
  285. package/lib/cjs/togetherai/index.js.map +0 -1
  286. package/lib/cjs/togetherai/interfaces.js +0 -3
  287. package/lib/cjs/togetherai/interfaces.js.map +0 -1
  288. package/lib/cjs/vertexai/debug.js +0 -12
  289. package/lib/cjs/vertexai/debug.js.map +0 -1
  290. package/lib/cjs/vertexai/embeddings/embeddings-image.js +0 -27
  291. package/lib/cjs/vertexai/embeddings/embeddings-image.js.map +0 -1
  292. package/lib/cjs/vertexai/embeddings/embeddings-text.js +0 -23
  293. package/lib/cjs/vertexai/embeddings/embeddings-text.js.map +0 -1
  294. package/lib/cjs/vertexai/index.js +0 -644
  295. package/lib/cjs/vertexai/index.js.map +0 -1
  296. package/lib/cjs/vertexai/models/claude.js +0 -72
  297. package/lib/cjs/vertexai/models/claude.js.map +0 -1
  298. package/lib/cjs/vertexai/models/gemini.js +0 -864
  299. package/lib/cjs/vertexai/models/gemini.js.map +0 -1
  300. package/lib/cjs/vertexai/models/imagen.js +0 -303
  301. package/lib/cjs/vertexai/models/imagen.js.map +0 -1
  302. package/lib/cjs/vertexai/models/llama.js +0 -183
  303. package/lib/cjs/vertexai/models/llama.js.map +0 -1
  304. package/lib/cjs/vertexai/models.js +0 -35
  305. package/lib/cjs/vertexai/models.js.map +0 -1
  306. package/lib/cjs/watsonx/index.js +0 -161
  307. package/lib/cjs/watsonx/index.js.map +0 -1
  308. package/lib/cjs/watsonx/interfaces.js +0 -3
  309. package/lib/cjs/xai/index.js +0 -65
  310. package/lib/cjs/xai/index.js.map +0 -1
  311. package/lib/esm/adobe/firefly.js +0 -116
  312. package/lib/esm/adobe/firefly.js.map +0 -1
  313. package/lib/esm/anthropic/index.js.map +0 -1
  314. package/lib/esm/azure/azure_foundry.js.map +0 -1
  315. package/lib/esm/bedrock/converse.js.map +0 -1
  316. package/lib/esm/bedrock/index.js.map +0 -1
  317. package/lib/esm/bedrock/nova-image-payload.js.map +0 -1
  318. package/lib/esm/bedrock/payloads.js.map +0 -1
  319. package/lib/esm/bedrock/s3.js.map +0 -1
  320. package/lib/esm/bedrock/twelvelabs.js.map +0 -1
  321. package/lib/esm/groq/index.js.map +0 -1
  322. package/lib/esm/huggingface_ie.js.map +0 -1
  323. package/lib/esm/index.js +0 -16
  324. package/lib/esm/index.js.map +0 -1
  325. package/lib/esm/mistral/index.js.map +0 -1
  326. package/lib/esm/mistral/types.js.map +0 -1
  327. package/lib/esm/openai/azure_openai.js.map +0 -1
  328. package/lib/esm/openai/index.js.map +0 -1
  329. package/lib/esm/openai/openai.js +0 -14
  330. package/lib/esm/openai/openai.js.map +0 -1
  331. package/lib/esm/openai/openai_compatible.js.map +0 -1
  332. package/lib/esm/openai/openai_format.js.map +0 -1
  333. package/lib/esm/replicate.js.map +0 -1
  334. package/lib/esm/shared/claude-messages.js.map +0 -1
  335. package/lib/esm/shared/claude-thinking.js.map +0 -1
  336. package/lib/esm/test-driver/TestErrorCompletionStream.js +0 -16
  337. package/lib/esm/test-driver/TestErrorCompletionStream.js.map +0 -1
  338. package/lib/esm/test-driver/TestValidationErrorCompletionStream.js.map +0 -1
  339. package/lib/esm/test-driver/index.js.map +0 -1
  340. package/lib/esm/test-driver/utils.js.map +0 -1
  341. package/lib/esm/togetherai/index.js +0 -122
  342. package/lib/esm/togetherai/index.js.map +0 -1
  343. package/lib/esm/togetherai/interfaces.js.map +0 -1
  344. package/lib/esm/vertexai/debug.js.map +0 -1
  345. package/lib/esm/vertexai/embeddings/embeddings-image.js +0 -24
  346. package/lib/esm/vertexai/embeddings/embeddings-image.js.map +0 -1
  347. package/lib/esm/vertexai/embeddings/embeddings-text.js +0 -20
  348. package/lib/esm/vertexai/embeddings/embeddings-text.js.map +0 -1
  349. package/lib/esm/vertexai/index.js.map +0 -1
  350. package/lib/esm/vertexai/models/claude.js.map +0 -1
  351. package/lib/esm/vertexai/models/gemini.js.map +0 -1
  352. package/lib/esm/vertexai/models/imagen.js.map +0 -1
  353. package/lib/esm/vertexai/models/llama.js.map +0 -1
  354. package/lib/esm/vertexai/models.js.map +0 -1
  355. package/lib/esm/watsonx/index.js.map +0 -1
  356. package/lib/esm/xai/index.js.map +0 -1
  357. package/lib/types/adobe/firefly.d.ts.map +0 -1
  358. package/lib/types/anthropic/index.d.ts.map +0 -1
  359. package/lib/types/azure/azure_foundry.d.ts.map +0 -1
  360. package/lib/types/bedrock/converse.d.ts.map +0 -1
  361. package/lib/types/bedrock/index.d.ts.map +0 -1
  362. package/lib/types/bedrock/nova-image-payload.d.ts.map +0 -1
  363. package/lib/types/bedrock/payloads.d.ts.map +0 -1
  364. package/lib/types/bedrock/s3.d.ts.map +0 -1
  365. package/lib/types/bedrock/twelvelabs.d.ts.map +0 -1
  366. package/lib/types/groq/index.d.ts.map +0 -1
  367. package/lib/types/huggingface_ie.d.ts.map +0 -1
  368. package/lib/types/index.d.ts +0 -16
  369. package/lib/types/index.d.ts.map +0 -1
  370. package/lib/types/mistral/index.d.ts.map +0 -1
  371. package/lib/types/mistral/types.d.ts.map +0 -1
  372. package/lib/types/openai/azure_openai.d.ts.map +0 -1
  373. package/lib/types/openai/index.d.ts.map +0 -1
  374. package/lib/types/openai/openai.d.ts.map +0 -1
  375. package/lib/types/openai/openai_compatible.d.ts.map +0 -1
  376. package/lib/types/openai/openai_format.d.ts.map +0 -1
  377. package/lib/types/replicate.d.ts.map +0 -1
  378. package/lib/types/shared/claude-messages.d.ts.map +0 -1
  379. package/lib/types/shared/claude-thinking.d.ts.map +0 -1
  380. package/lib/types/test-driver/TestErrorCompletionStream.d.ts.map +0 -1
  381. package/lib/types/test-driver/TestValidationErrorCompletionStream.d.ts.map +0 -1
  382. package/lib/types/test-driver/index.d.ts.map +0 -1
  383. package/lib/types/test-driver/utils.d.ts.map +0 -1
  384. package/lib/types/togetherai/index.d.ts +0 -23
  385. package/lib/types/togetherai/index.d.ts.map +0 -1
  386. package/lib/types/togetherai/interfaces.d.ts.map +0 -1
  387. package/lib/types/vertexai/debug.d.ts +0 -2
  388. package/lib/types/vertexai/debug.d.ts.map +0 -1
  389. package/lib/types/vertexai/embeddings/embeddings-image.d.ts +0 -11
  390. package/lib/types/vertexai/embeddings/embeddings-image.d.ts.map +0 -1
  391. package/lib/types/vertexai/embeddings/embeddings-text.d.ts +0 -10
  392. package/lib/types/vertexai/embeddings/embeddings-text.d.ts.map +0 -1
  393. package/lib/types/vertexai/index.d.ts.map +0 -1
  394. package/lib/types/vertexai/models/claude.d.ts.map +0 -1
  395. package/lib/types/vertexai/models/gemini.d.ts.map +0 -1
  396. package/lib/types/vertexai/models/imagen.d.ts.map +0 -1
  397. package/lib/types/vertexai/models/llama.d.ts.map +0 -1
  398. package/lib/types/vertexai/models.d.ts +0 -20
  399. package/lib/types/vertexai/models.d.ts.map +0 -1
  400. package/lib/types/watsonx/index.d.ts.map +0 -1
  401. package/lib/types/watsonx/interfaces.d.ts.map +0 -1
  402. package/lib/types/xai/index.d.ts.map +0 -1
  403. package/src/vertexai/embeddings/embeddings-image.ts +0 -52
  404. package/src/vertexai/embeddings/embeddings-text.ts +0 -54
  405. /package/lib/{esm/bedrock → bedrock}/payloads.js +0 -0
  406. /package/lib/{esm/mistral → mistral}/types.js +0 -0
  407. /package/lib/{esm/togetherai → togetherai}/interfaces.js +0 -0
  408. /package/lib/{types/watsonx → watsonx}/interfaces.d.ts +0 -0
  409. /package/lib/{esm/watsonx → watsonx}/interfaces.js +0 -0
@@ -1,80 +1,96 @@
1
- import {
2
- AIModel, Completion, ExecutionOptions,
3
- ModelType, PromptRole, PromptSegment, readStreamAsBase64, ImagenOptions
4
- } from "@llumiverse/core";
5
- import { VertexAIDriver } from "../index.js";
6
-
7
1
  // Import the helper module for converting arbitrary protobuf.Value objects
8
- import { protos, helpers } from '@google-cloud/aiplatform';
2
+ import { helpers, type protos } from '@google-cloud/aiplatform';
3
+ import {
4
+ type AIModel,
5
+ type Completion,
6
+ type ExecutionOptions,
7
+ type ImagenOptions,
8
+ ModelType,
9
+ PromptRole,
10
+ type PromptSegment,
11
+ readStreamAsBase64,
12
+ } from '@llumiverse/core';
13
+ import { truncateBinaryForDebug } from '../../shared/debug-prompt.js';
14
+ import type { VertexAIDriver } from '../index.js';
9
15
 
10
16
  interface ImagenBaseReference {
11
- referenceType: "REFERENCE_TYPE_RAW" | "REFERENCE_TYPE_MASK" | "REFERENCE_TYPE_SUBJECT" |
12
- "REFERENCE_TYPE_CONTROL" | "REFERENCE_TYPE_STYLE";
17
+ referenceType:
18
+ | 'REFERENCE_TYPE_RAW'
19
+ | 'REFERENCE_TYPE_MASK'
20
+ | 'REFERENCE_TYPE_SUBJECT'
21
+ | 'REFERENCE_TYPE_CONTROL'
22
+ | 'REFERENCE_TYPE_STYLE';
13
23
  referenceId: number;
14
24
  referenceImage: {
15
25
  bytesBase64Encoded: string; //10MB max
16
- }
26
+ };
17
27
  }
18
28
 
19
29
  export enum ImagenTaskType {
20
- TEXT_IMAGE = "TEXT_IMAGE",
21
- EDIT_MODE_INPAINT_REMOVAL = "EDIT_MODE_INPAINT_REMOVAL",
22
- EDIT_MODE_INPAINT_INSERTION = "EDIT_MODE_INPAINT_INSERTION",
23
- EDIT_MODE_BGSWAP = "EDIT_MODE_BGSWAP",
24
- EDIT_MODE_OUTPAINT = "EDIT_MODE_OUTPAINT",
25
- CUSTOMIZATION_SUBJECT = "CUSTOMIZATION_SUBJECT",
26
- CUSTOMIZATION_STYLE = "CUSTOMIZATION_STYLE",
27
- CUSTOMIZATION_CONTROLLED = "CUSTOMIZATION_CONTROLLED",
28
- CUSTOMIZATION_INSTRUCT = "CUSTOMIZATION_INSTRUCT",
30
+ TEXT_IMAGE = 'TEXT_IMAGE',
31
+ EDIT_MODE_INPAINT_REMOVAL = 'EDIT_MODE_INPAINT_REMOVAL',
32
+ EDIT_MODE_INPAINT_INSERTION = 'EDIT_MODE_INPAINT_INSERTION',
33
+ EDIT_MODE_BGSWAP = 'EDIT_MODE_BGSWAP',
34
+ EDIT_MODE_OUTPAINT = 'EDIT_MODE_OUTPAINT',
35
+ CUSTOMIZATION_SUBJECT = 'CUSTOMIZATION_SUBJECT',
36
+ CUSTOMIZATION_STYLE = 'CUSTOMIZATION_STYLE',
37
+ CUSTOMIZATION_CONTROLLED = 'CUSTOMIZATION_CONTROLLED',
38
+ CUSTOMIZATION_INSTRUCT = 'CUSTOMIZATION_INSTRUCT',
29
39
  }
30
40
 
31
41
  export enum ImagenMaskMode {
32
- MASK_MODE_USER_PROVIDED = "MASK_MODE_USER_PROVIDED",
33
- MASK_MODE_BACKGROUND = "MASK_MODE_BACKGROUND",
34
- MASK_MODE_FOREGROUND = "MASK_MODE_FOREGROUND",
35
- MASK_MODE_SEMANTIC = "MASK_MODE_SEMANTIC",
42
+ MASK_MODE_USER_PROVIDED = 'MASK_MODE_USER_PROVIDED',
43
+ MASK_MODE_BACKGROUND = 'MASK_MODE_BACKGROUND',
44
+ MASK_MODE_FOREGROUND = 'MASK_MODE_FOREGROUND',
45
+ MASK_MODE_SEMANTIC = 'MASK_MODE_SEMANTIC',
36
46
  }
37
47
 
38
48
  interface ImagenReferenceRaw extends ImagenBaseReference {
39
- referenceType: "REFERENCE_TYPE_RAW";
49
+ referenceType: 'REFERENCE_TYPE_RAW';
40
50
  }
41
51
 
42
- interface ImagenReferenceMask extends Omit<ImagenBaseReference, "referenceImage"> {
43
- referenceType: "REFERENCE_TYPE_MASK";
52
+ interface ImagenReferenceMask extends Omit<ImagenBaseReference, 'referenceImage'> {
53
+ referenceType: 'REFERENCE_TYPE_MASK';
44
54
  maskImageConfig: {
45
55
  maskMode?: ImagenMaskMode;
46
56
  maskClasses?: number[]; //Used for MASK_MODE_SEMANTIC, based on https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/imagen-api-customization#segment-ids
47
57
  dilation?: number; //Recommendation depends on mode: Inpaint: 0.01, BGSwap: 0.0, Outpaint: 0.01-0.03
48
- }
49
- referenceImage?: { //Only used for MASK_MODE_USER_PROVIDED
58
+ };
59
+ referenceImage?: {
60
+ //Only used for MASK_MODE_USER_PROVIDED
50
61
  bytesBase64Encoded: string; //10MB max
51
- }
62
+ };
52
63
  }
53
64
 
54
65
  interface ImagenReferenceSubject extends ImagenBaseReference {
55
- referenceType: "REFERENCE_TYPE_SUBJECT";
66
+ referenceType: 'REFERENCE_TYPE_SUBJECT';
56
67
  subjectImageConfig: {
57
68
  subjectDescription: string;
58
- subjectType: "SUBJECT_TYPE_PERSON" | "SUBJECT_TYPE_ANIMAL" | "SUBJECT_TYPE_PRODUCT" | "SUBJECT_TYPE_DEFAULT";
59
- }
69
+ subjectType: 'SUBJECT_TYPE_PERSON' | 'SUBJECT_TYPE_ANIMAL' | 'SUBJECT_TYPE_PRODUCT' | 'SUBJECT_TYPE_DEFAULT';
70
+ };
60
71
  }
61
72
 
62
73
  interface ImagenReferenceControl extends ImagenBaseReference {
63
- referenceType: "REFERENCE_TYPE_CONTROL";
74
+ referenceType: 'REFERENCE_TYPE_CONTROL';
64
75
  controlImageConfig: {
65
- controlType: "CONTROL_TYPE_FACE_MESH" | "CONTROL_TYPE_CANNY" | "CONTROL_TYPE_SCRIBBLE";
76
+ controlType: 'CONTROL_TYPE_FACE_MESH' | 'CONTROL_TYPE_CANNY' | 'CONTROL_TYPE_SCRIBBLE';
66
77
  enableControlImageComputation?: boolean; //If true, the model will compute the control image
67
- }
78
+ };
68
79
  }
69
80
 
70
81
  interface ImagenReferenceStyle extends ImagenBaseReference {
71
- referenceType: "REFERENCE_TYPE_STYLE";
82
+ referenceType: 'REFERENCE_TYPE_STYLE';
72
83
  styleImageConfig: {
73
84
  styleDescription?: string;
74
- }
85
+ };
75
86
  }
76
87
 
77
- type ImagenMessage = ImagenReferenceRaw | ImagenReferenceMask | ImagenReferenceSubject | ImagenReferenceControl | ImagenReferenceStyle;
88
+ type ImagenMessage =
89
+ | ImagenReferenceRaw
90
+ | ImagenReferenceMask
91
+ | ImagenReferenceSubject
92
+ | ImagenReferenceControl
93
+ | ImagenReferenceStyle;
78
94
 
79
95
  export interface ImagenPrompt {
80
96
  prompt: string;
@@ -83,13 +99,31 @@ export interface ImagenPrompt {
83
99
  negativePrompt?: string; //Used for negative prompts
84
100
  }
85
101
 
102
+ export function formatImagenDebugPrompt(prompt: ImagenPrompt): ImagenPrompt {
103
+ return {
104
+ ...prompt,
105
+ referenceImages: prompt.referenceImages?.map((reference) => {
106
+ if (!reference.referenceImage?.bytesBase64Encoded) {
107
+ return reference;
108
+ }
109
+ return {
110
+ ...reference,
111
+ referenceImage: {
112
+ ...reference.referenceImage,
113
+ bytesBase64Encoded: truncateBinaryForDebug(reference.referenceImage.bytesBase64Encoded),
114
+ },
115
+ };
116
+ }),
117
+ };
118
+ }
119
+
86
120
  function getImagenParameters(taskType: string, options: ImagenOptions) {
87
121
  const commonParameters = {
88
122
  sampleCount: options?.number_of_images,
89
123
  seed: options?.seed,
90
124
  safetySetting: options?.safety_setting,
91
125
  personGeneration: options?.person_generation,
92
- negativePrompt: taskType ? undefined : "", //Filled in later from the prompt
126
+ negativePrompt: taskType ? undefined : '', //Filled in later from the prompt
93
127
  //TODO: Add more safety and prompt rejection information
94
128
  //includeSafetyAttributes: true,
95
129
  //includeRaiReason: true,
@@ -98,35 +132,35 @@ function getImagenParameters(taskType: string, options: ImagenOptions) {
98
132
  case ImagenTaskType.EDIT_MODE_INPAINT_REMOVAL:
99
133
  return {
100
134
  ...commonParameters,
101
- editMode: "EDIT_MODE_INPAINT_REMOVAL",
135
+ editMode: 'EDIT_MODE_INPAINT_REMOVAL',
102
136
  editConfig: {
103
137
  baseSteps: options?.edit_steps,
104
138
  },
105
- }
139
+ };
106
140
  case ImagenTaskType.EDIT_MODE_INPAINT_INSERTION:
107
141
  return {
108
142
  ...commonParameters,
109
- editMode: "EDIT_MODE_INPAINT_INSERTION",
143
+ editMode: 'EDIT_MODE_INPAINT_INSERTION',
110
144
  editConfig: {
111
145
  baseSteps: options?.edit_steps,
112
146
  },
113
- }
147
+ };
114
148
  case ImagenTaskType.EDIT_MODE_BGSWAP:
115
149
  return {
116
150
  ...commonParameters,
117
- editMode: "EDIT_MODE_BGSWAP",
151
+ editMode: 'EDIT_MODE_BGSWAP',
118
152
  editConfig: {
119
153
  baseSteps: options?.edit_steps,
120
154
  },
121
- }
155
+ };
122
156
  case ImagenTaskType.EDIT_MODE_OUTPAINT:
123
157
  return {
124
158
  ...commonParameters,
125
- editMode: "EDIT_MODE_OUTPAINT",
159
+ editMode: 'EDIT_MODE_OUTPAINT',
126
160
  editConfig: {
127
161
  baseSteps: options?.edit_steps,
128
162
  },
129
- }
163
+ };
130
164
  case ImagenTaskType.TEXT_IMAGE:
131
165
  return {
132
166
  ...commonParameters,
@@ -141,15 +175,14 @@ function getImagenParameters(taskType: string, options: ImagenOptions) {
141
175
  case ImagenTaskType.CUSTOMIZATION_STYLE:
142
176
  return {
143
177
  ...commonParameters,
144
- }
178
+ };
145
179
  default:
146
- throw new Error("Task type not supported");
180
+ throw new Error('Task type not supported');
147
181
  }
148
182
  }
149
183
 
150
184
  export class ImagenModelDefinition {
151
-
152
- model: AIModel
185
+ model: AIModel;
153
186
 
154
187
  constructor(modelId: string) {
155
188
  this.model = {
@@ -161,16 +194,20 @@ export class ImagenModelDefinition {
161
194
  };
162
195
  }
163
196
 
164
- async createPrompt(_driver: VertexAIDriver, segments: PromptSegment[], options: ExecutionOptions): Promise<ImagenPrompt> {
165
- const splits = options.model.split("/");
197
+ async createPrompt(
198
+ _driver: VertexAIDriver,
199
+ segments: PromptSegment[],
200
+ options: ExecutionOptions,
201
+ ): Promise<ImagenPrompt> {
202
+ const splits = options.model.split('/');
166
203
  const modelName = splits[splits.length - 1];
167
204
  options = { ...options, model: modelName };
168
205
 
169
206
  const prompt: ImagenPrompt = {
170
- prompt: "",
171
- }
207
+ prompt: '',
208
+ };
172
209
 
173
- //Collect text prompts, Imagen does not support roles, so everything gets merged together
210
+ //Collect text prompts, Imagen does not support roles, so everything gets merged together
174
211
  // however we still respect our typical pattern. System First, Safety Last.
175
212
  const system: string[] = [];
176
213
  const user: string[] = [];
@@ -197,92 +234,109 @@ export class ImagenModelDefinition {
197
234
  prompt.referenceImages = [];
198
235
  }
199
236
 
200
- //Always required, but only used by customisation.
237
+ //Always required, but only used by customisation.
201
238
  //Each ref ID refers to a single "reference", i.e. object. To provide multiple images of a single ref,
202
239
  //include multiple images in one prompt.
203
240
  const refId = prompt.referenceImages.length + 1;
204
241
  for (const img of msg.files) {
205
- if (img.mime_type?.includes("image")) {
242
+ if (img.mime_type?.includes('image')) {
206
243
  if (msg.role !== PromptRole.mask) {
207
244
  //Editing based mode requires a reference image
208
- if (imagenOptions?.edit_mode?.includes("EDIT_MODE")) {
245
+ if (imagenOptions?.edit_mode?.includes('EDIT_MODE')) {
209
246
  prompt.referenceImages.push({
210
- referenceType: "REFERENCE_TYPE_RAW",
247
+ referenceType: 'REFERENCE_TYPE_RAW',
211
248
  referenceId: refId,
212
249
  referenceImage: {
213
250
  bytesBase64Encoded: await readStreamAsBase64(await img.getStream()),
214
- }
251
+ },
215
252
  });
216
253
  //If mask is auto-generated, add a mask reference
217
254
  if (mask_mode !== ImagenMaskMode.MASK_MODE_USER_PROVIDED) {
218
255
  prompt.referenceImages.push({
219
- referenceType: "REFERENCE_TYPE_MASK",
256
+ referenceType: 'REFERENCE_TYPE_MASK',
220
257
  referenceId: refId,
221
258
  maskImageConfig: {
222
259
  maskMode: mask_mode,
223
260
  dilation: imagenOptions?.mask_dilation,
224
- }
261
+ },
225
262
  });
226
263
  }
227
- }
228
- else if ((options.model_options as ImagenOptions)?.edit_mode === ImagenTaskType.CUSTOMIZATION_SUBJECT) {
264
+ } else if (
265
+ (options.model_options as ImagenOptions)?.edit_mode ===
266
+ ImagenTaskType.CUSTOMIZATION_SUBJECT
267
+ ) {
229
268
  //First image is always the control image
230
- if (refId == 1) {
269
+ if (refId === 1) {
231
270
  //Customization subject mode requires a control image
232
271
  prompt.referenceImages.push({
233
- referenceType: "REFERENCE_TYPE_CONTROL",
272
+ referenceType: 'REFERENCE_TYPE_CONTROL',
234
273
  referenceId: refId,
235
274
  referenceImage: {
236
275
  bytesBase64Encoded: await readStreamAsBase64(await img.getStream()),
237
276
  },
238
277
  controlImageConfig: {
239
- controlType: imagenOptions?.controlType === "CONTROL_TYPE_FACE_MESH" ? "CONTROL_TYPE_FACE_MESH" : "CONTROL_TYPE_CANNY",
278
+ controlType:
279
+ imagenOptions?.controlType === 'CONTROL_TYPE_FACE_MESH'
280
+ ? 'CONTROL_TYPE_FACE_MESH'
281
+ : 'CONTROL_TYPE_CANNY',
240
282
  enableControlImageComputation: imagenOptions?.controlImageComputation,
241
- }
283
+ },
242
284
  });
243
285
  } else {
244
286
  // Subject images
245
287
  prompt.referenceImages.push({
246
- referenceType: "REFERENCE_TYPE_SUBJECT",
288
+ referenceType: 'REFERENCE_TYPE_SUBJECT',
247
289
  referenceId: refId,
248
290
  referenceImage: {
249
291
  bytesBase64Encoded: await readStreamAsBase64(await img.getStream()),
250
292
  },
251
293
  subjectImageConfig: {
252
294
  subjectDescription: prompt.subjectDescription ?? msg.content,
253
- subjectType: imagenOptions?.subjectType ?? "SUBJECT_TYPE_DEFAULT",
254
- }
295
+ subjectType: imagenOptions?.subjectType ?? 'SUBJECT_TYPE_DEFAULT',
296
+ },
255
297
  });
256
298
  }
257
- } else if ((options.model_options as ImagenOptions)?.edit_mode === ImagenTaskType.CUSTOMIZATION_STYLE) {
299
+ } else if (
300
+ (options.model_options as ImagenOptions)?.edit_mode ===
301
+ ImagenTaskType.CUSTOMIZATION_STYLE
302
+ ) {
258
303
  // Style images
259
304
  prompt.referenceImages.push({
260
- referenceType: "REFERENCE_TYPE_STYLE",
305
+ referenceType: 'REFERENCE_TYPE_STYLE',
261
306
  referenceId: refId,
262
307
  referenceImage: {
263
308
  bytesBase64Encoded: await readStreamAsBase64(await img.getStream()),
264
309
  },
265
310
  styleImageConfig: {
266
311
  styleDescription: prompt.subjectDescription ?? msg.content,
267
- }
312
+ },
268
313
  });
269
- } else if ((options.model_options as ImagenOptions)?.edit_mode === ImagenTaskType.CUSTOMIZATION_CONTROLLED) {
314
+ } else if (
315
+ (options.model_options as ImagenOptions)?.edit_mode ===
316
+ ImagenTaskType.CUSTOMIZATION_CONTROLLED
317
+ ) {
270
318
  // Control images
271
319
  prompt.referenceImages.push({
272
- referenceType: "REFERENCE_TYPE_CONTROL",
320
+ referenceType: 'REFERENCE_TYPE_CONTROL',
273
321
  referenceId: refId,
274
322
  referenceImage: {
275
323
  bytesBase64Encoded: await readStreamAsBase64(await img.getStream()),
276
324
  },
277
325
  controlImageConfig: {
278
- controlType: imagenOptions?.controlType === "CONTROL_TYPE_FACE_MESH" ? "CONTROL_TYPE_FACE_MESH" : "CONTROL_TYPE_CANNY",
326
+ controlType:
327
+ imagenOptions?.controlType === 'CONTROL_TYPE_FACE_MESH'
328
+ ? 'CONTROL_TYPE_FACE_MESH'
329
+ : 'CONTROL_TYPE_CANNY',
279
330
  enableControlImageComputation: imagenOptions?.controlImageComputation,
280
- }
331
+ },
281
332
  });
282
- } else if ((options.model_options as ImagenOptions)?.edit_mode === ImagenTaskType.CUSTOMIZATION_INSTRUCT) {
333
+ } else if (
334
+ (options.model_options as ImagenOptions)?.edit_mode ===
335
+ ImagenTaskType.CUSTOMIZATION_INSTRUCT
336
+ ) {
283
337
  // Control images
284
338
  prompt.referenceImages.push({
285
- referenceType: "REFERENCE_TYPE_RAW",
339
+ referenceType: 'REFERENCE_TYPE_RAW',
286
340
  referenceId: refId,
287
341
  referenceImage: {
288
342
  bytesBase64Encoded: await readStreamAsBase64(await img.getStream()),
@@ -293,7 +347,7 @@ export class ImagenModelDefinition {
293
347
  //If mask is user-provided, add a mask reference
294
348
  if (msg.role === PromptRole.mask && mask_mode === ImagenMaskMode.MASK_MODE_USER_PROVIDED) {
295
349
  prompt.referenceImages.push({
296
- referenceType: "REFERENCE_TYPE_MASK",
350
+ referenceType: 'REFERENCE_TYPE_MASK',
297
351
  referenceId: refId,
298
352
  referenceImage: {
299
353
  bytesBase64Encoded: await readStreamAsBase64(await img.getStream()),
@@ -301,7 +355,7 @@ export class ImagenModelDefinition {
301
355
  maskImageConfig: {
302
356
  maskMode: mask_mode,
303
357
  dilation: imagenOptions?.mask_dilation,
304
- }
358
+ },
305
359
  });
306
360
  }
307
361
  }
@@ -310,29 +364,36 @@ export class ImagenModelDefinition {
310
364
  }
311
365
 
312
366
  //Extract the text from the segments
313
- prompt.prompt += [system.join("\n\n"), user.join("\n\n"), safety.join("\n\n")].join("\n\n");
367
+ prompt.prompt += [system.join('\n\n'), user.join('\n\n'), safety.join('\n\n')].join('\n\n');
314
368
 
315
369
  //Negative prompt
316
370
  if (negative.length > 0) {
317
- prompt.negativePrompt = negative.join(", ");
371
+ prompt.negativePrompt = negative.join(', ');
318
372
  }
319
373
 
320
374
  console.log(prompt);
321
375
 
322
- return prompt
376
+ return prompt;
323
377
  }
324
378
 
325
- async requestImageGeneration(driver: VertexAIDriver, prompt: ImagenPrompt, options: ExecutionOptions): Promise<Completion> {
326
- if (options.model_options?._option_id !== undefined && options.model_options?._option_id !== "vertexai-imagen") {
327
- driver.logger.debug({ options: options.model_options }, "Unexpected option id");
379
+ async requestImageGeneration(
380
+ driver: VertexAIDriver,
381
+ prompt: ImagenPrompt,
382
+ options: ExecutionOptions,
383
+ ): Promise<Completion> {
384
+ if (
385
+ options.model_options?._option_id !== undefined &&
386
+ options.model_options?._option_id !== 'vertexai-imagen'
387
+ ) {
388
+ driver.logger.debug({ options: options.model_options }, 'Unexpected option id');
328
389
  }
329
390
  options.model_options = options.model_options as ImagenOptions | undefined;
330
391
 
331
392
  const taskType: string = options.model_options?.edit_mode ?? ImagenTaskType.TEXT_IMAGE;
332
393
 
333
- driver.logger.info("Task type: " + taskType);
394
+ driver.logger.info(`Task type: ${taskType}`);
334
395
 
335
- const modelName = options.model.split("/").pop() ?? '';
396
+ const modelName = options.model.split('/').pop() ?? '';
336
397
 
337
398
  // Configure the parent resource
338
399
  // TODO: make location configurable, fixed to us-central1 for now
@@ -344,15 +405,18 @@ export class ImagenModelDefinition {
344
405
  }
345
406
  const instances = [instanceValue];
346
407
 
347
- let parameter: any = getImagenParameters(taskType, options.model_options ?? { _option_id: "vertexai-imagen" });
408
+ let parameter = getImagenParameters(
409
+ taskType,
410
+ options.model_options ?? { _option_id: 'vertexai-imagen' },
411
+ ) as ReturnType<typeof getImagenParameters> & { negativePrompt?: string };
348
412
  parameter.negativePrompt = prompt.negativePrompt ?? undefined;
349
413
 
350
414
  const numberOfImages = options.model_options?.number_of_images ?? 1;
351
415
 
352
416
  // Remove all undefined values
353
417
  parameter = Object.fromEntries(
354
- Object.entries(parameter).filter(([_, v]) => v !== undefined)
355
- ) as any;
418
+ Object.entries(parameter).filter(([_, v]) => v !== undefined),
419
+ ) as typeof parameter;
356
420
 
357
421
  const parameters = helpers.toValue(parameter);
358
422
 
@@ -373,15 +437,15 @@ export class ImagenModelDefinition {
373
437
  }
374
438
 
375
439
  // Extract base64 encoded images from predictions
376
- const images: string[] = predictions.map(prediction =>
377
- prediction.structValue?.fields?.bytesBase64Encoded?.stringValue ?? ''
440
+ const images: string[] = predictions.map(
441
+ (prediction) => prediction.structValue?.fields?.bytesBase64Encoded?.stringValue ?? '',
378
442
  );
379
443
 
380
444
  return {
381
- result: images.map(image => ({
382
- type: "image" as const,
383
- value: image
445
+ result: images.map((image) => ({
446
+ type: 'image' as const,
447
+ value: image,
384
448
  })),
385
449
  };
386
450
  }
387
- }
451
+ }