ima2-gen 3.14.0 → 3.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (546) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/docs/API.md +2 -2
  3. package/docs/CLI.md +1 -1
  4. package/docs/CLI.zh-CN.md +1 -1
  5. package/docs/CLI.zh-TW.md +1 -1
  6. package/docs/migration/runtime-test-inventory.md +2 -1
  7. package/lib/agyArtifactRead.js +0 -3
  8. package/lib/assetLifecycle.js +1 -6
  9. package/lib/errors/providerMap.js +1 -0
  10. package/lib/mcp/downloadMediaResult.js +1 -6
  11. package/lib/naiImageAdapter.js +4 -9
  12. package/lib/naiSubscription.js +95 -0
  13. package/lib/pinnedHttpGet.js +15 -23
  14. package/lib/providers/adapters/api.js +55 -0
  15. package/lib/providers/adapters/atlascloud.js +66 -0
  16. package/lib/providers/adapters/comfy.js +76 -19
  17. package/lib/providers/adapters/gemini-api.js +55 -0
  18. package/lib/providers/adapters/googleExecution.js +26 -51
  19. package/lib/providers/adapters/grok-api.js +55 -0
  20. package/lib/providers/adapters/grokExecution.js +67 -112
  21. package/lib/providers/adapters/index.js +6 -0
  22. package/lib/providers/adapters/minimax.js +63 -0
  23. package/lib/providers/adapters/nai.js +55 -0
  24. package/lib/providers/adapters/openaiExecution.js +12 -37
  25. package/lib/providers/execution/index.js +10 -16
  26. package/lib/providers/execution/legacyClassic.js +5 -65
  27. package/lib/providers/execution/legacyEdit.js +2 -27
  28. package/lib/providers/execution/legacyMultimode.js +2 -31
  29. package/lib/providers/execution/legacyNode.js +2 -38
  30. package/lib/spriteAnchor.js +14 -24
  31. package/lib/spriteAtlasExport.js +8 -13
  32. package/lib/spriteCurationStore.js +4 -9
  33. package/lib/spriteRecipeStore.js +13 -76
  34. package/lib/spriteRowPipeline.js +5 -22
  35. package/node_modules/zod/README.md +27 -0
  36. package/node_modules/zod/compile.cjs +77 -0
  37. package/node_modules/zod/compile.d.cts +1 -0
  38. package/node_modules/zod/compile.d.ts +1 -0
  39. package/node_modules/zod/compile.js +52 -0
  40. package/node_modules/zod/index.cjs +2 -2
  41. package/node_modules/zod/index.d.cts +1 -2
  42. package/node_modules/zod/index.d.ts +1 -2
  43. package/node_modules/zod/index.js +5 -2
  44. package/node_modules/zod/package.json +13 -2
  45. package/node_modules/zod/src/compile.ts +56 -0
  46. package/node_modules/zod/src/index.ts +5 -2
  47. package/node_modules/zod/src/v3/ZodError.ts +22 -12
  48. package/node_modules/zod/src/v3/tests/error.test.ts +35 -0
  49. package/node_modules/zod/src/v3/tests/intersection.test.ts +18 -0
  50. package/node_modules/zod/src/v3/tests/language-server.test.ts +1 -2
  51. package/node_modules/zod/src/v3/tests/object.test.ts +3 -6
  52. package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -80
  53. package/node_modules/zod/src/v3/tests/string.test.ts +6 -0
  54. package/node_modules/zod/src/v3/types.ts +5 -5
  55. package/node_modules/zod/src/v4/classic/checks.ts +1 -0
  56. package/node_modules/zod/src/v4/classic/compat.ts +26 -18
  57. package/node_modules/zod/src/v4/classic/deep-partial.ts +76 -0
  58. package/node_modules/zod/src/v4/classic/errors.ts +59 -44
  59. package/node_modules/zod/src/v4/classic/external.ts +12 -9
  60. package/node_modules/zod/src/v4/classic/from-json-schema.ts +140 -78
  61. package/node_modules/zod/src/v4/classic/in-out.ts +45 -0
  62. package/node_modules/zod/src/v4/classic/index.ts +2 -2
  63. package/node_modules/zod/src/v4/classic/iso.ts +2 -72
  64. package/node_modules/zod/src/v4/classic/parse.ts +10 -4
  65. package/node_modules/zod/src/v4/classic/schemas.ts +452 -262
  66. package/node_modules/zod/src/v4/classic/tests/apply.test.ts +27 -0
  67. package/node_modules/zod/src/v4/classic/tests/array.test.ts +2 -2
  68. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +135 -0
  69. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +30 -1
  70. package/node_modules/zod/src/v4/classic/tests/catch.test.ts +278 -0
  71. package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +1 -2
  72. package/node_modules/zod/src/v4/classic/tests/codec.test.ts +2 -1
  73. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
  74. package/node_modules/zod/src/v4/classic/tests/credit-card.test.ts +76 -0
  75. package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +720 -0
  76. package/node_modules/zod/src/v4/classic/tests/date.test.ts +30 -0
  77. package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +32 -18
  78. package/node_modules/zod/src/v4/classic/tests/deep-partial.test.ts +380 -0
  79. package/node_modules/zod/src/v4/classic/tests/default-locale.test.ts +32 -0
  80. package/node_modules/zod/src/v4/classic/tests/default.test.ts +46 -0
  81. package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +31 -7
  82. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +155 -13
  83. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +11 -0
  84. package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +112 -2
  85. package/node_modules/zod/src/v4/classic/tests/error.test.ts +274 -6
  86. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +425 -10
  87. package/node_modules/zod/src/v4/classic/tests/function.test.ts +31 -0
  88. package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +2 -9
  89. package/node_modules/zod/src/v4/classic/tests/hash.test.ts +1 -2
  90. package/node_modules/zod/src/v4/classic/tests/in-out.test.ts +159 -0
  91. package/node_modules/zod/src/v4/classic/tests/index.test.ts +21 -2
  92. package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +281 -0
  93. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +47 -0
  94. package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +136 -0
  95. package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +183 -0
  96. package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +3 -10
  97. package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +36 -1
  98. package/node_modules/zod/src/v4/classic/tests/literal.test.ts +12 -1
  99. package/node_modules/zod/src/v4/classic/tests/map.test.ts +12 -0
  100. package/node_modules/zod/src/v4/classic/tests/number.test.ts +46 -9
  101. package/node_modules/zod/src/v4/classic/tests/object.test.ts +245 -12
  102. package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +234 -0
  103. package/node_modules/zod/src/v4/classic/tests/optional.test.ts +49 -16
  104. package/node_modules/zod/src/v4/classic/tests/partial.test.ts +51 -4
  105. package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +20 -2
  106. package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -68
  107. package/node_modules/zod/src/v4/classic/tests/record.test.ts +186 -18
  108. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +33 -2
  109. package/node_modules/zod/src/v4/classic/tests/redos.test.ts +68 -0
  110. package/node_modules/zod/src/v4/classic/tests/refine.test.ts +60 -0
  111. package/node_modules/zod/src/v4/classic/tests/set.test.ts +9 -0
  112. package/node_modules/zod/src/v4/classic/tests/string.test.ts +127 -5
  113. package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +18 -0
  114. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +11 -2
  115. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +1585 -173
  116. package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +45 -30
  117. package/node_modules/zod/src/v4/classic/tests/union.test.ts +39 -2
  118. package/node_modules/zod/src/v4/classic/tests/validate.test.ts +76 -0
  119. package/node_modules/zod/src/v4/classic/tests/validations.test.ts +2 -2
  120. package/node_modules/zod/src/v4/core/api.ts +48 -12
  121. package/node_modules/zod/src/v4/core/checks.ts +57 -44
  122. package/node_modules/zod/src/v4/core/compile.ts +2188 -0
  123. package/node_modules/zod/src/v4/core/core.ts +98 -19
  124. package/node_modules/zod/src/v4/core/doc.ts +11 -7
  125. package/node_modules/zod/src/v4/core/errors.ts +115 -24
  126. package/node_modules/zod/src/v4/core/index.ts +3 -0
  127. package/node_modules/zod/src/v4/core/json-schema-generator.ts +6 -1
  128. package/node_modules/zod/src/v4/core/json-schema-processors.ts +257 -93
  129. package/node_modules/zod/src/v4/core/json-schema.ts +2 -1
  130. package/node_modules/zod/src/v4/core/memoizer.ts +284 -0
  131. package/node_modules/zod/src/v4/core/parse.ts +131 -38
  132. package/node_modules/zod/src/v4/core/regexes.ts +30 -13
  133. package/node_modules/zod/src/v4/core/registries.ts +2 -2
  134. package/node_modules/zod/src/v4/core/schemas.ts +759 -461
  135. package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +969 -0
  136. package/node_modules/zod/src/v4/core/tests/compile-global.test.ts +89 -0
  137. package/node_modules/zod/src/v4/core/tests/compile-off-by-default.test.ts +26 -0
  138. package/node_modules/zod/src/v4/core/tests/compile-stats.test.ts +34 -0
  139. package/node_modules/zod/src/v4/core/tests/compile.test.ts +1639 -0
  140. package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +1 -2
  141. package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +1 -2
  142. package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +3 -3
  143. package/node_modules/zod/src/v4/core/tests/locales/parity.test.ts +42 -0
  144. package/node_modules/zod/src/v4/core/tests/locales/tk.test.ts +69 -0
  145. package/node_modules/zod/src/v4/core/tests/treeshake.test.ts +51 -0
  146. package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +31 -0
  147. package/node_modules/zod/src/v4/core/to-json-schema.ts +275 -42
  148. package/node_modules/zod/src/v4/core/util.ts +268 -42
  149. package/node_modules/zod/src/v4/core/versions.ts +2 -2
  150. package/node_modules/zod/src/v4/core/visit.ts +193 -0
  151. package/node_modules/zod/src/v4/index.ts +3 -3
  152. package/node_modules/zod/src/v4/locales/ar.ts +3 -0
  153. package/node_modules/zod/src/v4/locales/az.ts +3 -0
  154. package/node_modules/zod/src/v4/locales/be.ts +10 -0
  155. package/node_modules/zod/src/v4/locales/bg.ts +3 -0
  156. package/node_modules/zod/src/v4/locales/bn.ts +121 -0
  157. package/node_modules/zod/src/v4/locales/ca.ts +3 -0
  158. package/node_modules/zod/src/v4/locales/ckb.ts +138 -0
  159. package/node_modules/zod/src/v4/locales/cs.ts +3 -0
  160. package/node_modules/zod/src/v4/locales/da.ts +5 -2
  161. package/node_modules/zod/src/v4/locales/de.ts +3 -0
  162. package/node_modules/zod/src/v4/locales/el.ts +1 -0
  163. package/node_modules/zod/src/v4/locales/en.ts +15 -4
  164. package/node_modules/zod/src/v4/locales/eo.ts +3 -0
  165. package/node_modules/zod/src/v4/locales/es.ts +2 -0
  166. package/node_modules/zod/src/v4/locales/fa.ts +3 -0
  167. package/node_modules/zod/src/v4/locales/fi.ts +3 -0
  168. package/node_modules/zod/src/v4/locales/fr-CA.ts +3 -0
  169. package/node_modules/zod/src/v4/locales/fr.ts +19 -14
  170. package/node_modules/zod/src/v4/locales/gu.ts +121 -0
  171. package/node_modules/zod/src/v4/locales/he.ts +6 -1
  172. package/node_modules/zod/src/v4/locales/hi.ts +124 -0
  173. package/node_modules/zod/src/v4/locales/hr.ts +2 -0
  174. package/node_modules/zod/src/v4/locales/hu.ts +3 -0
  175. package/node_modules/zod/src/v4/locales/hy.ts +9 -0
  176. package/node_modules/zod/src/v4/locales/id.ts +3 -0
  177. package/node_modules/zod/src/v4/locales/index.ts +10 -0
  178. package/node_modules/zod/src/v4/locales/is.ts +3 -0
  179. package/node_modules/zod/src/v4/locales/it.ts +3 -0
  180. package/node_modules/zod/src/v4/locales/ja.ts +3 -0
  181. package/node_modules/zod/src/v4/locales/ka.ts +3 -0
  182. package/node_modules/zod/src/v4/locales/km.ts +3 -0
  183. package/node_modules/zod/src/v4/locales/kn.ts +124 -0
  184. package/node_modules/zod/src/v4/locales/ko.ts +3 -0
  185. package/node_modules/zod/src/v4/locales/lt.ts +2 -0
  186. package/node_modules/zod/src/v4/locales/mk.ts +3 -0
  187. package/node_modules/zod/src/v4/locales/ms.ts +3 -0
  188. package/node_modules/zod/src/v4/locales/ne.ts +126 -0
  189. package/node_modules/zod/src/v4/locales/nl.ts +3 -0
  190. package/node_modules/zod/src/v4/locales/nn.ts +119 -0
  191. package/node_modules/zod/src/v4/locales/no.ts +5 -2
  192. package/node_modules/zod/src/v4/locales/ota.ts +3 -0
  193. package/node_modules/zod/src/v4/locales/pl.ts +3 -0
  194. package/node_modules/zod/src/v4/locales/ps.ts +3 -0
  195. package/node_modules/zod/src/v4/locales/pt-BR.ts +159 -0
  196. package/node_modules/zod/src/v4/locales/pt.ts +99 -58
  197. package/node_modules/zod/src/v4/locales/ro.ts +1 -0
  198. package/node_modules/zod/src/v4/locales/ru.ts +10 -0
  199. package/node_modules/zod/src/v4/locales/sk.ts +121 -0
  200. package/node_modules/zod/src/v4/locales/sl.ts +3 -0
  201. package/node_modules/zod/src/v4/locales/sv.ts +5 -2
  202. package/node_modules/zod/src/v4/locales/ta.ts +3 -0
  203. package/node_modules/zod/src/v4/locales/th.ts +3 -0
  204. package/node_modules/zod/src/v4/locales/tk.ts +111 -0
  205. package/node_modules/zod/src/v4/locales/tr.ts +3 -0
  206. package/node_modules/zod/src/v4/locales/uk.ts +3 -0
  207. package/node_modules/zod/src/v4/locales/ur.ts +3 -0
  208. package/node_modules/zod/src/v4/locales/uz.ts +1 -0
  209. package/node_modules/zod/src/v4/locales/vi.ts +3 -0
  210. package/node_modules/zod/src/v4/locales/yo.ts +3 -0
  211. package/node_modules/zod/src/v4/locales/zh-CN.ts +3 -0
  212. package/node_modules/zod/src/v4/locales/zh-TW.ts +3 -0
  213. package/node_modules/zod/src/v4/mini/checks.ts +1 -0
  214. package/node_modules/zod/src/v4/mini/deep-partial.ts +73 -0
  215. package/node_modules/zod/src/v4/mini/external.ts +10 -1
  216. package/node_modules/zod/src/v4/mini/in-out.ts +45 -0
  217. package/node_modules/zod/src/v4/mini/parse.ts +2 -0
  218. package/node_modules/zod/src/v4/mini/schemas.ts +135 -56
  219. package/node_modules/zod/src/v4/mini/tests/apply.test.ts +33 -0
  220. package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +62 -1
  221. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +14 -0
  222. package/node_modules/zod/src/v4/mini/tests/codec.test.ts +35 -1
  223. package/node_modules/zod/src/v4/mini/tests/cyclic-data.test.ts +84 -0
  224. package/node_modules/zod/src/v4/mini/tests/deep-partial.test.ts +54 -0
  225. package/node_modules/zod/src/v4/mini/tests/error.test.ts +23 -4
  226. package/node_modules/zod/src/v4/mini/tests/functions.test.ts +9 -0
  227. package/node_modules/zod/src/v4/mini/tests/index.test.ts +72 -5
  228. package/node_modules/zod/src/v4/mini/tests/number.test.ts +14 -0
  229. package/node_modules/zod/src/v4/mini/tests/object.test.ts +65 -0
  230. package/node_modules/zod/src/v4/mini/tests/string.test.ts +21 -0
  231. package/node_modules/zod/v3/ZodError.cjs +22 -12
  232. package/node_modules/zod/v3/ZodError.d.cts +1 -1
  233. package/node_modules/zod/v3/ZodError.d.ts +1 -1
  234. package/node_modules/zod/v3/ZodError.js +22 -12
  235. package/node_modules/zod/v3/types.cjs +7 -5
  236. package/node_modules/zod/v3/types.js +7 -5
  237. package/node_modules/zod/v4/classic/checks.cjs +2 -1
  238. package/node_modules/zod/v4/classic/checks.d.cts +1 -1
  239. package/node_modules/zod/v4/classic/checks.d.ts +1 -1
  240. package/node_modules/zod/v4/classic/checks.js +1 -1
  241. package/node_modules/zod/v4/classic/compat.d.cts +9 -11
  242. package/node_modules/zod/v4/classic/compat.d.ts +9 -11
  243. package/node_modules/zod/v4/classic/deep-partial.cjs +39 -0
  244. package/node_modules/zod/v4/classic/deep-partial.d.cts +14 -0
  245. package/node_modules/zod/v4/classic/deep-partial.d.ts +14 -0
  246. package/node_modules/zod/v4/classic/deep-partial.js +13 -0
  247. package/node_modules/zod/v4/classic/errors.cjs +43 -34
  248. package/node_modules/zod/v4/classic/errors.d.cts +3 -4
  249. package/node_modules/zod/v4/classic/errors.d.ts +3 -4
  250. package/node_modules/zod/v4/classic/errors.js +43 -34
  251. package/node_modules/zod/v4/classic/external.cjs +30 -27
  252. package/node_modules/zod/v4/classic/external.d.cts +5 -2
  253. package/node_modules/zod/v4/classic/external.d.ts +5 -2
  254. package/node_modules/zod/v4/classic/external.js +5 -8
  255. package/node_modules/zod/v4/classic/from-json-schema.cjs +136 -75
  256. package/node_modules/zod/v4/classic/from-json-schema.js +136 -75
  257. package/node_modules/zod/v4/classic/in-out.cjs +63 -0
  258. package/node_modules/zod/v4/classic/in-out.d.cts +8 -0
  259. package/node_modules/zod/v4/classic/in-out.d.ts +8 -0
  260. package/node_modules/zod/v4/classic/in-out.js +36 -0
  261. package/node_modules/zod/v4/classic/index.cjs +2 -2
  262. package/node_modules/zod/v4/classic/index.d.cts +1 -2
  263. package/node_modules/zod/v4/classic/index.d.ts +1 -2
  264. package/node_modules/zod/v4/classic/index.js +2 -2
  265. package/node_modules/zod/v4/classic/iso.cjs +11 -22
  266. package/node_modules/zod/v4/classic/iso.d.cts +2 -17
  267. package/node_modules/zod/v4/classic/iso.d.ts +2 -17
  268. package/node_modules/zod/v4/classic/iso.js +2 -17
  269. package/node_modules/zod/v4/classic/parse.cjs +4 -1
  270. package/node_modules/zod/v4/classic/parse.d.cts +17 -4
  271. package/node_modules/zod/v4/classic/parse.d.ts +17 -4
  272. package/node_modules/zod/v4/classic/parse.js +1 -0
  273. package/node_modules/zod/v4/classic/schemas.cjs +498 -398
  274. package/node_modules/zod/v4/classic/schemas.d.cts +53 -18
  275. package/node_modules/zod/v4/classic/schemas.d.ts +53 -18
  276. package/node_modules/zod/v4/classic/schemas.js +492 -396
  277. package/node_modules/zod/v4/core/api.cjs +23 -4
  278. package/node_modules/zod/v4/core/api.d.cts +13 -9
  279. package/node_modules/zod/v4/core/api.d.ts +13 -9
  280. package/node_modules/zod/v4/core/api.js +21 -4
  281. package/node_modules/zod/v4/core/checks.cjs +37 -31
  282. package/node_modules/zod/v4/core/checks.d.cts +13 -13
  283. package/node_modules/zod/v4/core/checks.d.ts +13 -13
  284. package/node_modules/zod/v4/core/checks.js +37 -31
  285. package/node_modules/zod/v4/core/compile.cjs +1813 -0
  286. package/node_modules/zod/v4/core/compile.d.cts +51 -0
  287. package/node_modules/zod/v4/core/compile.d.ts +51 -0
  288. package/node_modules/zod/v4/core/compile.js +1783 -0
  289. package/node_modules/zod/v4/core/core.cjs +81 -18
  290. package/node_modules/zod/v4/core/core.d.cts +16 -4
  291. package/node_modules/zod/v4/core/core.d.ts +16 -4
  292. package/node_modules/zod/v4/core/core.js +82 -19
  293. package/node_modules/zod/v4/core/doc.cjs +5 -7
  294. package/node_modules/zod/v4/core/doc.d.cts +3 -1
  295. package/node_modules/zod/v4/core/doc.d.ts +3 -1
  296. package/node_modules/zod/v4/core/doc.js +5 -7
  297. package/node_modules/zod/v4/core/errors.cjs +110 -25
  298. package/node_modules/zod/v4/core/errors.d.cts +4 -0
  299. package/node_modules/zod/v4/core/errors.d.ts +4 -0
  300. package/node_modules/zod/v4/core/errors.js +110 -25
  301. package/node_modules/zod/v4/core/index.cjs +5 -1
  302. package/node_modules/zod/v4/core/index.d.cts +3 -0
  303. package/node_modules/zod/v4/core/index.d.ts +3 -0
  304. package/node_modules/zod/v4/core/index.js +3 -0
  305. package/node_modules/zod/v4/core/json-schema-generator.cjs +4 -0
  306. package/node_modules/zod/v4/core/json-schema-generator.d.cts +2 -2
  307. package/node_modules/zod/v4/core/json-schema-generator.d.ts +2 -2
  308. package/node_modules/zod/v4/core/json-schema-generator.js +4 -0
  309. package/node_modules/zod/v4/core/json-schema-processors.cjs +264 -95
  310. package/node_modules/zod/v4/core/json-schema-processors.js +243 -97
  311. package/node_modules/zod/v4/core/json-schema.d.cts +2 -1
  312. package/node_modules/zod/v4/core/json-schema.d.ts +2 -1
  313. package/node_modules/zod/v4/core/memoizer.cjs +272 -0
  314. package/node_modules/zod/v4/core/memoizer.d.cts +15 -0
  315. package/node_modules/zod/v4/core/memoizer.d.ts +15 -0
  316. package/node_modules/zod/v4/core/memoizer.js +265 -0
  317. package/node_modules/zod/v4/core/parse.cjs +96 -34
  318. package/node_modules/zod/v4/core/parse.d.cts +14 -11
  319. package/node_modules/zod/v4/core/parse.d.ts +14 -11
  320. package/node_modules/zod/v4/core/parse.js +94 -33
  321. package/node_modules/zod/v4/core/regexes.cjs +27 -15
  322. package/node_modules/zod/v4/core/regexes.d.cts +2 -0
  323. package/node_modules/zod/v4/core/regexes.d.ts +2 -0
  324. package/node_modules/zod/v4/core/regexes.js +24 -13
  325. package/node_modules/zod/v4/core/registries.js +2 -2
  326. package/node_modules/zod/v4/core/schemas.cjs +537 -326
  327. package/node_modules/zod/v4/core/schemas.d.cts +100 -31
  328. package/node_modules/zod/v4/core/schemas.d.ts +100 -31
  329. package/node_modules/zod/v4/core/schemas.js +526 -325
  330. package/node_modules/zod/v4/core/to-json-schema.cjs +242 -39
  331. package/node_modules/zod/v4/core/to-json-schema.d.cts +42 -3
  332. package/node_modules/zod/v4/core/to-json-schema.d.ts +42 -3
  333. package/node_modules/zod/v4/core/to-json-schema.js +241 -39
  334. package/node_modules/zod/v4/core/util.cjs +212 -31
  335. package/node_modules/zod/v4/core/util.d.cts +58 -1
  336. package/node_modules/zod/v4/core/util.d.ts +58 -1
  337. package/node_modules/zod/v4/core/util.js +202 -30
  338. package/node_modules/zod/v4/core/versions.cjs +2 -2
  339. package/node_modules/zod/v4/core/versions.d.cts +1 -1
  340. package/node_modules/zod/v4/core/versions.d.ts +1 -1
  341. package/node_modules/zod/v4/core/versions.js +2 -2
  342. package/node_modules/zod/v4/core/visit.cjs +195 -0
  343. package/node_modules/zod/v4/core/visit.d.cts +30 -0
  344. package/node_modules/zod/v4/core/visit.d.ts +30 -0
  345. package/node_modules/zod/v4/core/visit.js +169 -0
  346. package/node_modules/zod/v4/index.cjs +15 -5
  347. package/node_modules/zod/v4/index.d.cts +2 -2
  348. package/node_modules/zod/v4/index.d.ts +2 -2
  349. package/node_modules/zod/v4/index.js +3 -2
  350. package/node_modules/zod/v4/locales/ar.cjs +3 -0
  351. package/node_modules/zod/v4/locales/ar.js +3 -0
  352. package/node_modules/zod/v4/locales/az.cjs +3 -0
  353. package/node_modules/zod/v4/locales/az.js +3 -0
  354. package/node_modules/zod/v4/locales/be.cjs +10 -0
  355. package/node_modules/zod/v4/locales/be.js +10 -0
  356. package/node_modules/zod/v4/locales/bg.cjs +3 -0
  357. package/node_modules/zod/v4/locales/bg.js +3 -0
  358. package/node_modules/zod/v4/locales/bn.cjs +138 -0
  359. package/node_modules/zod/v4/locales/bn.d.cts +5 -0
  360. package/node_modules/zod/v4/locales/bn.d.ts +4 -0
  361. package/node_modules/zod/v4/locales/bn.js +111 -0
  362. package/node_modules/zod/v4/locales/ca.cjs +3 -0
  363. package/node_modules/zod/v4/locales/ca.js +3 -0
  364. package/node_modules/zod/v4/locales/ckb.cjs +158 -0
  365. package/node_modules/zod/v4/locales/ckb.d.cts +5 -0
  366. package/node_modules/zod/v4/locales/ckb.d.ts +4 -0
  367. package/node_modules/zod/v4/locales/ckb.js +131 -0
  368. package/node_modules/zod/v4/locales/cs.cjs +3 -0
  369. package/node_modules/zod/v4/locales/cs.js +3 -0
  370. package/node_modules/zod/v4/locales/da.cjs +5 -2
  371. package/node_modules/zod/v4/locales/da.js +5 -2
  372. package/node_modules/zod/v4/locales/de.cjs +3 -0
  373. package/node_modules/zod/v4/locales/de.js +3 -0
  374. package/node_modules/zod/v4/locales/el.cjs +1 -0
  375. package/node_modules/zod/v4/locales/el.js +1 -0
  376. package/node_modules/zod/v4/locales/en.cjs +14 -4
  377. package/node_modules/zod/v4/locales/en.js +14 -4
  378. package/node_modules/zod/v4/locales/eo.cjs +3 -0
  379. package/node_modules/zod/v4/locales/eo.js +3 -0
  380. package/node_modules/zod/v4/locales/es.cjs +2 -0
  381. package/node_modules/zod/v4/locales/es.js +2 -0
  382. package/node_modules/zod/v4/locales/fa.cjs +3 -0
  383. package/node_modules/zod/v4/locales/fa.js +3 -0
  384. package/node_modules/zod/v4/locales/fi.cjs +3 -0
  385. package/node_modules/zod/v4/locales/fi.js +3 -0
  386. package/node_modules/zod/v4/locales/fr-CA.cjs +3 -0
  387. package/node_modules/zod/v4/locales/fr-CA.js +3 -0
  388. package/node_modules/zod/v4/locales/fr.cjs +16 -14
  389. package/node_modules/zod/v4/locales/fr.js +16 -14
  390. package/node_modules/zod/v4/locales/gu.cjs +138 -0
  391. package/node_modules/zod/v4/locales/gu.d.cts +5 -0
  392. package/node_modules/zod/v4/locales/gu.d.ts +4 -0
  393. package/node_modules/zod/v4/locales/gu.js +111 -0
  394. package/node_modules/zod/v4/locales/he.cjs +5 -0
  395. package/node_modules/zod/v4/locales/he.js +5 -0
  396. package/node_modules/zod/v4/locales/hi.cjs +136 -0
  397. package/node_modules/zod/v4/locales/hi.d.cts +5 -0
  398. package/node_modules/zod/v4/locales/hi.d.ts +4 -0
  399. package/node_modules/zod/v4/locales/hi.js +109 -0
  400. package/node_modules/zod/v4/locales/hr.cjs +2 -0
  401. package/node_modules/zod/v4/locales/hr.js +2 -0
  402. package/node_modules/zod/v4/locales/hu.cjs +3 -0
  403. package/node_modules/zod/v4/locales/hu.js +3 -0
  404. package/node_modules/zod/v4/locales/hy.cjs +9 -0
  405. package/node_modules/zod/v4/locales/hy.js +9 -0
  406. package/node_modules/zod/v4/locales/id.cjs +3 -0
  407. package/node_modules/zod/v4/locales/id.js +3 -0
  408. package/node_modules/zod/v4/locales/index.cjs +22 -2
  409. package/node_modules/zod/v4/locales/index.d.cts +10 -0
  410. package/node_modules/zod/v4/locales/index.d.ts +10 -0
  411. package/node_modules/zod/v4/locales/index.js +10 -0
  412. package/node_modules/zod/v4/locales/is.cjs +3 -0
  413. package/node_modules/zod/v4/locales/is.js +3 -0
  414. package/node_modules/zod/v4/locales/it.cjs +3 -0
  415. package/node_modules/zod/v4/locales/it.js +3 -0
  416. package/node_modules/zod/v4/locales/ja.cjs +3 -0
  417. package/node_modules/zod/v4/locales/ja.js +3 -0
  418. package/node_modules/zod/v4/locales/ka.cjs +3 -0
  419. package/node_modules/zod/v4/locales/ka.js +3 -0
  420. package/node_modules/zod/v4/locales/km.cjs +3 -0
  421. package/node_modules/zod/v4/locales/km.js +3 -0
  422. package/node_modules/zod/v4/locales/kn.cjs +141 -0
  423. package/node_modules/zod/v4/locales/kn.d.cts +5 -0
  424. package/node_modules/zod/v4/locales/kn.d.ts +4 -0
  425. package/node_modules/zod/v4/locales/kn.js +114 -0
  426. package/node_modules/zod/v4/locales/ko.cjs +3 -0
  427. package/node_modules/zod/v4/locales/ko.js +3 -0
  428. package/node_modules/zod/v4/locales/lt.cjs +2 -0
  429. package/node_modules/zod/v4/locales/lt.js +2 -0
  430. package/node_modules/zod/v4/locales/mk.cjs +3 -0
  431. package/node_modules/zod/v4/locales/mk.js +3 -0
  432. package/node_modules/zod/v4/locales/ms.cjs +3 -0
  433. package/node_modules/zod/v4/locales/ms.js +3 -0
  434. package/node_modules/zod/v4/locales/ne.cjs +136 -0
  435. package/node_modules/zod/v4/locales/ne.d.cts +5 -0
  436. package/node_modules/zod/v4/locales/ne.d.ts +4 -0
  437. package/node_modules/zod/v4/locales/ne.js +109 -0
  438. package/node_modules/zod/v4/locales/nl.cjs +3 -0
  439. package/node_modules/zod/v4/locales/nl.js +3 -0
  440. package/node_modules/zod/v4/locales/nn.cjs +138 -0
  441. package/node_modules/zod/v4/locales/nn.d.cts +5 -0
  442. package/node_modules/zod/v4/locales/nn.d.ts +4 -0
  443. package/node_modules/zod/v4/locales/nn.js +111 -0
  444. package/node_modules/zod/v4/locales/no.cjs +5 -2
  445. package/node_modules/zod/v4/locales/no.js +5 -2
  446. package/node_modules/zod/v4/locales/ota.cjs +3 -0
  447. package/node_modules/zod/v4/locales/ota.js +3 -0
  448. package/node_modules/zod/v4/locales/pl.cjs +3 -0
  449. package/node_modules/zod/v4/locales/pl.js +3 -0
  450. package/node_modules/zod/v4/locales/ps.cjs +3 -0
  451. package/node_modules/zod/v4/locales/ps.js +3 -0
  452. package/node_modules/zod/v4/locales/pt-BR.cjs +168 -0
  453. package/node_modules/zod/v4/locales/pt-BR.d.cts +5 -0
  454. package/node_modules/zod/v4/locales/pt-BR.d.ts +4 -0
  455. package/node_modules/zod/v4/locales/pt-BR.js +141 -0
  456. package/node_modules/zod/v4/locales/pt.cjs +87 -55
  457. package/node_modules/zod/v4/locales/pt.js +87 -55
  458. package/node_modules/zod/v4/locales/ro.cjs +1 -0
  459. package/node_modules/zod/v4/locales/ro.js +1 -0
  460. package/node_modules/zod/v4/locales/ru.cjs +10 -0
  461. package/node_modules/zod/v4/locales/ru.js +10 -0
  462. package/node_modules/zod/v4/locales/sk.cjs +141 -0
  463. package/node_modules/zod/v4/locales/sk.d.cts +5 -0
  464. package/node_modules/zod/v4/locales/sk.d.ts +4 -0
  465. package/node_modules/zod/v4/locales/sk.js +114 -0
  466. package/node_modules/zod/v4/locales/sl.cjs +3 -0
  467. package/node_modules/zod/v4/locales/sl.js +3 -0
  468. package/node_modules/zod/v4/locales/sv.cjs +5 -2
  469. package/node_modules/zod/v4/locales/sv.js +5 -2
  470. package/node_modules/zod/v4/locales/ta.cjs +3 -0
  471. package/node_modules/zod/v4/locales/ta.js +3 -0
  472. package/node_modules/zod/v4/locales/th.cjs +3 -0
  473. package/node_modules/zod/v4/locales/th.js +3 -0
  474. package/node_modules/zod/v4/locales/tk.cjs +132 -0
  475. package/node_modules/zod/v4/locales/tk.d.cts +5 -0
  476. package/node_modules/zod/v4/locales/tk.d.ts +4 -0
  477. package/node_modules/zod/v4/locales/tk.js +105 -0
  478. package/node_modules/zod/v4/locales/tr.cjs +3 -0
  479. package/node_modules/zod/v4/locales/tr.js +3 -0
  480. package/node_modules/zod/v4/locales/uk.cjs +3 -0
  481. package/node_modules/zod/v4/locales/uk.js +3 -0
  482. package/node_modules/zod/v4/locales/ur.cjs +3 -0
  483. package/node_modules/zod/v4/locales/ur.js +3 -0
  484. package/node_modules/zod/v4/locales/uz.cjs +1 -0
  485. package/node_modules/zod/v4/locales/uz.js +1 -0
  486. package/node_modules/zod/v4/locales/vi.cjs +3 -0
  487. package/node_modules/zod/v4/locales/vi.js +3 -0
  488. package/node_modules/zod/v4/locales/yo.cjs +3 -0
  489. package/node_modules/zod/v4/locales/yo.js +3 -0
  490. package/node_modules/zod/v4/locales/zh-CN.cjs +3 -0
  491. package/node_modules/zod/v4/locales/zh-CN.js +3 -0
  492. package/node_modules/zod/v4/locales/zh-TW.cjs +3 -0
  493. package/node_modules/zod/v4/locales/zh-TW.js +3 -0
  494. package/node_modules/zod/v4/mini/checks.cjs +2 -1
  495. package/node_modules/zod/v4/mini/checks.d.cts +1 -1
  496. package/node_modules/zod/v4/mini/checks.d.ts +1 -1
  497. package/node_modules/zod/v4/mini/checks.js +1 -1
  498. package/node_modules/zod/v4/mini/deep-partial.cjs +39 -0
  499. package/node_modules/zod/v4/mini/deep-partial.d.cts +14 -0
  500. package/node_modules/zod/v4/mini/deep-partial.d.ts +14 -0
  501. package/node_modules/zod/v4/mini/deep-partial.js +13 -0
  502. package/node_modules/zod/v4/mini/external.cjs +12 -1
  503. package/node_modules/zod/v4/mini/external.d.cts +5 -2
  504. package/node_modules/zod/v4/mini/external.d.ts +5 -2
  505. package/node_modules/zod/v4/mini/external.js +3 -1
  506. package/node_modules/zod/v4/mini/in-out.cjs +63 -0
  507. package/node_modules/zod/v4/mini/in-out.d.cts +8 -0
  508. package/node_modules/zod/v4/mini/in-out.d.ts +8 -0
  509. package/node_modules/zod/v4/mini/in-out.js +36 -0
  510. package/node_modules/zod/v4/mini/parse.cjs +3 -1
  511. package/node_modules/zod/v4/mini/parse.d.cts +1 -1
  512. package/node_modules/zod/v4/mini/parse.d.ts +1 -1
  513. package/node_modules/zod/v4/mini/parse.js +1 -1
  514. package/node_modules/zod/v4/mini/schemas.cjs +75 -47
  515. package/node_modules/zod/v4/mini/schemas.d.cts +43 -13
  516. package/node_modules/zod/v4/mini/schemas.d.ts +43 -13
  517. package/node_modules/zod/v4/mini/schemas.js +71 -45
  518. package/package.json +5 -5
  519. package/routes/quota.js +29 -3
  520. package/ui/dist/.vite/manifest.json +61 -61
  521. package/ui/dist/assets/{AgentWorkspace-CL3MLv3l.js → AgentWorkspace-BulKz33A.js} +1 -1
  522. package/ui/dist/assets/{App-B9cEM6dJ.js → App-juOjrIgh.js} +3 -3
  523. package/ui/dist/assets/{AssetGenWorkspace-swWPvXrx.js → AssetGenWorkspace-8SYhS2Y2.js} +2 -2
  524. package/ui/dist/assets/{AssetsWorkspace-CRVeYU2F.js → AssetsWorkspace-Dxz-Xksp.js} +1 -1
  525. package/ui/dist/assets/{CardNewsWorkspace-BAOxWLKf.js → CardNewsWorkspace-DV4hpvKf.js} +1 -1
  526. package/ui/dist/assets/{GenerationRequestLogPanel-DZtYZm-D.js → GenerationRequestLogPanel-VFu4cAdd.js} +1 -1
  527. package/ui/dist/assets/{HomeWorkspace-BeZ1s0Jm.js → HomeWorkspace-D1UBgwRZ.js} +1 -1
  528. package/ui/dist/assets/{KeyingPanel-ZyBSXioh.js → KeyingPanel-GdUcaaJR.js} +1 -1
  529. package/ui/dist/assets/{NodeCanvas-BvvcCErf.js → NodeCanvas-B6zoJhHr.js} +3 -3
  530. package/ui/dist/assets/{PromptBuilderPanel-DBycmShA.js → PromptBuilderPanel-CJ56MEk2.js} +1 -1
  531. package/ui/dist/assets/{PromptImportDialog-ChvMv7ek.js → PromptImportDialog-DMFnggIT.js} +2 -2
  532. package/ui/dist/assets/{PromptImportDiscoverySection-60py7whH.js → PromptImportDiscoverySection-4KCIWmZ8.js} +1 -1
  533. package/ui/dist/assets/{PromptImportFolderSection-CCRh_-_7.js → PromptImportFolderSection-BjqopFX5.js} +1 -1
  534. package/ui/dist/assets/{PromptLibraryPanel-BFWQO8OT.js → PromptLibraryPanel-DwFK4ALC.js} +2 -2
  535. package/ui/dist/assets/SettingsWorkspace-BWcNnQ56.js +1 -0
  536. package/ui/dist/assets/{SpriteRecipeWorkspace-DRWdkmwU.js → SpriteRecipeWorkspace-Bsl_NZ3A.js} +1 -1
  537. package/ui/dist/assets/{index-7ngEOVxt.js → index-BWzT2RyM.js} +3 -3
  538. package/ui/dist/assets/{index-B5jy7ePg.css → index-C5zSMtGM.css} +1 -1
  539. package/ui/dist/assets/{index-gxh_02DQ.js → index-Cl5SnWLL.js} +7 -7
  540. package/ui/dist/assets/{pptxgen.es-OUNhQLEV.js → pptxgen.es-BslswdiL.js} +1 -1
  541. package/ui/dist/assets/{promptBuilderStore-BTUUzbBT.js → promptBuilderStore-Cl2q0Oe6.js} +1 -1
  542. package/ui/dist/assets/useAgentDialogFocus-B8niAv4W.js +1 -0
  543. package/ui/dist/index.html +2 -2
  544. package/node_modules/zod/src/v4/core/config.ts +0 -15
  545. package/ui/dist/assets/SettingsWorkspace-B5Ghsgdj.js +0 -1
  546. package/ui/dist/assets/useAgentDialogFocus-DSc2qY8p.js +0 -1
@@ -29,36 +29,26 @@ function prepareGoogleClassic(ctx, request) {
29
29
  const { model, size } = request.options;
30
30
  // Classic captures scalars once; each attempt reads live refs, signal and credentials.
31
31
  return { execute: async () => {
32
- try {
33
- const value = provider === "agy"
34
- ? await generateViaAgy(prompt, { references: request.references, signal: request.signal, requestId })
35
- : await generateViaGeminiApi(prompt, requireRuntimeContext(ctx), {
36
- model, size, signal: request.signal,
37
- ...(requestId !== undefined ? { requestId } : {}),
38
- references: request.references,
39
- });
40
- return { kind: "single", value };
41
- }
42
- catch (error) {
43
- throw error;
44
- } // Preserve native identity; caller owns normalization.
32
+ const value = provider === "agy"
33
+ ? await generateViaAgy(prompt, { references: request.references, signal: request.signal, requestId })
34
+ : await generateViaGeminiApi(prompt, requireRuntimeContext(ctx), {
35
+ model, size, signal: request.signal,
36
+ ...(requestId !== undefined ? { requestId } : {}),
37
+ references: request.references,
38
+ });
39
+ return { kind: "single", value };
45
40
  } };
46
41
  }
47
42
  async function runGoogleImage(ctx, request, input) {
48
- try {
49
- const { provider, signal, requestId, options } = request;
50
- if (provider === "agy") {
51
- return await generateViaAgy(input.prompt, { references: input.references, signal, requestId });
52
- }
53
- return await generateViaGeminiApi(input.prompt, request.surface === "node" ? requireRuntimeContext(ctx) : ctx, {
54
- model: options.model, size: options.size, signal,
55
- ...(requestId !== undefined ? { requestId } : {}),
56
- references: input.references,
57
- });
58
- }
59
- catch (error) {
60
- throw error;
43
+ const { provider, signal, requestId, options } = request;
44
+ if (provider === "agy") {
45
+ return await generateViaAgy(input.prompt, { references: input.references, signal, requestId });
61
46
  }
47
+ return await generateViaGeminiApi(input.prompt, request.surface === "node" ? requireRuntimeContext(ctx) : ctx, {
48
+ model: options.model, size: options.size, signal,
49
+ ...(requestId !== undefined ? { requestId } : {}),
50
+ references: input.references,
51
+ });
62
52
  }
63
53
  function googleSequence(result) {
64
54
  // Preserve the dense one-image projection; the caller owns the final persistence sweep.
@@ -68,30 +58,15 @@ function googleSequence(result) {
68
58
  };
69
59
  }
70
60
  export async function prepareGoogleExecution(ctx, request, _progress) {
71
- try {
72
- switch (request.surface) {
73
- case "classic": return prepareGoogleClassic(ctx, request);
74
- case "node":
75
- case "edit": return { execute: async () => {
76
- try {
77
- return { kind: "single", value: await runGoogleImage(ctx, request, googleInput(request)) };
78
- }
79
- catch (error) {
80
- throw error;
81
- } // Caller owns retries, cancellation and cleanup.
82
- } };
83
- case "multimode": return { execute: async () => {
84
- try {
85
- const result = await runGoogleImage(ctx, request, googleInput(request));
86
- return { kind: "sequence", value: googleSequence(result) };
87
- }
88
- catch (error) {
89
- throw error;
90
- }
91
- } };
92
- }
93
- }
94
- catch (error) {
95
- throw error;
61
+ switch (request.surface) {
62
+ case "classic": return prepareGoogleClassic(ctx, request);
63
+ case "node":
64
+ case "edit": return { execute: async () => {
65
+ return { kind: "single", value: await runGoogleImage(ctx, request, googleInput(request)) };
66
+ } };
67
+ case "multimode": return { execute: async () => {
68
+ const result = await runGoogleImage(ctx, request, googleInput(request));
69
+ return { kind: "sequence", value: googleSequence(result) };
70
+ } };
96
71
  }
97
72
  }
@@ -0,0 +1,55 @@
1
+ import { getProvider } from "../registry.js";
2
+ const LANE_ID = "grok-api";
3
+ const ERROR_PREFIX = getProvider(LANE_ID).errorPrefix;
4
+ /** Status codes worth retrying: transient upstream conditions, not bad input. */
5
+ const RETRYABLE_STATUSES = new Set([408, 425, 429, 500, 502, 503, 504]);
6
+ function readStatus(error) {
7
+ if (!error || typeof error !== "object")
8
+ return undefined;
9
+ const candidate = error;
10
+ return typeof candidate.status === "number" ? candidate.status
11
+ : typeof candidate.statusCode === "number" ? candidate.statusCode
12
+ : undefined;
13
+ }
14
+ function readCode(error) {
15
+ if (!error || typeof error !== "object")
16
+ return undefined;
17
+ const candidate = error;
18
+ return typeof candidate.code === "string" ? candidate.code : undefined;
19
+ }
20
+ export function createGrokApiAdapter(ctx) {
21
+ return {
22
+ laneId: LANE_ID,
23
+ validateAuth() {
24
+ return ctx.xaiApiKey
25
+ ? { ok: true }
26
+ : { ok: false, reason: "xAI API key missing" };
27
+ },
28
+ listModels() {
29
+ // Straight from the registry. A hand-written list here is exactly the
30
+ // drift the capability registry was built to remove.
31
+ return getProvider(LANE_ID).models;
32
+ },
33
+ normalizeError(error) {
34
+ const status = readStatus(error);
35
+ const rawCode = readCode(error);
36
+ const message = error instanceof Error ? error.message
37
+ : typeof error === "string" ? error
38
+ : "xAI request failed";
39
+ const code = !ERROR_PREFIX
40
+ ? rawCode ?? "UNKNOWN"
41
+ : rawCode?.startsWith(ERROR_PREFIX)
42
+ ? rawCode
43
+ : rawCode
44
+ ? `${ERROR_PREFIX}${rawCode}`
45
+ : `${ERROR_PREFIX}UNKNOWN`;
46
+ const retryable = status === undefined ? false : RETRYABLE_STATUSES.has(status);
47
+ return {
48
+ code,
49
+ message,
50
+ ...(status === undefined ? {} : { status }),
51
+ retryable,
52
+ };
53
+ },
54
+ };
55
+ }
@@ -7,131 +7,86 @@ export function isGrokRequest(request) {
7
7
  return request.provider === "grok" || request.provider === "grok-api";
8
8
  }
9
9
  async function prepareGrokClassic(ctx, request) {
10
- try {
11
- const { provider: activeProvider, prompt: generationPrompt, requestId } = request;
12
- const { model: imageModel, quality, size: effectiveSize, webSearchEnabled } = request.options;
13
- const grokRefs = request.providerUrl
14
- ? [{ b64: "", url: request.providerUrl, declaredMime: "image/png", detectedMime: "image/png" }, ...request.references]
15
- : request.references;
16
- // Keep classic's once-per-batch key and shared plan capture before any image attempt.
17
- const grokDirectApiKey = activeProvider === "grok-api" ? ctx.xaiApiKey : undefined;
18
- const sharedGrokPlan = await planGrokImage(generationPrompt, ctx, {
19
- model: resolveGrokQualityModel(imageModel, quality),
20
- size: effectiveSize,
21
- signal: request.signal,
22
- requestId,
23
- referenceCount: grokRefs.length,
24
- references: grokRefs,
25
- directApiKey: grokDirectApiKey,
26
- backgroundConstraint: request.backgroundConstraint,
27
- webSearchEnabled,
28
- });
29
- return { execute: async () => {
30
- try {
31
- const grokModel = resolveGrokQualityModel(imageModel, quality);
32
- const value = await generateViaGrok(generationPrompt, ctx, {
33
- model: grokModel,
34
- size: effectiveSize,
35
- signal: request.signal,
36
- requestId,
37
- plannedPrompt: sharedGrokPlan?.prompt,
38
- webSearchCalls: sharedGrokPlan?.webSearchCalls,
39
- references: grokRefs,
40
- directApiKey: grokDirectApiKey,
41
- });
42
- return { kind: "single", value };
43
- }
44
- catch (error) {
45
- throw error;
46
- } // Caller owns lifecycle and the existing error envelope.
47
- } };
48
- }
49
- catch (error) {
50
- throw error;
51
- }
10
+ const { provider: activeProvider, prompt: generationPrompt, requestId } = request;
11
+ const { model: imageModel, quality, size: effectiveSize, webSearchEnabled } = request.options;
12
+ const grokRefs = request.providerUrl
13
+ ? [{ b64: "", url: request.providerUrl, declaredMime: "image/png", detectedMime: "image/png" }, ...request.references]
14
+ : request.references;
15
+ // Keep classic's once-per-batch key and shared plan capture before any image attempt.
16
+ const grokDirectApiKey = activeProvider === "grok-api" ? ctx.xaiApiKey : undefined;
17
+ const sharedGrokPlan = await planGrokImage(generationPrompt, ctx, {
18
+ model: resolveGrokQualityModel(imageModel, quality),
19
+ size: effectiveSize,
20
+ signal: request.signal,
21
+ requestId,
22
+ referenceCount: grokRefs.length,
23
+ references: grokRefs,
24
+ directApiKey: grokDirectApiKey,
25
+ backgroundConstraint: request.backgroundConstraint,
26
+ webSearchEnabled,
27
+ });
28
+ return { execute: async () => {
29
+ const grokModel = resolveGrokQualityModel(imageModel, quality);
30
+ const value = await generateViaGrok(generationPrompt, ctx, {
31
+ model: grokModel,
32
+ size: effectiveSize,
33
+ signal: request.signal,
34
+ requestId,
35
+ plannedPrompt: sharedGrokPlan?.prompt,
36
+ webSearchCalls: sharedGrokPlan?.webSearchCalls,
37
+ references: grokRefs,
38
+ directApiKey: grokDirectApiKey,
39
+ });
40
+ return { kind: "single", value };
41
+ } };
52
42
  }
53
43
  function prepareGrokNode(ctx, request) {
54
44
  // The outer execution boundary checks current presence; retries retain this key.
55
45
  const grokDirectApiKey = request.provider === "grok-api" ? ctx.xaiApiKey : undefined;
56
46
  return { execute: async () => {
57
- try {
58
- return { kind: "single", value: await executeGrokNode(ctx, request, grokDirectApiKey) };
59
- }
60
- catch (error) {
61
- throw error;
62
- } // The caller owns retries and normalization.
47
+ return { kind: "single", value: await executeGrokNode(ctx, request, grokDirectApiKey) };
63
48
  } };
64
49
  }
65
50
  async function executeGrokNode(ctx, request, grokDirectApiKey) {
66
- try {
67
- const { sourceImage: parentB64, prompt: generationPrompt, references, requestId, signal, options } = request;
68
- const { model, size, webSearchEnabled } = options;
69
- const refsForRequest = request.contextMode === "parent-only" ? [] : references;
70
- return await generateViaGrok(generationPrompt, ctx, {
71
- model, size, requestId, signal,
72
- references: toGrokReferences(parentB64, refsForRequest),
73
- directApiKey: grokDirectApiKey,
74
- webSearchEnabled,
75
- });
76
- }
77
- catch (error) {
78
- throw error;
79
- }
51
+ const { sourceImage: parentB64, prompt: generationPrompt, references, requestId, signal, options } = request;
52
+ const { model, size, webSearchEnabled } = options;
53
+ const refsForRequest = request.contextMode === "parent-only" ? [] : references;
54
+ return await generateViaGrok(generationPrompt, ctx, {
55
+ model, size, requestId, signal,
56
+ references: toGrokReferences(parentB64, refsForRequest),
57
+ directApiKey: grokDirectApiKey,
58
+ webSearchEnabled,
59
+ });
80
60
  }
81
61
  async function executeGrokEdit(ctx, request) {
82
- try {
83
- const { provider, rawPrompt, sourceImage, signal, requestId, options } = request;
84
- const directApiKey = provider === "grok-api" ? ctx.xaiApiKey : undefined;
85
- return await editViaGrok(rawPrompt, sourceImage, ctx, {
86
- model: resolveGrokQualityModel(options.model, options.quality),
87
- size: options.size, signal, requestId, directApiKey,
88
- });
89
- }
90
- catch (error) {
91
- throw error;
92
- }
62
+ const { provider, rawPrompt, sourceImage, signal, requestId, options } = request;
63
+ const directApiKey = provider === "grok-api" ? ctx.xaiApiKey : undefined;
64
+ return await editViaGrok(rawPrompt, sourceImage, ctx, {
65
+ model: resolveGrokQualityModel(options.model, options.quality),
66
+ size: options.size, signal, requestId, directApiKey,
67
+ });
93
68
  }
94
69
  async function executeGrokMultimode(ctx, request, progress) {
95
- try {
96
- const { provider, prompt, references, signal, requestId, options, maxImages } = request;
97
- const directApiKey = provider === "grok-api" ? ctx.xaiApiKey : undefined;
98
- const grokRefs = request.providerUrl
99
- ? [{ b64: "", url: request.providerUrl }, ...references] : references;
100
- return await generateMultimodeViaGrok(prompt, ctx, {
101
- model: resolveGrokQualityModel(options.model, options.quality), maxImages,
102
- size: options.size, signal, requestId, references: grokRefs, directApiKey,
103
- onFinalImage: progress.onFinalImage,
104
- webSearchEnabled: options.webSearchEnabled,
105
- });
106
- }
107
- catch (error) {
108
- throw error;
109
- }
70
+ const { provider, prompt, references, signal, requestId, options, maxImages } = request;
71
+ const directApiKey = provider === "grok-api" ? ctx.xaiApiKey : undefined;
72
+ const grokRefs = request.providerUrl
73
+ ? [{ b64: "", url: request.providerUrl }, ...references] : references;
74
+ return await generateMultimodeViaGrok(prompt, ctx, {
75
+ model: resolveGrokQualityModel(options.model, options.quality), maxImages,
76
+ size: options.size, signal, requestId, references: grokRefs, directApiKey,
77
+ onFinalImage: progress.onFinalImage,
78
+ webSearchEnabled: options.webSearchEnabled,
79
+ });
110
80
  }
111
81
  export async function prepareGrokExecution(ctx, request, progress = {}) {
112
- try {
113
- switch (request.surface) {
114
- case "classic": return await prepareGrokClassic(ctx, request);
115
- case "node": return prepareGrokNode(ctx, request);
116
- case "edit": return { execute: async () => {
117
- try {
118
- return { kind: "single", value: await executeGrokEdit(ctx, request) };
119
- }
120
- catch (error) {
121
- throw error;
122
- } // Route owns failure normalization and job cleanup.
123
- } };
124
- case "multimode": return { execute: async () => {
125
- try {
126
- return { kind: "sequence", value: await executeGrokMultimode(ctx, request, progress) };
127
- }
128
- catch (error) {
129
- throw error;
130
- } // Caller owns partial-timeout recovery.
131
- } };
132
- }
133
- }
134
- catch (error) {
135
- throw error;
82
+ switch (request.surface) {
83
+ case "classic": return await prepareGrokClassic(ctx, request);
84
+ case "node": return prepareGrokNode(ctx, request);
85
+ case "edit": return { execute: async () => {
86
+ return { kind: "single", value: await executeGrokEdit(ctx, request) };
87
+ } };
88
+ case "multimode": return { execute: async () => {
89
+ return { kind: "sequence", value: await executeGrokMultimode(ctx, request, progress) };
90
+ } };
136
91
  }
137
92
  }
@@ -1,8 +1,14 @@
1
+ import { createApiAdapter } from "./api.js";
2
+ import { createGrokApiAdapter } from "./grok-api.js";
3
+ import { createGeminiApiAdapter } from "./gemini-api.js";
1
4
  import { createAtlasCloudAdapter } from "./atlascloud.js";
2
5
  import { createComfyAdapter } from "./comfy.js";
3
6
  import { createMinimaxAdapter } from "./minimax.js";
4
7
  import { createNaiAdapter } from "./nai.js";
5
8
  const ADAPTER_FACTORIES = {
9
+ api: createApiAdapter,
10
+ "grok-api": createGrokApiAdapter,
11
+ "gemini-api": createGeminiApiAdapter,
6
12
  minimax: createMinimaxAdapter,
7
13
  atlascloud: createAtlasCloudAdapter,
8
14
  comfy: createComfyAdapter,
@@ -1,3 +1,10 @@
1
+ /**
2
+ * MiniMax adapter: readiness, registry models, errors and image execution surfaces.
3
+ * The existing image adapter retains transport and provider protocol ownership.
4
+ */
5
+ import { generateViaMinimax } from "../../minimaxImageAdapter.js";
6
+ import { detectImageMimeFromB64 } from "../../refs.js";
7
+ import { requireRuntimeContext } from "../../runtimeContext.js";
1
8
  import { getProvider } from "../registry.js";
2
9
  const LANE_ID = "minimax";
3
10
  const ERROR_PREFIX = "MINIMAX_";
@@ -28,6 +35,7 @@ function readCode(error) {
28
35
  export function createMinimaxAdapter(ctx) {
29
36
  return {
30
37
  laneId: LANE_ID,
38
+ prepareImageExecution: prepareLaneImageExecution,
31
39
  validateAuth() {
32
40
  // Presence only. MiniMax publishes no key prefix or length rule, so a
33
41
  // format check would invent one and reject valid keys.
@@ -61,3 +69,58 @@ export function createMinimaxAdapter(ctx) {
61
69
  },
62
70
  };
63
71
  }
72
+ function prepareClassic(ctx, request) {
73
+ const { prompt: generationPrompt, requestId } = request;
74
+ const { model: imageModel, size: effectiveSize } = request.options;
75
+ // Capture scalars at prepare; ctx, refs, signal and lane options stay live.
76
+ return { execute: async () => {
77
+ const value = await generateViaMinimax(generationPrompt, requireRuntimeContext(ctx), {
78
+ model: imageModel, size: effectiveSize, signal: request.signal,
79
+ requestId, references: request.references,
80
+ });
81
+ return { kind: "single", value };
82
+ } };
83
+ }
84
+ function prepareNode(ctx, request) {
85
+ return { execute: async () => {
86
+ const { sourceImage: parentB64, rawPrompt: prompt, references, requestId, signal, options } = request;
87
+ const { model, size } = options;
88
+ const value = await generateViaMinimax(parentB64 ? `Edit this image: ${prompt}` : prompt, requireRuntimeContext(ctx), {
89
+ model, size, signal, requestId,
90
+ references: parentB64
91
+ ? [{ b64: parentB64, declaredMime: null, detectedMime: null }, ...references]
92
+ : references,
93
+ });
94
+ return { kind: "single", value };
95
+ } };
96
+ }
97
+ function prepareEdit(ctx, request) {
98
+ return { execute: async () => {
99
+ const { prompt, sourceImage, signal, requestId, options } = request;
100
+ const references = [{ b64: sourceImage, declaredMime: null, detectedMime: detectImageMimeFromB64(sourceImage) || null }];
101
+ const editPrompt = `Edit this image: ${prompt}`;
102
+ const params = { model: options.model, size: options.size, signal, ...(requestId !== undefined ? { requestId } : {}), references };
103
+ const value = await generateViaMinimax(editPrompt, ctx, params);
104
+ return { kind: "single", value };
105
+ } };
106
+ }
107
+ function prepareMultimode(ctx, request) {
108
+ return { execute: async () => {
109
+ const { rawPrompt, references, signal, requestId, options } = request;
110
+ const params = { model: options.model, size: options.size, signal, ...(requestId !== undefined ? { requestId } : {}), references };
111
+ const result = await generateViaMinimax(rawPrompt, ctx, params);
112
+ // Preserve the projection; the caller owns the final persistence sweep.
113
+ return { kind: "sequence", value: {
114
+ images: [{ b64: result.b64, ...(result.revisedPrompt !== undefined ? { revisedPrompt: result.revisedPrompt } : {}) }],
115
+ usage: result.usage, webSearchCalls: result.webSearchCalls,
116
+ } };
117
+ } };
118
+ }
119
+ async function prepareLaneImageExecution(ctx, request, _progress) {
120
+ switch (request.surface) {
121
+ case "classic": return prepareClassic(ctx, request);
122
+ case "node": return prepareNode(ctx, request);
123
+ case "edit": return prepareEdit(ctx, request);
124
+ case "multimode": return prepareMultimode(ctx, request);
125
+ }
126
+ }
@@ -1,3 +1,9 @@
1
+ /**
2
+ * NovelAI adapter: readiness, registry models, errors and image execution surfaces.
3
+ * The existing image adapter retains transport and provider protocol ownership.
4
+ */
5
+ import { generateViaNai } from "../../naiImageAdapter.js";
6
+ import { requireRuntimeContext } from "../../runtimeContext.js";
1
7
  import { getProvider } from "../registry.js";
2
8
  const LANE_ID = "nai";
3
9
  const ERROR_PREFIX = "NAI_";
@@ -25,6 +31,7 @@ function readCode(error) {
25
31
  export function createNaiAdapter(ctx) {
26
32
  return {
27
33
  laneId: LANE_ID,
34
+ prepareImageExecution: prepareLaneImageExecution,
28
35
  validateAuth() {
29
36
  // Presence only. NovelAI accepts a persistent token or a session JWT and
30
37
  // publishes no prefix or length rule, so a format check would invent one.
@@ -58,3 +65,51 @@ export function createNaiAdapter(ctx) {
58
65
  },
59
66
  };
60
67
  }
68
+ function prepareClassic(ctx, request) {
69
+ const { prompt: generationPrompt, requestId } = request;
70
+ const { model: imageModel, size: effectiveSize } = request.options;
71
+ // Capture scalars at prepare; ctx, refs, signal and lane options stay live.
72
+ return { execute: async () => {
73
+ // Text-to-image only: the caller already refused references.
74
+ const value = await generateViaNai(generationPrompt, requireRuntimeContext(ctx), {
75
+ model: imageModel, size: effectiveSize, signal: request.signal, requestId,
76
+ // Reuse the same normalized options as node and multimode.
77
+ ...request.nai,
78
+ });
79
+ return { kind: "single", value };
80
+ } };
81
+ }
82
+ function prepareNode(ctx, request) {
83
+ return { execute: async () => {
84
+ const { rawPrompt: prompt, requestId, signal, options } = request;
85
+ const { model, size } = options;
86
+ const value = await generateViaNai(prompt, requireRuntimeContext(ctx), {
87
+ model, size, signal, requestId, ...request.nai,
88
+ });
89
+ return { kind: "single", value };
90
+ } };
91
+ }
92
+ function prepareMultimode(ctx, request) {
93
+ return { execute: async () => {
94
+ const { rawPrompt, signal, requestId, options } = request;
95
+ // Text-to-image only: admission rejects references before startJob.
96
+ const result = await generateViaNai(rawPrompt, ctx, {
97
+ model: options.model, size: options.size, signal, requestId, ...request.nai,
98
+ });
99
+ // Preserve the projection; the caller owns the final persistence sweep.
100
+ return { kind: "sequence", value: {
101
+ images: [{ b64: result.b64, ...(result.revisedPrompt !== undefined ? { revisedPrompt: result.revisedPrompt } : {}) }],
102
+ usage: result.usage, webSearchCalls: result.webSearchCalls,
103
+ } };
104
+ } };
105
+ }
106
+ async function prepareLaneImageExecution(ctx, request, _progress) {
107
+ switch (request.surface) {
108
+ case "classic": return prepareClassic(ctx, request);
109
+ case "node": return prepareNode(ctx, request);
110
+ case "edit": return { execute: async () => {
111
+ throw new Error(`Unsupported legacy edit provider: ${request.provider}`);
112
+ } };
113
+ case "multimode": return prepareMultimode(ctx, request);
114
+ }
115
+ }
@@ -45,12 +45,7 @@ function prepareOpenaiClassic(ctx, request, _progress) {
45
45
  });
46
46
  };
47
47
  return { execute: async () => {
48
- try {
49
- return { kind: "single", value: await generateOne() };
50
- }
51
- catch (error) {
52
- throw error;
53
- } // Caller owns lifecycle and the existing error envelope.
48
+ return { kind: "single", value: await generateOne() };
54
49
  } };
55
50
  }
56
51
  async function executeOpenaiNode(ctx, request, progress) {
@@ -83,36 +78,16 @@ async function executeOpenaiMultimode(ctx, request, progress) {
83
78
  ...(progress.onFinalImage !== undefined ? { onFinalImage: progress.onFinalImage } : {}), signal });
84
79
  }
85
80
  export async function prepareOpenaiExecution(ctx, request, progress = {}) {
86
- try {
87
- switch (request.surface) {
88
- case "classic": return prepareOpenaiClassic(ctx, request, progress);
89
- case "node": return { execute: async () => {
90
- try {
91
- return { kind: "single", value: await executeOpenaiNode(ctx, request, progress) };
92
- }
93
- catch (error) {
94
- throw error;
95
- } // Caller owns retries and normalization.
96
- } };
97
- case "edit": return { execute: async () => {
98
- try {
99
- return { kind: "single", value: await executeOpenaiEdit(ctx, request) };
100
- }
101
- catch (error) {
102
- throw error;
103
- } // Route owns failure normalization and job cleanup.
104
- } };
105
- case "multimode": return { execute: async () => {
106
- try {
107
- return { kind: "sequence", value: await executeOpenaiMultimode(ctx, request, progress) };
108
- }
109
- catch (error) {
110
- throw error;
111
- } // Caller owns partial-timeout recovery.
112
- } };
113
- }
114
- }
115
- catch (error) {
116
- throw error;
81
+ switch (request.surface) {
82
+ case "classic": return prepareOpenaiClassic(ctx, request, progress);
83
+ case "node": return { execute: async () => {
84
+ return { kind: "single", value: await executeOpenaiNode(ctx, request, progress) };
85
+ } };
86
+ case "edit": return { execute: async () => {
87
+ return { kind: "single", value: await executeOpenaiEdit(ctx, request) };
88
+ } };
89
+ case "multimode": return { execute: async () => {
90
+ return { kind: "sequence", value: await executeOpenaiMultimode(ctx, request, progress) };
91
+ } };
117
92
  }
118
93
  }
@@ -1,3 +1,4 @@
1
+ import { getProviderAdapter } from "../adapters/index.js";
1
2
  import { assertDirectGrokKey } from "./admission.js";
2
3
  import { isLegacyExecutionRequest, prepareLegacyImageExecution } from "./legacy.js";
3
4
  import { isOpenaiRequest, prepareOpenaiExecution } from "../adapters/openaiExecution.js";
@@ -10,25 +11,18 @@ function prepareSelected(ctx, request, progress) {
10
11
  return prepareGrokExecution(ctx, request, progress);
11
12
  if (isGoogleRequest(request))
12
13
  return prepareGoogleExecution(ctx, request, progress);
14
+ const adapter = getProviderAdapter(ctx, request.provider);
15
+ if (adapter?.prepareImageExecution)
16
+ return adapter.prepareImageExecution(ctx, request, progress);
13
17
  if (isLegacyExecutionRequest(request))
14
18
  return prepareLegacyImageExecution(ctx, request, progress);
15
19
  throw new Error("Unreachable image execution provider");
16
20
  }
17
21
  export async function prepareImageExecution(ctx, request, progress) {
18
- try {
19
- assertDirectGrokKey(ctx, request.provider);
20
- const prepared = await prepareSelected(ctx, request, progress);
21
- return { execute: async () => {
22
- try {
23
- assertDirectGrokKey(ctx, request.provider);
24
- return await prepared.execute();
25
- }
26
- catch (error) {
27
- throw error;
28
- } // Preserve transport identity; callers own normalization.
29
- } };
30
- }
31
- catch (error) {
32
- throw error;
33
- }
22
+ assertDirectGrokKey(ctx, request.provider);
23
+ const prepared = await prepareSelected(ctx, request, progress);
24
+ return { execute: async () => {
25
+ assertDirectGrokKey(ctx, request.provider);
26
+ return await prepared.execute();
27
+ } };
34
28
  }