@henjicc/ai-sdk 0.8.0 → 0.10.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 (704) hide show
  1. package/CHANGELOG.md +275 -211
  2. package/README.md +580 -577
  3. package/dist/capabilities/speech-recognition/bailian/module.js +40 -26
  4. package/dist/capabilities/speech-recognition/bailian/parse.js +9 -2
  5. package/dist/capabilities/speech-recognition/bailian/presets.d.ts +9 -1
  6. package/dist/capabilities/speech-recognition/bailian/presets.js +7 -2
  7. package/dist/capabilities/speech-recognition/bailian/realtime/presets.d.ts +2 -1
  8. package/dist/capabilities/speech-recognition/bailian/realtime/presets.js +2 -0
  9. package/dist/capabilities/speech-recognition/bailian/types.d.ts +2 -0
  10. package/dist/capabilities/speech-recognition/bailian/upload.js +11 -58
  11. package/dist/capabilities/speech-recognition/index.d.ts +5 -0
  12. package/dist/capabilities/speech-recognition/siliconflow/presets.d.ts +2 -3
  13. package/dist/capabilities/speech-recognition/siliconflow/presets.js +0 -2
  14. package/dist/capabilities/translation/bailian/types.d.ts +3 -0
  15. package/dist/capabilities/translation/bailian/types.js +6 -4
  16. package/dist/catalog/apimart/flux-3-image.model.d.ts +3 -0
  17. package/dist/catalog/apimart/flux-3-image.model.js +62 -0
  18. package/dist/catalog/apimart/flux-3-video.model.d.ts +3 -0
  19. package/dist/catalog/apimart/flux-3-video.model.js +120 -0
  20. package/dist/catalog/apimart/gemini-omni-1.2-flash.model.d.ts +3 -0
  21. package/dist/catalog/apimart/gemini-omni-1.2-flash.model.js +175 -0
  22. package/dist/catalog/apimart/gemini-omni-flash.model.js +30 -37
  23. package/dist/catalog/apimart/gpt-image-2.5.model.js +1 -1
  24. package/dist/catalog/apimart/gpt-image-2.6.model.d.ts +3 -0
  25. package/dist/catalog/apimart/gpt-image-2.6.model.js +103 -0
  26. package/dist/catalog/apimart/gpt-image-2.model.js +1 -1
  27. package/dist/catalog/apimart/grok-imagine-2.0.model.js +1 -1
  28. package/dist/catalog/apimart/grok-imagine-video-1.5.model.d.ts +3 -0
  29. package/dist/catalog/apimart/grok-imagine-video-1.5.model.js +85 -0
  30. package/dist/catalog/apimart/happyhorse-1.1.model.d.ts +3 -0
  31. package/dist/catalog/apimart/happyhorse-1.1.model.js +78 -0
  32. package/dist/catalog/apimart/kling-3.0-omni.model.js +12 -2
  33. package/dist/catalog/apimart/kling-3.0-turbo.model.js +5 -2
  34. package/dist/catalog/apimart/kling-3.0.model.js +1 -1
  35. package/dist/catalog/apimart/kling-4.0.model.d.ts +3 -0
  36. package/dist/catalog/apimart/kling-4.0.model.js +149 -0
  37. package/dist/catalog/apimart/midjourney-video.model.js +31 -32
  38. package/dist/catalog/apimart/midjourney.model.js +11 -1
  39. package/dist/catalog/apimart/minimax-h3-max.model.d.ts +3 -0
  40. package/dist/catalog/apimart/minimax-h3-max.model.js +101 -0
  41. package/dist/catalog/apimart/minimax-h3.model.js +8 -3
  42. package/dist/catalog/apimart/nano-banana-2-lite.model.js +1 -1
  43. package/dist/catalog/apimart/nano-banana-2.1.model.d.ts +2 -0
  44. package/dist/catalog/apimart/nano-banana-2.1.model.js +49 -0
  45. package/dist/catalog/apimart/nano-banana-2.model.js +1 -1
  46. package/dist/catalog/apimart/nano-banana-pro.model.js +1 -1
  47. package/dist/catalog/apimart/qwen-image-3.0.model.js +1 -1
  48. package/dist/catalog/apimart/seedance-2.0-fast.model.js +1 -1
  49. package/dist/catalog/apimart/seedance-2.0-mini.model.js +4 -4
  50. package/dist/catalog/apimart/seedance-2.0.model.js +1 -1
  51. package/dist/catalog/apimart/seedance-2.5.model.js +27 -5
  52. package/dist/catalog/apimart/seedream-5.0-flash.model.d.ts +3 -0
  53. package/dist/catalog/apimart/seedream-5.0-flash.model.js +52 -0
  54. package/dist/catalog/apimart/seedream-5.0-lite.model.js +4 -4
  55. package/dist/catalog/apimart/seedream-5.0-pro.model.js +1 -1
  56. package/dist/catalog/apimart/veo-3.1.model.d.ts +3 -0
  57. package/dist/catalog/apimart/veo-3.1.model.js +132 -0
  58. package/dist/catalog/apimart/wan-2.7-image.model.d.ts +3 -0
  59. package/dist/catalog/apimart/wan-2.7-image.model.js +80 -0
  60. package/dist/catalog/apimart/wan-3.0.model.d.ts +3 -0
  61. package/dist/catalog/apimart/wan-3.0.model.js +101 -0
  62. package/dist/catalog/apimart/z-image-turbo.model.js +1 -1
  63. package/dist/catalog/audio/tts-common.d.ts +2 -1
  64. package/dist/catalog/audio/tts-common.js +5 -1
  65. package/dist/catalog/bailian/cosyvoice-v3.5.model.js +1 -1
  66. package/dist/catalog/bailian/minimax-h3.model.d.ts +3 -0
  67. package/dist/catalog/bailian/minimax-h3.model.js +95 -0
  68. package/dist/catalog/bailian/minimax-speech-2.8.model.js +1 -1
  69. package/dist/catalog/bailian/qwen-audio-3.1-tts-flash.model.js +14 -3
  70. package/dist/catalog/bailian/qwen-audio-3.1-tts-plus.model.d.ts +2 -0
  71. package/dist/catalog/bailian/qwen-audio-3.1-tts-plus.model.js +44 -0
  72. package/dist/catalog/bailian/qwen-image-3.0.model.js +1 -1
  73. package/dist/catalog/bailian/wan-3.0.model.d.ts +3 -0
  74. package/dist/catalog/bailian/wan-3.0.model.js +104 -0
  75. package/dist/catalog/bailian/z-image-turbo.model.js +1 -1
  76. package/dist/catalog/consumer-contract.d.ts +16 -1
  77. package/dist/catalog/consumer-contract.js +31 -0
  78. package/dist/catalog/continuation.d.ts +20 -0
  79. package/dist/catalog/continuation.js +41 -0
  80. package/dist/catalog/fal/bria-creative-upscale.model.js +1 -1
  81. package/dist/catalog/fal/eleven-v3-tts.model.js +1 -1
  82. package/dist/catalog/fal/eleven-v4-tts.model.d.ts +2 -0
  83. package/dist/catalog/fal/eleven-v4-tts.model.js +38 -0
  84. package/dist/catalog/fal/flux-3-video.model.d.ts +2 -0
  85. package/dist/catalog/fal/flux-3-video.model.js +187 -0
  86. package/dist/catalog/fal/flux-3.model.d.ts +2 -0
  87. package/dist/catalog/fal/flux-3.model.js +69 -0
  88. package/dist/catalog/fal/gemini-omni-1.2-flash.model.d.ts +2 -0
  89. package/dist/catalog/fal/gemini-omni-1.2-flash.model.js +129 -0
  90. package/dist/catalog/fal/gemini-omni-flash.model.js +1 -1
  91. package/dist/catalog/fal/gpt-image-2.5.model.js +1 -1
  92. package/dist/catalog/fal/gpt-image-2.6.model.d.ts +2 -0
  93. package/dist/catalog/fal/gpt-image-2.6.model.js +97 -0
  94. package/dist/catalog/fal/gpt-image-2.model.js +1 -1
  95. package/dist/catalog/fal/grok-imagine-2.0.model.js +1 -1
  96. package/dist/catalog/fal/grok-imagine-video-1.5.model.d.ts +2 -0
  97. package/dist/catalog/fal/grok-imagine-video-1.5.model.js +121 -0
  98. package/dist/catalog/fal/hailuo-02.model.js +8 -4
  99. package/dist/catalog/fal/hailuo-2.3.model.js +1 -1
  100. package/dist/catalog/fal/ic-light-v2.model.js +1 -1
  101. package/dist/catalog/fal/ideogram-upscale.model.js +1 -1
  102. package/dist/catalog/fal/kling-3.0-omni.model.js +1 -1
  103. package/dist/catalog/fal/kling-3.0-turbo.model.js +5 -2
  104. package/dist/catalog/fal/kling-3.0.model.js +4 -1
  105. package/dist/catalog/fal/kling-4.0-flash.model.d.ts +2 -0
  106. package/dist/catalog/fal/kling-4.0-flash.model.js +132 -0
  107. package/dist/catalog/fal/kling-4.0.model.d.ts +2 -0
  108. package/dist/catalog/fal/kling-4.0.model.js +169 -0
  109. package/dist/catalog/fal/kling-image-o1.model.js +1 -1
  110. package/dist/catalog/fal/kling-video-o1.model.js +18 -7
  111. package/dist/catalog/fal/kling-video-v2.6-pro.model.js +3 -2
  112. package/dist/catalog/fal/ltx-2.3.model.d.ts +2 -0
  113. package/dist/catalog/fal/ltx-2.3.model.js +223 -0
  114. package/dist/catalog/fal/ltx-2.model.js +2 -1
  115. package/dist/catalog/fal/minimax-h3-max.model.d.ts +2 -0
  116. package/dist/catalog/fal/minimax-h3-max.model.js +132 -0
  117. package/dist/catalog/fal/minimax-h3.model.js +3 -4
  118. package/dist/catalog/fal/minimax-speech-2.8.model.js +1 -1
  119. package/dist/catalog/fal/nano-banana-2.1.model.d.ts +2 -0
  120. package/dist/catalog/fal/nano-banana-2.1.model.js +68 -0
  121. package/dist/catalog/fal/nano-banana-2.model.js +1 -1
  122. package/dist/catalog/fal/nano-banana-pro.model.js +1 -1
  123. package/dist/catalog/fal/nano-banana.model.js +1 -1
  124. package/dist/catalog/fal/pixverse-v5.5.model.js +9 -4
  125. package/dist/catalog/fal/qwen-image-3.0.model.js +2 -2
  126. package/dist/catalog/fal/qwen3-tts-1.7b.model.js +4 -3
  127. package/dist/catalog/fal/seedance-2.0-fast.model.js +1 -1
  128. package/dist/catalog/fal/seedance-2.0-mini.model.js +1 -1
  129. package/dist/catalog/fal/seedance-2.0.model.js +1 -1
  130. package/dist/catalog/fal/seedance-2.5.model.js +5 -2
  131. package/dist/catalog/fal/seedance.model.js +3 -2
  132. package/dist/catalog/fal/seedream-5.0-lite.model.js +1 -1
  133. package/dist/catalog/fal/seedream-5.0-pro.model.js +1 -1
  134. package/dist/catalog/fal/seedream-v4.5.model.js +1 -1
  135. package/dist/catalog/fal/seedream-v4.model.js +1 -1
  136. package/dist/catalog/fal/seedvr2-image-upscale.model.js +1 -1
  137. package/dist/catalog/fal/topaz-image-upscale.model.js +1 -1
  138. package/dist/catalog/fal/topaz-transparent-upscale.model.js +1 -1
  139. package/dist/catalog/fal/utils/klingV4.d.ts +17 -0
  140. package/dist/catalog/fal/utils/klingV4.js +33 -0
  141. package/dist/catalog/fal/veo-3.1.model.js +5 -2
  142. package/dist/catalog/fal/vidu-q2.model.js +20 -8
  143. package/dist/catalog/fal/wan-2.5-preview.model.js +4 -1
  144. package/dist/catalog/fal/wan-3.0.model.d.ts +2 -0
  145. package/dist/catalog/fal/wan-3.0.model.js +135 -0
  146. package/dist/catalog/fal/z-image-turbo.model.js +10 -9
  147. package/dist/catalog/grsai/gpt-image-2.5.model.js +13 -31
  148. package/dist/catalog/grsai/gpt-image-2.6.model.d.ts +2 -0
  149. package/dist/catalog/grsai/gpt-image-2.6.model.js +37 -0
  150. package/dist/catalog/grsai/gpt-image-2.model.js +5 -2
  151. package/dist/catalog/grsai/nano-banana-2-lite.model.js +1 -1
  152. package/dist/catalog/grsai/nano-banana-2.1.model.d.ts +2 -0
  153. package/dist/catalog/grsai/nano-banana-2.1.model.js +29 -0
  154. package/dist/catalog/grsai/nano-banana-2.model.js +1 -1
  155. package/dist/catalog/grsai/nano-banana-pro.model.js +1 -1
  156. package/dist/catalog/grsai/wan-3.0.model.d.ts +2 -0
  157. package/dist/catalog/grsai/wan-3.0.model.js +78 -0
  158. package/dist/catalog/index.d.ts +1 -0
  159. package/dist/catalog/index.js +205 -124
  160. package/dist/catalog/kie/eleven-v3-dialogue.model.js +1 -1
  161. package/dist/catalog/kie/flux-3-klein.model.d.ts +2 -0
  162. package/dist/catalog/kie/flux-3-klein.model.js +58 -0
  163. package/dist/catalog/kie/gemini-3.1-flash-tts.model.js +7 -4
  164. package/dist/catalog/kie/gemini-3.8-flash-lite-tts.model.d.ts +2 -0
  165. package/dist/catalog/kie/gemini-3.8-flash-lite-tts.model.js +11 -0
  166. package/dist/catalog/kie/gemini-3.8-flash-tts.model.d.ts +2 -0
  167. package/dist/catalog/kie/gemini-3.8-flash-tts.model.js +11 -0
  168. package/dist/catalog/kie/gemini-omni-video.model.js +8 -30
  169. package/dist/catalog/kie/gemini38Tts.d.ts +3 -0
  170. package/dist/catalog/kie/gemini38Tts.js +40 -0
  171. package/dist/catalog/kie/gpt-image-2.5.model.js +1 -1
  172. package/dist/catalog/kie/gpt-image-2.6.model.d.ts +2 -0
  173. package/dist/catalog/kie/gpt-image-2.6.model.js +87 -0
  174. package/dist/catalog/kie/gpt-image-2.model.js +8 -12
  175. package/dist/catalog/kie/grok-imagine-2.0.model.js +1 -1
  176. package/dist/catalog/kie/grok-imagine-video-1.5.model.d.ts +2 -0
  177. package/dist/catalog/kie/grok-imagine-video-1.5.model.js +52 -0
  178. package/dist/catalog/kie/grok-imagine-video.model.js +7 -3
  179. package/dist/catalog/kie/grok-imagine.model.js +4 -2
  180. package/dist/catalog/kie/hailuo-02.model.js +6 -4
  181. package/dist/catalog/kie/hailuo-2-3.model.js +1 -1
  182. package/dist/catalog/kie/happyhorse-1.1.model.js +5 -2
  183. package/dist/catalog/kie/kling-3.0-omni.model.js +51 -23
  184. package/dist/catalog/kie/kling-3.0-turbo.model.js +1 -1
  185. package/dist/catalog/kie/kling-3.0.model.js +1 -8
  186. package/dist/catalog/kie/kling-4.0-flash.model.d.ts +2 -0
  187. package/dist/catalog/kie/kling-4.0-flash.model.js +16 -0
  188. package/dist/catalog/kie/kling-4.0.model.d.ts +2 -0
  189. package/dist/catalog/kie/kling-4.0.model.js +17 -0
  190. package/dist/catalog/kie/kling-v2-6.model.js +1 -1
  191. package/dist/catalog/kie/kling40.d.ts +21 -0
  192. package/dist/catalog/kie/kling40.js +129 -0
  193. package/dist/catalog/kie/minimax-h3.model.js +16 -21
  194. package/dist/catalog/kie/nano-banana-2-lite.model.js +1 -1
  195. package/dist/catalog/kie/nano-banana-2.1.model.d.ts +2 -0
  196. package/dist/catalog/kie/nano-banana-2.1.model.js +34 -0
  197. package/dist/catalog/kie/nano-banana-2.model.js +2 -2
  198. package/dist/catalog/kie/nano-banana-pro.model.js +1 -1
  199. package/dist/catalog/kie/qwen-image-3.0.model.js +2 -10
  200. package/dist/catalog/kie/seedance-1.5-pro.model.js +2 -1
  201. package/dist/catalog/kie/seedance-2.0-fast.model.js +5 -1
  202. package/dist/catalog/kie/seedance-2.0-mini.model.js +5 -1
  203. package/dist/catalog/kie/seedance-2.0.model.js +5 -1
  204. package/dist/catalog/kie/seedance-2.5.model.js +10 -20
  205. package/dist/catalog/kie/seedance-v1.model.js +8 -4
  206. package/dist/catalog/kie/seedream-4.0.model.js +1 -1
  207. package/dist/catalog/kie/seedream-4.5.model.js +1 -1
  208. package/dist/catalog/kie/seedream-5.0-lite.model.js +1 -1
  209. package/dist/catalog/kie/seedream-5.0-pro.model.js +1 -1
  210. package/dist/catalog/kie/wan-3.0-prime.model.d.ts +2 -0
  211. package/dist/catalog/kie/wan-3.0-prime.model.js +15 -0
  212. package/dist/catalog/kie/wan-3.0.model.d.ts +2 -0
  213. package/dist/catalog/kie/wan-3.0.model.js +15 -0
  214. package/dist/catalog/kie/wan30.d.ts +10 -0
  215. package/dist/catalog/kie/wan30.js +78 -0
  216. package/dist/catalog/kie/z-image.model.js +1 -1
  217. package/dist/catalog/modelscope/flux-1-krea-dev.model.js +4 -2
  218. package/dist/catalog/modelscope/majicmix-realistic.model.js +3 -2
  219. package/dist/catalog/modelscope/modelscope-custom.model.js +3 -2
  220. package/dist/catalog/modelscope/qwen-image-2512.model.d.ts +5 -0
  221. package/dist/catalog/modelscope/{qwen-image.model.js → qwen-image-2512.model.js} +11 -8
  222. package/dist/catalog/modelscope/qwen-image-edit-2511.model.d.ts +5 -0
  223. package/dist/catalog/modelscope/{qwen-image-edit-2509.model.js → qwen-image-edit-2511.model.js} +9 -7
  224. package/dist/catalog/modelscope/sdxl-14-ckpt.model.js +3 -2
  225. package/dist/catalog/modelscope/utils.js +2 -2
  226. package/dist/catalog/modelscope/z-image-turbo.model.js +3 -2
  227. package/dist/catalog/ppio/kling-3.0.model.js +4 -1
  228. package/dist/catalog/ppio/minimax-speech.model.js +2 -1
  229. package/dist/catalog/shared/mediaPresence.d.ts +8 -1
  230. package/dist/catalog/shared/mediaPresence.js +21 -1
  231. package/dist/catalog/shared/nanoBanana21.d.ts +11 -0
  232. package/dist/catalog/shared/nanoBanana21.js +30 -0
  233. package/dist/catalog/shared/shotList.d.ts +31 -0
  234. package/dist/catalog/shared/shotList.js +48 -0
  235. package/dist/catalog/shared/subjectElements.d.ts +36 -0
  236. package/dist/catalog/shared/subjectElements.js +93 -0
  237. package/dist/catalog/siliconflow/moss-ttsd-0.5.model.js +1 -1
  238. package/dist/catalog/validate.js +14 -1
  239. package/dist/catalog/volcengine/seedance-2.0-fast.model.d.ts +2 -0
  240. package/dist/catalog/volcengine/seedance-2.0-fast.model.js +11 -0
  241. package/dist/catalog/volcengine/seedance-2.0-mini.model.d.ts +2 -0
  242. package/dist/catalog/volcengine/seedance-2.0-mini.model.js +11 -0
  243. package/dist/catalog/volcengine/seedance-2.0.model.d.ts +2 -0
  244. package/dist/catalog/volcengine/seedance-2.0.model.js +11 -0
  245. package/dist/catalog/volcengine/seedance-2.5.model.d.ts +2 -0
  246. package/dist/catalog/volcengine/seedance-2.5.model.js +11 -0
  247. package/dist/catalog/volcengine/seedance.d.ts +17 -0
  248. package/dist/catalog/volcengine/seedance.js +192 -0
  249. package/dist/catalog/volcengine/seedream-5.0-lite.model.js +2 -1
  250. package/dist/catalog/volcengine/seedream-5.0.js +1 -1
  251. package/dist/catalog/volcengine-speech/seed-icl-2.0.model.d.ts +1 -0
  252. package/dist/catalog/volcengine-speech/seed-icl-2.0.model.js +52 -10
  253. package/dist/catalog/volcengine-speech/seed-tts-2.0-voices.d.ts +2 -0
  254. package/dist/catalog/volcengine-speech/seed-tts-2.0-voices.js +438 -0
  255. package/dist/catalog/volcengine-speech/seed-tts-2.0.model.js +4 -4
  256. package/dist/discovery/index.js +13 -6
  257. package/dist/generation/core.d.ts +6 -0
  258. package/dist/generation/core.js +10 -2
  259. package/dist/index.d.ts +8 -0
  260. package/dist/index.js +9 -0
  261. package/dist/llm/bigmodel/preset.js +2 -1
  262. package/dist/llm/bigmodel/profiles.js +0 -6
  263. package/dist/llm/chat.d.ts +8 -0
  264. package/dist/llm/chat.js +18 -2
  265. package/dist/llm/chatTypes.d.ts +6 -0
  266. package/dist/llm/defaults.d.ts +2 -2
  267. package/dist/llm/defaults.js +3 -3
  268. package/dist/llm/groq/preset.js +18 -2
  269. package/dist/llm/modelCatalog.d.ts +9 -2
  270. package/dist/llm/modelCatalog.js +17 -4
  271. package/dist/llm/modelCatalogEntries.d.ts +2 -0
  272. package/dist/llm/modelCatalogEntries.js +197 -42
  273. package/dist/llm/providerPresets.d.ts +3 -0
  274. package/dist/llm/providerPresets.js +145 -32
  275. package/dist/llm/providerReasoningRequest.js +28 -11
  276. package/dist/llm/siliconflow/index.js +1 -1
  277. package/dist/llm/siliconflow/preset.js +30 -0
  278. package/dist/llm/types.d.ts +6 -0
  279. package/dist/packs/models/{ppio/wan-2.5-preview.d.ts → apimart/flux-3-image.d.ts} +1 -1
  280. package/dist/packs/models/apimart/flux-3-image.js +7 -0
  281. package/dist/packs/models/apimart/flux-3-video.d.ts +6 -0
  282. package/dist/packs/models/apimart/flux-3-video.js +7 -0
  283. package/dist/packs/models/apimart/gemini-omni-1.2-flash.d.ts +6 -0
  284. package/dist/packs/models/apimart/gemini-omni-1.2-flash.js +7 -0
  285. package/dist/packs/models/{modelscope/qwen-image.d.ts → apimart/gpt-image-2.6.d.ts} +1 -1
  286. package/dist/packs/models/apimart/gpt-image-2.6.js +7 -0
  287. package/dist/packs/models/apimart/grok-imagine-video-1.5.d.ts +6 -0
  288. package/dist/packs/models/apimart/grok-imagine-video-1.5.js +7 -0
  289. package/dist/packs/models/apimart/happyhorse-1.1.d.ts +6 -0
  290. package/dist/packs/models/apimart/happyhorse-1.1.js +7 -0
  291. package/dist/packs/models/apimart/kling-4.0.d.ts +6 -0
  292. package/dist/packs/models/apimart/kling-4.0.js +7 -0
  293. package/dist/packs/models/apimart/minimax-h3-max.d.ts +6 -0
  294. package/dist/packs/models/apimart/minimax-h3-max.js +7 -0
  295. package/dist/packs/models/{ppio/minimax-hailuo-2.3.d.ts → apimart/nano-banana-2.1.d.ts} +1 -1
  296. package/dist/packs/models/{ppio/minimax-hailuo-2.3.js → apimart/nano-banana-2.1.js} +4 -4
  297. package/dist/packs/models/apimart/seedream-5.0-flash.d.ts +6 -0
  298. package/dist/packs/models/apimart/seedream-5.0-flash.js +7 -0
  299. package/dist/packs/models/apimart/veo-3.1.d.ts +6 -0
  300. package/dist/packs/models/apimart/veo-3.1.js +7 -0
  301. package/dist/packs/models/apimart/wan-2.7-image.d.ts +6 -0
  302. package/dist/packs/models/apimart/wan-2.7-image.js +7 -0
  303. package/dist/packs/models/apimart/wan-3.0.d.ts +6 -0
  304. package/dist/packs/models/apimart/wan-3.0.js +7 -0
  305. package/dist/packs/models/bailian/cosyvoice-v3.5.js +1 -1
  306. package/dist/packs/models/bailian/minimax-h3.d.ts +6 -0
  307. package/dist/packs/models/bailian/minimax-h3.js +7 -0
  308. package/dist/packs/models/bailian/minimax-speech-2.8.js +1 -1
  309. package/dist/packs/models/bailian/qwen-audio-3.1-tts-flash.js +1 -1
  310. package/dist/packs/models/bailian/qwen-audio-3.1-tts-plus.d.ts +6 -0
  311. package/dist/packs/models/bailian/qwen-audio-3.1-tts-plus.js +7 -0
  312. package/dist/packs/models/bailian/qwen-image-3.0.js +1 -1
  313. package/dist/packs/models/bailian/wan-3.0.d.ts +6 -0
  314. package/dist/packs/models/bailian/wan-3.0.js +7 -0
  315. package/dist/packs/models/bailian/z-image-turbo.js +1 -1
  316. package/dist/packs/models/fal/eleven-v4-tts.d.ts +6 -0
  317. package/dist/packs/models/{ppio/wan-2.5-preview.js → fal/eleven-v4-tts.js} +4 -4
  318. package/dist/packs/models/fal/flux-3-video.d.ts +6 -0
  319. package/dist/packs/models/fal/flux-3-video.js +7 -0
  320. package/dist/packs/models/{ppio/wan-2.6.d.ts → fal/flux-3.d.ts} +1 -1
  321. package/dist/packs/models/{ppio/wan-2.6.js → fal/flux-3.js} +4 -4
  322. package/dist/packs/models/fal/gemini-omni-1.2-flash.d.ts +6 -0
  323. package/dist/packs/models/fal/gemini-omni-1.2-flash.js +7 -0
  324. package/dist/packs/models/fal/gpt-image-2.6.d.ts +6 -0
  325. package/dist/packs/models/fal/gpt-image-2.6.js +7 -0
  326. package/dist/packs/models/fal/grok-imagine-video-1.5.d.ts +6 -0
  327. package/dist/packs/models/fal/grok-imagine-video-1.5.js +7 -0
  328. package/dist/packs/models/fal/kling-4.0-flash.d.ts +6 -0
  329. package/dist/packs/models/fal/kling-4.0-flash.js +7 -0
  330. package/dist/packs/models/fal/kling-4.0.d.ts +6 -0
  331. package/dist/packs/models/{ppio/wan-2.7.js → fal/kling-4.0.js} +4 -4
  332. package/dist/packs/models/{ppio/wan-2.7.d.ts → fal/ltx-2.3.d.ts} +1 -1
  333. package/dist/packs/models/fal/ltx-2.3.js +7 -0
  334. package/dist/packs/models/fal/minimax-h3-max.d.ts +6 -0
  335. package/dist/packs/models/fal/minimax-h3-max.js +7 -0
  336. package/dist/packs/models/fal/nano-banana-2.1.d.ts +6 -0
  337. package/dist/packs/models/fal/nano-banana-2.1.js +7 -0
  338. package/dist/packs/models/fal/wan-3.0.d.ts +6 -0
  339. package/dist/packs/models/fal/wan-3.0.js +7 -0
  340. package/dist/packs/models/grsai/gpt-image-2.6.d.ts +6 -0
  341. package/dist/packs/models/grsai/gpt-image-2.6.js +7 -0
  342. package/dist/packs/models/grsai/nano-banana-2.1.d.ts +6 -0
  343. package/dist/packs/models/grsai/nano-banana-2.1.js +7 -0
  344. package/dist/packs/models/grsai/wan-3.0.d.ts +6 -0
  345. package/dist/packs/models/grsai/wan-3.0.js +7 -0
  346. package/dist/packs/models/kie/flux-3-klein.d.ts +6 -0
  347. package/dist/packs/models/kie/flux-3-klein.js +7 -0
  348. package/dist/packs/models/kie/gemini-3.8-flash-lite-tts.d.ts +6 -0
  349. package/dist/packs/models/kie/gemini-3.8-flash-lite-tts.js +7 -0
  350. package/dist/packs/models/kie/{eleven-turbo-2.5-tts.d.ts → gemini-3.8-flash-tts.d.ts} +1 -1
  351. package/dist/packs/models/kie/{eleven-turbo-2.5-tts.js → gemini-3.8-flash-tts.js} +1 -1
  352. package/dist/packs/models/kie/gpt-image-2.6.d.ts +6 -0
  353. package/dist/packs/models/kie/gpt-image-2.6.js +7 -0
  354. package/dist/packs/models/kie/grok-imagine-video-1.5.d.ts +6 -0
  355. package/dist/packs/models/kie/grok-imagine-video-1.5.js +7 -0
  356. package/dist/packs/models/kie/kling-4.0-flash.d.ts +6 -0
  357. package/dist/packs/models/kie/kling-4.0-flash.js +7 -0
  358. package/dist/packs/models/kie/kling-4.0.d.ts +6 -0
  359. package/dist/packs/models/kie/kling-4.0.js +7 -0
  360. package/dist/packs/models/kie/nano-banana-2.1.d.ts +6 -0
  361. package/dist/packs/models/kie/nano-banana-2.1.js +7 -0
  362. package/dist/packs/models/kie/wan-3.0-prime.d.ts +6 -0
  363. package/dist/packs/models/kie/wan-3.0-prime.js +7 -0
  364. package/dist/packs/models/kie/wan-3.0.d.ts +6 -0
  365. package/dist/packs/models/kie/wan-3.0.js +7 -0
  366. package/dist/packs/models/modelscope/flux-1-krea-dev.js +1 -1
  367. package/dist/packs/models/modelscope/majicmix-realistic.js +1 -1
  368. package/dist/packs/models/modelscope/modelscope-custom.js +1 -1
  369. package/dist/packs/models/modelscope/qwen-image-2512.d.ts +6 -0
  370. package/dist/packs/models/modelscope/{qwen-image.js → qwen-image-2512.js} +2 -2
  371. package/dist/packs/models/modelscope/{qwen-image-edit-2509.d.ts → qwen-image-edit-2511.d.ts} +1 -1
  372. package/dist/packs/models/modelscope/{qwen-image-edit-2509.js → qwen-image-edit-2511.js} +2 -2
  373. package/dist/packs/models/modelscope/sdxl-14-ckpt.js +1 -1
  374. package/dist/packs/models/modelscope/z-image-turbo.js +1 -1
  375. package/dist/packs/models/volcengine/seedance-2.0-fast.d.ts +6 -0
  376. package/dist/packs/models/volcengine/seedance-2.0-fast.js +7 -0
  377. package/dist/packs/models/volcengine/seedance-2.0-mini.d.ts +6 -0
  378. package/dist/packs/models/volcengine/seedance-2.0-mini.js +7 -0
  379. package/dist/packs/models/volcengine/seedance-2.0.d.ts +6 -0
  380. package/dist/packs/models/volcengine/seedance-2.0.js +7 -0
  381. package/dist/packs/models/volcengine/seedance-2.5.d.ts +6 -0
  382. package/dist/packs/models/volcengine/seedance-2.5.js +7 -0
  383. package/dist/packs/models/volcengine/seedream-5.0-flash.js +1 -1
  384. package/dist/packs/models/volcengine/seedream-5.0-lite.js +1 -1
  385. package/dist/packs/models/volcengine/seedream-5.0-pro.js +1 -1
  386. package/dist/packs/provider-adapters/bailian.js +1 -1
  387. package/dist/packs/provider-adapters/modelscope.js +1 -1
  388. package/dist/packs/provider-adapters/volcengine.js +1 -1
  389. package/dist/packs/provider-packs/apimart.d.ts +1 -1
  390. package/dist/packs/provider-packs/apimart.js +35 -22
  391. package/dist/packs/provider-packs/bailian.d.ts +1 -1
  392. package/dist/packs/provider-packs/bailian.js +8 -5
  393. package/dist/packs/provider-packs/fal.d.ts +1 -1
  394. package/dist/packs/provider-packs/fal.js +52 -40
  395. package/dist/packs/provider-packs/grsai.d.ts +1 -1
  396. package/dist/packs/provider-packs/grsai.js +8 -5
  397. package/dist/packs/provider-packs/kie.d.ts +1 -1
  398. package/dist/packs/provider-packs/kie.js +41 -32
  399. package/dist/packs/provider-packs/modelscope.js +2 -2
  400. package/dist/packs/provider-packs/ppio.d.ts +1 -1
  401. package/dist/packs/provider-packs/ppio.js +2 -6
  402. package/dist/packs/provider-packs/volcengine.d.ts +1 -1
  403. package/dist/packs/provider-packs/volcengine.js +8 -4
  404. package/dist/pricing/index.d.ts +1 -0
  405. package/dist/pricing/index.js +1 -0
  406. package/dist/pricing/mediaContext.d.ts +6 -1
  407. package/dist/pricing/mediaContext.js +12 -5
  408. package/dist/pricing/tokenPricing.d.ts +36 -0
  409. package/dist/pricing/tokenPricing.js +26 -0
  410. package/dist/providers/bailian.d.ts +1 -1
  411. package/dist/providers/bailian.js +71 -4
  412. package/dist/providers/fal.js +11 -1
  413. package/dist/providers/helpers.d.ts +1 -1
  414. package/dist/providers/helpers.js +17 -5
  415. package/dist/providers/kie.js +16 -5
  416. package/dist/providers/metadata.js +2 -2
  417. package/dist/providers/openai-speech.d.ts +6 -0
  418. package/dist/providers/openai-speech.js +31 -0
  419. package/dist/providers/providerAccessErrors.d.ts +3 -0
  420. package/dist/providers/providerAccessErrors.js +73 -0
  421. package/dist/providers/siliconflow.js +2 -27
  422. package/dist/providers/volcengine-speech.d.ts +1 -1
  423. package/dist/providers/volcengine-speech.js +31 -8
  424. package/dist/providers/volcengine-voice-clone.d.ts +3 -0
  425. package/dist/providers/volcengine-voice-clone.js +138 -0
  426. package/dist/providers/volcengine.d.ts +1 -1
  427. package/dist/providers/volcengine.js +89 -11
  428. package/dist/runtime/retry.js +3 -0
  429. package/dist/tool-packs/fal-erase/models/bria-eraser.model.js +1 -1
  430. package/dist/tool-packs/fal-erase/models/finegrain-eraser.model.js +1 -1
  431. package/dist/tool-packs/fal-erase/models/flux-pro-erase.model.js +1 -1
  432. package/dist/tool-packs/fal-image-utilities/models/control-light.model.js +1 -1
  433. package/dist/tool-packs/fal-image-utilities/models/outpaint.model.js +1 -1
  434. package/dist/tool-packs/fal-image-utilities/models/photo-restoration.model.js +1 -1
  435. package/dist/tool-packs/fal-image-utilities/models/pixelcut-background-removal.model.js +1 -1
  436. package/dist/tool-packs/fal-image-utilities/models/product-photography.model.js +1 -1
  437. package/dist/tool-packs/fal-image-utilities/models/relighting.model.js +1 -1
  438. package/dist/tool-packs/fal-multi-angle/models/flux-2-multiple-angles.model.js +1 -1
  439. package/dist/tool-packs/fal-multi-angle/models/perspective-change.model.js +1 -1
  440. package/dist/tool-packs/fal-multi-angle/models/qwen-image-edit-2511-multiple-angles.model.js +1 -1
  441. package/dist/types/model.d.ts +68 -12
  442. package/dist/types/model.js +3 -0
  443. package/dist/types/modelTags.d.ts +142 -0
  444. package/dist/types/modelTags.js +44 -0
  445. package/dist/types/runtime.d.ts +3 -0
  446. package/dist/types/speechTimings.d.ts +15 -0
  447. package/dist/types/speechTimings.js +1 -0
  448. package/dist/upload/apimart-upload.d.ts +1 -1
  449. package/dist/upload/apimart-upload.js +37 -15
  450. package/dist/upload/bailian-oss-upload.d.ts +32 -0
  451. package/dist/upload/bailian-oss-upload.js +74 -0
  452. package/dist/upload/{fal-legacy.js → fal-host-fetch.js} +2 -2
  453. package/dist/upload/fal-transport.d.ts +6 -0
  454. package/dist/upload/fal-transport.js +2 -1
  455. package/dist/upload/index.d.ts +2 -2
  456. package/dist/upload/index.js +4 -7
  457. package/dist/upload/kie-upload.d.ts +1 -1
  458. package/dist/upload/kie-upload.js +34 -12
  459. package/dist/upload/media-binary.js +1 -0
  460. package/dist/upload/media-fields.js +7 -2
  461. package/dist/upload/preprocess-core.d.ts +2 -0
  462. package/dist/upload/preprocess-core.js +2 -0
  463. package/dist/upload/preprocess.d.ts +1 -1
  464. package/dist/upload/preprocess.js +12 -3
  465. package/dist/upload/provider-preprocessors/apimart.d.ts +1 -1
  466. package/dist/upload/provider-preprocessors/apimart.js +13 -5
  467. package/dist/upload/provider-preprocessors/bailian.d.ts +8 -0
  468. package/dist/upload/provider-preprocessors/bailian.js +45 -0
  469. package/dist/upload/provider-preprocessors/kie.d.ts +1 -1
  470. package/dist/upload/provider-preprocessors/kie.js +26 -9
  471. package/dist/upload/provider-preprocessors/ppio.d.ts +1 -2
  472. package/dist/upload/provider-preprocessors/ppio.js +2 -29
  473. package/dist/upload/provider-preprocessors/public-host.d.ts +5 -0
  474. package/dist/upload/provider-preprocessors/public-host.js +7 -0
  475. package/dist/upload/provider-preprocessors/volcengine.d.ts +5 -0
  476. package/dist/upload/provider-preprocessors/volcengine.js +10 -0
  477. package/dist/upload/public-host-upload.d.ts +7 -0
  478. package/dist/upload/public-host-upload.js +55 -0
  479. package/dist/upload/upload-response.js +12 -7
  480. package/docs/README.md +26 -26
  481. package/docs/consumers.md +150 -124
  482. package/docs/llm-adaptation/README.md +180 -166
  483. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/DeepSeek.md +108 -104
  484. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/Kimi.md +94 -76
  485. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/MiniMax.md +89 -84
  486. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//345/260/217/347/261/263MiMo.md +126 -126
  487. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//346/231/272/350/260/261GLM.md +238 -234
  488. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//347/201/253/345/261/261/345/274/225/346/223/216.md +131 -87
  489. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//347/231/276/347/202/274Qwen.md +112 -84
  490. package/docs/llm-adaptation//346/226/207/346/241/243/351/207/207/351/233/206/346/211/213/345/206/214.md +88 -88
  491. package/docs/model-adaptation/Bria-Eraser/Bria-Eraser_Fal.md +32 -32
  492. package/docs/model-adaptation/Bria-/345/210/233/346/204/217/346/224/276/345/244/247/Bria-/345/210/233/346/204/217/346/224/276/345/244/247_Fal.md +31 -31
  493. package/docs/model-adaptation/ControlLight/ControlLight_Fal.md +85 -85
  494. package/docs/model-adaptation/Eleven-v4/Eleven-v4_Fal.md +49 -0
  495. package/docs/model-adaptation/FLUX-2-/345/244/232/350/247/222/345/272/246/FLUX-2-/345/244/232/350/247/222/345/272/246_Fal.md +107 -107
  496. package/docs/model-adaptation/FLUX-3/FLUX-3_APIMart.md +65 -0
  497. package/docs/model-adaptation/FLUX-3/FLUX-3_Fal.md +48 -0
  498. package/docs/model-adaptation/FLUX-3-Klein/FLUX-3-Klein_KIE.md +38 -0
  499. package/docs/model-adaptation/FLUX-3-Video/FLUX-3-Video_APIMart.md +84 -0
  500. package/docs/model-adaptation/FLUX-3-Video/FLUX-3-Video_Fal.md +80 -0
  501. package/docs/model-adaptation/Finegrain-Eraser/Finegrain-Eraser_Fal.md +31 -31
  502. package/docs/model-adaptation/Flux-Pro-Erase/Flux-Pro-Erase_Fal.md +34 -34
  503. package/docs/model-adaptation/Fun-ASR/Fun-ASR_/347/231/276/347/202/274.md +47 -47
  504. package/docs/model-adaptation/Fun-ASR-Flash-2026-06-15/Fun-ASR-Flash-2026-06-15_/347/231/276/347/202/274.md +45 -45
  505. package/docs/model-adaptation/Fun-ASR-Realtime/Fun-ASR-Realtime_/347/231/276/347/202/274.md +57 -57
  506. package/docs/model-adaptation/Fun-ASR-Realtime-2026-02-28/Fun-ASR-Realtime-2026-02-28_/347/231/276/347/202/274.md +39 -39
  507. package/docs/model-adaptation/GLM-5.3-Flash/GLM-5.3-Flash_/346/231/272/350/260/261.md +217 -213
  508. package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_APIMart.md +173 -173
  509. package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_Fal.md +94 -94
  510. package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_Grsai.md +138 -137
  511. package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_KIE.md +97 -93
  512. package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_APIMart.md +66 -66
  513. package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_Fal.md +55 -55
  514. package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_Grsai.md +59 -53
  515. package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_KIE.md +55 -55
  516. package/docs/model-adaptation/GPT-Image-2.6/GPT-Image-2.6_APIMart.md +101 -0
  517. package/docs/model-adaptation/GPT-Image-2.6/GPT-Image-2.6_Fal.md +55 -0
  518. package/docs/model-adaptation/GPT-Image-2.6/GPT-Image-2.6_Grsai.md +32 -0
  519. package/docs/model-adaptation/GPT-Image-2.6/GPT-Image-2.6_KIE.md +51 -0
  520. package/docs/model-adaptation/GPT-OSS-20B/GPT-OSS-20B_Groq.md +62 -62
  521. package/docs/model-adaptation/Gemini-3.8-Flash-Lite-TTS/Gemini-3.8-Flash-Lite-TTS_KIE.md +22 -0
  522. package/docs/model-adaptation/Gemini-3.8-Flash-TTS/Gemini-3.8-Flash-TTS_KIE.md +38 -0
  523. package/docs/model-adaptation/Gemini-Omni-1.2-Flash/Gemini-Omni-1.2-Flash_APIMart.md +79 -0
  524. package/docs/model-adaptation/Gemini-Omni-1.2-Flash/Gemini-Omni-1.2-Flash_Fal.md +60 -0
  525. package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_APIMart.md +131 -124
  526. package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_Fal.md +84 -84
  527. package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_KIE.md +132 -129
  528. package/docs/model-adaptation/Grok-Imagine/Grok-Imagine_KIE.md +38 -36
  529. package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_APIMart.md +250 -250
  530. package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_Fal.md +84 -84
  531. package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_KIE.md +105 -105
  532. package/docs/model-adaptation/Grok-Imagine-Video-1.5/Grok-Imagine-Video-1.5_APIMart.md +68 -0
  533. package/docs/model-adaptation/Grok-Imagine-Video-1.5/Grok-Imagine-Video-1.5_Fal.md +47 -0
  534. package/docs/model-adaptation/Grok-Imagine-Video-1.5/Grok-Imagine-Video-1.5_KIE.md +37 -0
  535. package/docs/model-adaptation/Hailuo-02/Hailuo-02_Fal.md +95 -93
  536. package/docs/model-adaptation/Hailuo-02/Hailuo-02_KIE.md +58 -56
  537. package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_Fal.md +88 -88
  538. package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_KIE.md +51 -51
  539. package/docs/model-adaptation/HappyHorse-1.1/HappyHorse-1.1_APIMart.md +66 -0
  540. package/docs/model-adaptation/HappyHorse-1.1/HappyHorse-1.1_KIE.md +31 -27
  541. package/docs/model-adaptation/IC-Light-v2/IC-Light-v2_Fal.md +99 -99
  542. package/docs/model-adaptation/Ideogram-/345/233/276/347/211/207/346/224/276/345/244/247/Ideogram-/345/233/276/347/211/207/346/224/276/345/244/247_Fal.md +41 -41
  543. package/docs/model-adaptation/Image-Apps-v2-/345/225/206/345/223/201/346/221/204/345/275/261/Image-Apps-v2-/345/225/206/345/223/201/346/221/204/345/275/261_Fal.md +72 -72
  544. package/docs/model-adaptation/Image-Apps-v2-/346/211/251/345/233/276/Image-Apps-v2-/346/211/251/345/233/276_Fal.md +93 -93
  545. package/docs/model-adaptation/Image-Apps-v2-/347/205/247/347/211/207/344/277/256/345/244/215/Image-Apps-v2-/347/205/247/347/211/207/344/277/256/345/244/215_Fal.md +86 -86
  546. package/docs/model-adaptation/Image-Apps-v2-/351/207/215/346/211/223/345/205/211/Image-Apps-v2-/351/207/215/346/211/223/345/205/211_Fal.md +84 -84
  547. package/docs/model-adaptation/Kling-3.0/Kling-3.0_APIMart.md +112 -112
  548. package/docs/model-adaptation/Kling-3.0/Kling-3.0_Fal.md +91 -89
  549. package/docs/model-adaptation/Kling-3.0/Kling-3.0_KIE.md +106 -106
  550. package/docs/model-adaptation/Kling-3.0/Kling-3.0_/346/264/276/346/254/247/344/272/221.md +120 -119
  551. package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_APIMart.md +130 -125
  552. package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_Fal.md +107 -107
  553. package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_KIE.md +148 -143
  554. package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_APIMart.md +88 -85
  555. package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_Fal.md +86 -83
  556. package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_KIE.md +84 -84
  557. package/docs/model-adaptation/Kling-4.0/Kling-4.0_APIMart.md +76 -0
  558. package/docs/model-adaptation/Kling-4.0/Kling-4.0_Fal.md +115 -0
  559. package/docs/model-adaptation/Kling-4.0/Kling-4.0_KIE.md +61 -0
  560. package/docs/model-adaptation/Kling-4.0-Flash/Kling-4.0-Flash_Fal.md +55 -0
  561. package/docs/model-adaptation/Kling-4.0-Flash/Kling-4.0-Flash_KIE.md +33 -0
  562. package/docs/model-adaptation/LTX-2.3/LTX-2.3_Fal.md +121 -0
  563. package/docs/model-adaptation/Midjourney/Midjourney_APIMart.md +402 -396
  564. package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_APIMart.md +237 -234
  565. package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_Fal.md +112 -108
  566. package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_KIE.md +118 -111
  567. package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_/347/231/276/347/202/274.md +65 -0
  568. package/docs/model-adaptation/MiniMax-H3-Max/MiniMax-H3-Max_APIMart.md +78 -0
  569. package/docs/model-adaptation/MiniMax-H3-Max/MiniMax-H3-Max_Fal.md +62 -0
  570. package/docs/model-adaptation/MiniMax-Speech/MiniMax-Speech_/346/264/276/346/254/247/344/272/221.md +170 -170
  571. package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_APIMart.md +89 -89
  572. package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_Fal.md +99 -99
  573. package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_Grsai.md +82 -82
  574. package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_KIE.md +72 -70
  575. package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_APIMart.md +79 -79
  576. package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_Grsai.md +65 -65
  577. package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_KIE.md +64 -64
  578. package/docs/model-adaptation/Nano-Banana-2.1/Nano-Banana-2.1_APIMart.md +35 -0
  579. package/docs/model-adaptation/Nano-Banana-2.1/Nano-Banana-2.1_Fal.md +37 -0
  580. package/docs/model-adaptation/Nano-Banana-2.1/Nano-Banana-2.1_Grsai.md +35 -0
  581. package/docs/model-adaptation/Nano-Banana-2.1/Nano-Banana-2.1_KIE.md +36 -0
  582. package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_APIMart.md +83 -83
  583. package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_Fal.md +89 -89
  584. package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_Grsai.md +82 -82
  585. package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_KIE.md +64 -64
  586. package/docs/model-adaptation/Pixelcut-/350/203/214/346/231/257/347/247/273/351/231/244/Pixelcut-/350/203/214/346/231/257/347/247/273/351/231/244_Fal.md +79 -79
  587. package/docs/model-adaptation/Qwen-Audio-3.1-TTS-Plus/Qwen-Audio-3.1-TTS-Plus_/347/231/276/347/202/274.md +59 -0
  588. package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_APIMart.md +117 -117
  589. package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_Fal.md +85 -84
  590. package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_KIE.md +103 -103
  591. package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_/347/231/276/347/202/274.md +138 -138
  592. package/docs/model-adaptation/Qwen-Image-Edit-2511-/345/244/232/350/247/222/345/272/246/Qwen-Image-Edit-2511-/345/244/232/350/247/222/345/272/246_Fal.md +57 -57
  593. package/docs/model-adaptation/Qwen-MT-Flash/Qwen-MT-Flash_/347/231/276/347/202/274.md +68 -68
  594. package/docs/model-adaptation/Qwen-MT-Lite/Qwen-MT-Lite_/347/231/276/347/202/274.md +40 -40
  595. package/docs/model-adaptation/Qwen-MT-Plus/Qwen-MT-Plus_/347/231/276/347/202/274.md +40 -40
  596. package/docs/model-adaptation/Qwen3-ASR-Flash/Qwen3-ASR-Flash_/347/231/276/347/202/274.md +44 -44
  597. package/docs/model-adaptation/Qwen3-ASR-Flash-2026-02-10/Qwen3-ASR-Flash-2026-02-10_/347/231/276/347/202/274.md +37 -37
  598. package/docs/model-adaptation/Qwen3-ASR-Flash-Filetrans/Qwen3-ASR-Flash-Filetrans_/347/231/276/347/202/274.md +45 -45
  599. package/docs/model-adaptation/Qwen3-ASR-Flash-Realtime/Qwen3-ASR-Flash-Realtime_/347/231/276/347/202/274.md +58 -58
  600. package/docs/model-adaptation/Qwen3-ASR-Flash-Realtime-2026-02-10/Qwen3-ASR-Flash-Realtime-2026-02-10_/347/231/276/347/202/274.md +37 -37
  601. package/docs/model-adaptation/README.md +371 -328
  602. package/docs/model-adaptation/Seed-ICL-2.0/Seed-ICL-2.0_/347/201/253/345/261/261/345/274/225/346/223/216.md +65 -0
  603. package/docs/model-adaptation/SeedASR-2.0-File/SeedASR-2.0-File_/347/201/253/345/261/261/345/274/225/346/223/216.md +115 -115
  604. package/docs/model-adaptation/SeedASR-2.0-Realtime/SeedASR-2.0-Realtime_/347/201/253/345/261/261/345/274/225/346/223/216.md +147 -147
  605. package/docs/model-adaptation/SeedVR2-/345/233/276/347/211/207/346/224/276/345/244/247/SeedVR2-/345/233/276/347/211/207/346/224/276/345/244/247_Fal.md +45 -45
  606. package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_APIMart.md +121 -121
  607. package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_Fal.md +97 -97
  608. package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_KIE.md +87 -86
  609. package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_/347/201/253/345/261/261/345/274/225/346/223/216.md +101 -0
  610. package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_APIMart.md +89 -89
  611. package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_Fal.md +95 -95
  612. package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_KIE.md +79 -78
  613. package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_/347/201/253/345/261/261/345/274/225/346/223/216.md +98 -0
  614. package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_APIMart.md +93 -89
  615. package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_Fal.md +96 -96
  616. package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_KIE.md +79 -78
  617. package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_/347/201/253/345/261/261/345/274/225/346/223/216.md +98 -0
  618. package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_APIMart.md +217 -212
  619. package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_Fal.md +98 -94
  620. package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_KIE.md +94 -89
  621. package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_/347/201/253/345/261/261/345/274/225/346/223/216.md +102 -0
  622. package/docs/model-adaptation/Seedream-5.0-Flash/Seedream-5.0-Flash_APIMart.md +64 -0
  623. package/docs/model-adaptation/Seedream-5.0-Flash/Seedream-5.0-Flash_/347/201/253/345/261/261/345/274/225/346/223/216.md +18 -18
  624. package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_APIMart.md +113 -106
  625. package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_Fal.md +91 -91
  626. package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_KIE.md +89 -89
  627. package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_/347/201/253/345/261/261/345/274/225/346/223/216.md +110 -108
  628. package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_APIMart.md +194 -194
  629. package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_Fal.md +100 -100
  630. package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_KIE.md +141 -141
  631. package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_/347/201/253/345/261/261/345/274/225/346/223/216.md +137 -137
  632. package/docs/model-adaptation/SenseVoiceSmall/SenseVoiceSmall_/347/241/205/345/237/272/346/265/201/345/212/250.md +73 -73
  633. package/docs/model-adaptation/TTS-/345/244/232/344/276/233/345/272/224/345/225/206-2026-09.md +52 -6
  634. package/docs/model-adaptation/TTS-/346/227/266/351/227/264/346/210/263-2026-10.md +36 -0
  635. package/docs/model-adaptation/Topaz-/345/233/276/347/211/207/346/224/276/345/244/247/Topaz-/345/233/276/347/211/207/346/224/276/345/244/247_Fal.md +87 -87
  636. package/docs/model-adaptation/Topaz-/351/200/217/346/230/216/345/233/276/346/224/276/345/244/247/Topaz-/351/200/217/346/230/216/345/233/276/346/224/276/345/244/247_Fal.md +34 -34
  637. package/docs/model-adaptation/Veo-3.1/Veo-3.1_APIMart.md +90 -0
  638. package/docs/model-adaptation/Wan-2.7-Image/Wan-2.7-Image_APIMart.md +81 -0
  639. package/docs/model-adaptation/Wan-3.0/Wan-3.0_APIMart.md +74 -0
  640. package/docs/model-adaptation/Wan-3.0/Wan-3.0_Fal.md +60 -0
  641. package/docs/model-adaptation/Wan-3.0/Wan-3.0_Grsai.md +35 -0
  642. package/docs/model-adaptation/Wan-3.0/Wan-3.0_KIE.md +38 -0
  643. package/docs/model-adaptation/Wan-3.0/Wan-3.0_/347/231/276/347/202/274.md +96 -0
  644. package/docs/model-adaptation/Wan-3.0-Prime/Wan-3.0-Prime_KIE.md +20 -0
  645. package/docs/model-adaptation/Whisper-Large-v3/Whisper-Large-v3_Groq.md +80 -80
  646. package/docs/model-adaptation/Whisper-Large-v3-Turbo/Whisper-Large-v3-Turbo_Groq.md +79 -79
  647. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_APIMart.md +88 -88
  648. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_Fal.md +103 -95
  649. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_KIE.md +71 -71
  650. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_/347/231/276/347/202/274.md +122 -122
  651. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_/351/255/224/346/220/255.md +99 -97
  652. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/APIMart.md +240 -240
  653. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Fal.md +190 -172
  654. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Groq.md +136 -121
  655. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Grsai.md +217 -217
  656. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/KIE.md +159 -131
  657. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//345/200/231/351/200/211/344/276/233/345/272/224/345/225/206/350/260/203/347/240/224-/345/233/276/347/211/207/345/267/245/345/205/267.md +151 -151
  658. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//345/277/253/351/200/237/351/200/202/351/205/215/344/276/233/345/272/224/345/225/206.md +65 -65
  659. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//346/264/276/346/254/247/344/272/221.md +170 -147
  660. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//347/201/253/345/261/261/345/274/225/346/223/216.md +191 -183
  661. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//347/231/276/347/202/274.md +339 -282
  662. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//347/241/205/345/237/272/346/265/201/345/212/250.md +180 -153
  663. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//351/255/224/346/220/255.md +205 -207
  664. package/docs/model-adaptation//346/226/207/346/241/243/351/207/207/351/233/206/346/211/213/345/206/214.md +339 -338
  665. package/docs/model-adaptation//351/200/217/350/247/206/345/217/230/346/215/242//351/200/217/350/247/206/345/217/230/346/215/242_Fal.md +59 -59
  666. package/docs//346/216/245/345/205/245/346/214/207/345/215/227/Electron.md +77 -77
  667. package/docs//346/216/245/345/205/245/346/214/207/345/215/227/Tauri.md +81 -81
  668. package/docs//346/216/245/345/205/245/346/214/207/345/215/227/UXP.md +169 -169
  669. package/docs//346/216/245/345/205/245/346/214/207/345/215/227//344/276/233/345/272/224/345/225/206/345/237/237/345/220/215.md +83 -83
  670. package/docs//346/216/245/345/205/245/346/214/207/345/215/227//351/224/231/350/257/257/345/244/204/347/220/206.md +72 -72
  671. package/examples/form-renderer/README.md +17 -17
  672. package/examples/form-renderer/cli.ts +32 -32
  673. package/examples/form-renderer/index.ts +144 -144
  674. package/examples/form-renderer/package.json +16 -16
  675. package/examples/form-renderer/tsconfig.json +14 -14
  676. package/examples/llm-chat/README.md +38 -38
  677. package/examples/llm-chat/index.ts +100 -100
  678. package/examples/llm-chat/package.json +19 -19
  679. package/examples/llm-chat/tsconfig.json +14 -14
  680. package/examples/minimal-node/README.md +31 -31
  681. package/examples/minimal-node/index.ts +138 -138
  682. package/examples/minimal-node/package.json +17 -17
  683. package/examples/minimal-node/tsconfig.json +14 -14
  684. package/package.json +259 -258
  685. package/dist/catalog/grsai/gptImage25Sizes.d.ts +0 -1
  686. package/dist/catalog/grsai/gptImage25Sizes.js +0 -76
  687. package/dist/catalog/kie/eleven-turbo-2.5-tts.model.d.ts +0 -2
  688. package/dist/catalog/kie/eleven-turbo-2.5-tts.model.js +0 -29
  689. package/dist/catalog/modelscope/qwen-image-edit-2509.model.d.ts +0 -5
  690. package/dist/catalog/modelscope/qwen-image.model.d.ts +0 -5
  691. package/dist/catalog/ppio/minimax-hailuo-2.3.model.d.ts +0 -7
  692. package/dist/catalog/ppio/minimax-hailuo-2.3.model.js +0 -114
  693. package/dist/catalog/ppio/wan-2.5-preview.model.d.ts +0 -7
  694. package/dist/catalog/ppio/wan-2.5-preview.model.js +0 -198
  695. package/dist/catalog/ppio/wan-2.6.model.d.ts +0 -7
  696. package/dist/catalog/ppio/wan-2.6.model.js +0 -206
  697. package/dist/catalog/ppio/wan-2.7.model.d.ts +0 -2
  698. package/dist/catalog/ppio/wan-2.7.model.js +0 -373
  699. package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_/346/264/276/346/254/247/344/272/221.md +0 -70
  700. package/docs/model-adaptation/TeleSpeechASR/TeleSpeechASR_/347/241/205/345/237/272/346/265/201/345/212/250.md +0 -76
  701. package/docs/model-adaptation/Wan-2.5-Preview/Wan-2.5-Preview_/346/264/276/346/254/247/344/272/221.md +0 -82
  702. package/docs/model-adaptation/Wan-2.6/Wan-2.6_/346/264/276/346/254/247/344/272/221.md +0 -84
  703. package/docs/model-adaptation/Wan-2.7/Wan-2.7_/346/264/276/346/254/247/344/272/221.md +0 -122
  704. /package/dist/upload/{fal-legacy.d.ts → fal-host-fetch.d.ts} +0 -0
@@ -1,169 +1,169 @@
1
- # Photoshop UXP 接入
2
-
3
- ## 证据边界
4
-
5
- SDK 上游已完成 generation-only 与窄 LLM streaming IIFE/VM 门禁;Photoshop UXP 真机网络与图层编码
6
- 仍由插件集成验证。
7
-
8
- - UXP 有 `fetch` / `AbortController` / Streams,但未找到官方证据证明长时间 `text/event-stream`
9
- 在 Photoshop UXP 中稳定;SDK 已完成 scripted SSE 与取消门禁,真实长流稳定性仍是插件真机项。
10
- - `requiredPermissions.network.domains` 支持 `https://*.example.com` 子域通配和 `"all"`。
11
- `requiredPermissions.webview.domains` 是另一套权限,不支持同样的通配,不要混用。
12
- - `allowCodeGenerationFromStrings` 默认 `false`;UXP 又没有 Node/`node:vm`。SDK 因此只直接调用
13
- ESM 函数,不用 `eval`/`new Function`。不需要为 SDK 开启这项高风险权限。
14
- - UXP 没有运行时 Node 模块解析;`@henjicc/ai-sdk` 必须在构建期 bundle。只做少量生成模型时使用
15
- `@henjicc/ai-sdk/generation/core` + 完整模型 pack;需要全部 99 模型时才使用兼容的
16
- `@henjicc/ai-sdk/generation`。不要导入带 LLM 的包根。
17
- - UXP 只做原生流式聊天时导入 `@henjicc/ai-sdk/llm/streaming`,不要导入 `llm` 总入口;后者为了
18
- 向后兼容还包含 modelStep、Zod 与 Vercel AI SDK。
19
-
20
- generation-only 入口公开 `createGenerationClient`,提供 `generate`、`continuePolling`、`cancel`、
21
- `catalog`、`providers` 与 `dispose`。发布门禁确认其 IIFE 不含 LLM/Vercel AI SDK、Node、动态代码生成、
22
- global fetch、Streams、File、`btoa`/`atob`,import/create/catalog/dispose 网络调用为 0,目录为 99 个模型;
23
- 宿主不需要 alias 或 shim。
24
-
25
- 窄 LLM streaming 入口只导出原生 OpenAI-compatible SSE 执行、取消、DTO、运行时类型与稳定错误协议。
26
- 关闭 tree-shaking 的 IIFE/ESM 静态图门禁确认 Zod、modelStep、Vercel `ai`、`@ai-sdk/*`、Node builtin、
27
- `Buffer`、`process`、global fetch、`eval`/`new Function`、`TransformStream`、`WritableStream` 均为 0。
28
- `ReadableStream` 仍由宿主响应提供;Photoshop 27.5 / UXP 9.2 真机确认没有全局 `TextEncoder` 与
29
- `TextDecoder`,`0.1.8` 起 SSE 使用 SDK 内部增量 UTF-8 解码器,不要求插件注入 DOM 或 Node polyfill。
30
-
31
- ## manifest v5 网络权限
32
-
33
- ```json
34
- {
35
- "manifestVersion": 5,
36
- "requiredPermissions": {
37
- "network": {
38
- "domains": [
39
- "https://api.kie.ai",
40
- "https://kieai.redpandaai.co",
41
- "https://fal.run",
42
- "https://*.fal.run",
43
- "https://rest.fal.ai"
44
- ]
45
- }
46
- }
47
- }
48
- ```
49
-
50
- 这里只是短示例;复制 [供应商域名.md](供应商域名.md) 中你实际启用的全部请求域名。
51
- 模型结果可能来自供应商 CDN 或用户自定义 LLM Base URL,它们不可能被静态 SDK 目录穷举;
52
- 宿主需要在保持最小权限的前提下单独加入。
53
-
54
- ## RuntimeContext
55
-
56
- ```ts
57
- import { createModularGenerationClient } from '@henjicc/ai-sdk/generation/core'
58
- import { pack as kieZImage } from '@henjicc/ai-sdk/models/kie/z-image'
59
- import type { Logger, RuntimeContext } from '@henjicc/ai-sdk/runtime'
60
-
61
- const { secureStorage } = require('uxp').storage
62
-
63
- type ExportEncodedLayer = (ref: string) => Promise<{
64
- bytes: Uint8Array
65
- mimeType: 'image/png' | 'image/jpeg'
66
- filename: string
67
- }>
68
-
69
- export function createUxpRuntime(
70
- exportEncodedLayer: ExportEncodedLayer,
71
- logger?: Logger,
72
- ): RuntimeContext {
73
- return {
74
- transport: { fetch: (url, init) => fetch(url, init) },
75
- credentials: {
76
- async get(scope, providerId) {
77
- const stored = await secureStorage.getItem(`${scope}:${providerId}`)
78
- return stored ? decodeAsciiCredential(stored) : undefined
79
- },
80
- },
81
- media: { read: exportEncodedLayer },
82
- logger,
83
- }
84
- }
85
-
86
- // API key 按 ASCII 保存;避免 UXP 不存在 TextDecoder 时凭据读取失败。
87
- function decodeAsciiCredential(bytes: Uint8Array): string {
88
- let value = ''
89
- for (const byte of bytes) value += String.fromCharCode(byte)
90
- return value
91
- }
92
-
93
- export function createUxpGenerationClient(exportEncodedLayer: ExportEncodedLayer) {
94
- return createModularGenerationClient({
95
- runtime: createUxpRuntime(exportEncodedLayer),
96
- packs: [kieZImage],
97
- })
98
- }
99
- ```
100
-
101
- LLM 使用同一个 `RuntimeContext`,密钥 scope 为 `llm`:
102
-
103
- ```ts
104
- import {
105
- cancelLlmChatTask,
106
- runLlmChatStream,
107
- type LlmChatRequestDto,
108
- } from '@henjicc/ai-sdk/llm/streaming'
109
-
110
- const request: LlmChatRequestDto = {
111
- requestId: 'uxp-chat-1',
112
- providerId: 'openai',
113
- modelId: 'gpt-5-mini',
114
- messages: [{ role: 'user', content: '描述当前图片' }],
115
- }
116
-
117
- const outcome = await runLlmChatStream(request, request.requestId!, (event) => {
118
- if (event.type === 'Token') appendText(event.data)
119
- if (event.type === 'ReasoningToken') appendReasoning(event.data)
120
- }, runtime)
121
- console.log(outcome.usage, outcome.finishReason)
122
-
123
- // 用户点击取消时使用同一个 taskId:
124
- cancelLlmChatTask(request.requestId!)
125
- ```
126
-
127
- 输入图片/视频/音频时仍通过 `LlmContentPart` 结构与 `RuntimeContext.media` 处理宿主管理引用;不要在插件
128
- 里复制 SSE parser、错误分类或取消登记表。`Transport.fetch` 必须保留 `Response.body` 的原生字节流并尊重
129
- `init.signal`,不能先把整段响应转为字符串,否则会失去 token 流与及时取消。
130
-
131
- `kieZImage` 是完整执行 pack,不只是目录定义;它已包含 KIE adapter 与 KIE 范围内的媒体上传策略。
132
- 选择别的模型时替换或追加对应 `models/<provider>/<model>` pack。不要只拿同路径的低层 `model`
133
- 导出再由插件手拼上传逻辑。需要某供应商全部模型时改用 `provider-packs/<provider>`。
134
-
135
- Photoshop 的消除面板应只导入可选模型分发集合,不把工具塞进普通生成目录:
136
-
137
- ```ts
138
- import { createModularGenerationClient } from '@henjicc/ai-sdk/generation/core'
139
- import { pack as falImageEditTools } from '@henjicc/ai-sdk/tool-packs/fal-image-edit-tools'
140
-
141
- const erase = createModularGenerationClient({ runtime, packs: [falImageEditTools] })
142
- const created = await erase.generate({
143
- modelId: 'fal-finegrain-eraser',
144
- params: {
145
- image: ['uxp://active-layer'],
146
- mask: ['uxp://erase-mask'],
147
- mode: 'standard',
148
- },
149
- })
150
- ```
151
-
152
- 该入口只携带 3 个 Fal 消除模型、Fal adapter 和 Fal CDN 上传;默认 105 目录、其他供应商与 LLM
153
- 不会进入静态依赖图。单模型可改用 `tool-models/fal/<model>` 导出的 `pack`。运行时能力筛选只过滤
154
- 已导入候选;要缩小 UXP bundle,必须从 import 边界选择 pack,不能先导入集合再靠筛选期待 tree-shake。
155
-
156
- `ref` 应是你插件自己管理的 `uxp://...` / `managed://...` 文档或图层引用,不是让用户手填 URL。
157
- 这些引用会原样交给 `MediaReader.read()`。`photoshop.imaging.getPixels()`
158
- 可得到 `PhotoshopImageData`,再从 `imageData.getData()` 取像素字节;这是**原始像素**,
159
- 必须经插件的图像编码/临时文件导出流程得到真正 PNG/JPEG 字节,再从 `MediaReader.read()`
160
- 返回;不得把 RGBA 像素误报成 `image/png`。记录中 Grayscale/LAB 的通道处理与 CMYK
161
- `getData()` 有历史问题,正式开放前要在真实 Photoshop 复测或明确禁用这些色彩模式。
162
-
163
- ## SecureStorage 与媒体编码
164
-
165
- - SecureStorage 的 value 加密,key 名不加密;Adobe 将它定位为“更像缓存”,数据可丢失。
166
- 凭据丢失时 `get()` 返回 `undefined`,UI 必须让用户重新填写;不得把它当作唯一且永久的账户真相源。
167
- - SDK 的媒体 base64 编解码只依赖 `Uint8Array`,不要求 UXP 提供 `btoa` / `atob` polyfill。
168
- - Fal 本地媒体上传使用 `RuntimeContext.transport` 执行 REST initiate + signed PUT,不构造 `File`;
169
- 取消信号与 120 秒上传 deadline 会传到两段请求。真实 UXP 网络权限、取消和图片放置仍需真机验证。
1
+ # Photoshop UXP 接入
2
+
3
+ ## 证据边界
4
+
5
+ SDK 上游已完成 generation-only 与窄 LLM streaming IIFE/VM 门禁;Photoshop UXP 真机网络与图层编码
6
+ 仍由插件集成验证。
7
+
8
+ - UXP 有 `fetch` / `AbortController` / Streams,但未找到官方证据证明长时间 `text/event-stream`
9
+ 在 Photoshop UXP 中稳定;SDK 已完成 scripted SSE 与取消门禁,真实长流稳定性仍是插件真机项。
10
+ - `requiredPermissions.network.domains` 支持 `https://*.example.com` 子域通配和 `"all"`。
11
+ `requiredPermissions.webview.domains` 是另一套权限,不支持同样的通配,不要混用。
12
+ - `allowCodeGenerationFromStrings` 默认 `false`;UXP 又没有 Node/`node:vm`。SDK 因此只直接调用
13
+ ESM 函数,不用 `eval`/`new Function`。不需要为 SDK 开启这项高风险权限。
14
+ - UXP 没有运行时 Node 模块解析;`@henjicc/ai-sdk` 必须在构建期 bundle。只做少量生成模型时使用
15
+ `@henjicc/ai-sdk/generation/core` + 完整模型 pack;需要全部 99 模型时才使用兼容的
16
+ `@henjicc/ai-sdk/generation`。不要导入带 LLM 的包根。
17
+ - UXP 只做原生流式聊天时导入 `@henjicc/ai-sdk/llm/streaming`,不要导入 `llm` 总入口;后者为了
18
+ 向后兼容还包含 modelStep、Zod 与 Vercel AI SDK。
19
+
20
+ generation-only 入口公开 `createGenerationClient`,提供 `generate`、`continuePolling`、`cancel`、
21
+ `catalog`、`providers` 与 `dispose`。发布门禁确认其 IIFE 不含 LLM/Vercel AI SDK、Node、动态代码生成、
22
+ global fetch、Streams、File、`btoa`/`atob`,import/create/catalog/dispose 网络调用为 0,目录为 99 个模型;
23
+ 宿主不需要 alias 或 shim。
24
+
25
+ 窄 LLM streaming 入口只导出原生 OpenAI-compatible SSE 执行、取消、DTO、运行时类型与稳定错误协议。
26
+ 关闭 tree-shaking 的 IIFE/ESM 静态图门禁确认 Zod、modelStep、Vercel `ai`、`@ai-sdk/*`、Node builtin、
27
+ `Buffer`、`process`、global fetch、`eval`/`new Function`、`TransformStream`、`WritableStream` 均为 0。
28
+ `ReadableStream` 仍由宿主响应提供;Photoshop 27.5 / UXP 9.2 真机确认没有全局 `TextEncoder` 与
29
+ `TextDecoder`,`0.1.8` 起 SSE 使用 SDK 内部增量 UTF-8 解码器,不要求插件注入 DOM 或 Node polyfill。
30
+
31
+ ## manifest v5 网络权限
32
+
33
+ ```json
34
+ {
35
+ "manifestVersion": 5,
36
+ "requiredPermissions": {
37
+ "network": {
38
+ "domains": [
39
+ "https://api.kie.ai",
40
+ "https://kieai.redpandaai.co",
41
+ "https://fal.run",
42
+ "https://*.fal.run",
43
+ "https://rest.fal.ai"
44
+ ]
45
+ }
46
+ }
47
+ }
48
+ ```
49
+
50
+ 这里只是短示例;复制 [供应商域名.md](供应商域名.md) 中你实际启用的全部请求域名。
51
+ 模型结果可能来自供应商 CDN 或用户自定义 LLM Base URL,它们不可能被静态 SDK 目录穷举;
52
+ 宿主需要在保持最小权限的前提下单独加入。
53
+
54
+ ## RuntimeContext
55
+
56
+ ```ts
57
+ import { createModularGenerationClient } from '@henjicc/ai-sdk/generation/core'
58
+ import { pack as kieZImage } from '@henjicc/ai-sdk/models/kie/z-image'
59
+ import type { Logger, RuntimeContext } from '@henjicc/ai-sdk/runtime'
60
+
61
+ const { secureStorage } = require('uxp').storage
62
+
63
+ type ExportEncodedLayer = (ref: string) => Promise<{
64
+ bytes: Uint8Array
65
+ mimeType: 'image/png' | 'image/jpeg'
66
+ filename: string
67
+ }>
68
+
69
+ export function createUxpRuntime(
70
+ exportEncodedLayer: ExportEncodedLayer,
71
+ logger?: Logger,
72
+ ): RuntimeContext {
73
+ return {
74
+ transport: { fetch: (url, init) => fetch(url, init) },
75
+ credentials: {
76
+ async get(scope, providerId) {
77
+ const stored = await secureStorage.getItem(`${scope}:${providerId}`)
78
+ return stored ? decodeAsciiCredential(stored) : undefined
79
+ },
80
+ },
81
+ media: { read: exportEncodedLayer },
82
+ logger,
83
+ }
84
+ }
85
+
86
+ // API key 按 ASCII 保存;避免 UXP 不存在 TextDecoder 时凭据读取失败。
87
+ function decodeAsciiCredential(bytes: Uint8Array): string {
88
+ let value = ''
89
+ for (const byte of bytes) value += String.fromCharCode(byte)
90
+ return value
91
+ }
92
+
93
+ export function createUxpGenerationClient(exportEncodedLayer: ExportEncodedLayer) {
94
+ return createModularGenerationClient({
95
+ runtime: createUxpRuntime(exportEncodedLayer),
96
+ packs: [kieZImage],
97
+ })
98
+ }
99
+ ```
100
+
101
+ LLM 使用同一个 `RuntimeContext`,密钥 scope 为 `llm`:
102
+
103
+ ```ts
104
+ import {
105
+ cancelLlmChatTask,
106
+ runLlmChatStream,
107
+ type LlmChatRequestDto,
108
+ } from '@henjicc/ai-sdk/llm/streaming'
109
+
110
+ const request: LlmChatRequestDto = {
111
+ requestId: 'uxp-chat-1',
112
+ providerId: 'openai',
113
+ modelId: 'gpt-5-mini',
114
+ messages: [{ role: 'user', content: '描述当前图片' }],
115
+ }
116
+
117
+ const outcome = await runLlmChatStream(request, request.requestId!, (event) => {
118
+ if (event.type === 'Token') appendText(event.data)
119
+ if (event.type === 'ReasoningToken') appendReasoning(event.data)
120
+ }, runtime)
121
+ console.log(outcome.usage, outcome.finishReason)
122
+
123
+ // 用户点击取消时使用同一个 taskId:
124
+ cancelLlmChatTask(request.requestId!)
125
+ ```
126
+
127
+ 输入图片/视频/音频时仍通过 `LlmContentPart` 结构与 `RuntimeContext.media` 处理宿主管理引用;不要在插件
128
+ 里复制 SSE parser、错误分类或取消登记表。`Transport.fetch` 必须保留 `Response.body` 的原生字节流并尊重
129
+ `init.signal`,不能先把整段响应转为字符串,否则会失去 token 流与及时取消。
130
+
131
+ `kieZImage` 是完整执行 pack,不只是目录定义;它已包含 KIE adapter 与 KIE 范围内的媒体上传策略。
132
+ 选择别的模型时替换或追加对应 `models/<provider>/<model>` pack。不要只拿同路径的低层 `model`
133
+ 导出再由插件手拼上传逻辑。需要某供应商全部模型时改用 `provider-packs/<provider>`。
134
+
135
+ Photoshop 的消除面板应只导入可选模型分发集合,不把工具塞进普通生成目录:
136
+
137
+ ```ts
138
+ import { createModularGenerationClient } from '@henjicc/ai-sdk/generation/core'
139
+ import { pack as falImageEditTools } from '@henjicc/ai-sdk/tool-packs/fal-image-edit-tools'
140
+
141
+ const erase = createModularGenerationClient({ runtime, packs: [falImageEditTools] })
142
+ const created = await erase.generate({
143
+ modelId: 'fal-finegrain-eraser',
144
+ params: {
145
+ image: ['uxp://active-layer'],
146
+ mask: ['uxp://erase-mask'],
147
+ mode: 'standard',
148
+ },
149
+ })
150
+ ```
151
+
152
+ 该入口只携带 3 个 Fal 消除模型、Fal adapter 和 Fal CDN 上传;默认 105 目录、其他供应商与 LLM
153
+ 不会进入静态依赖图。单模型可改用 `tool-models/fal/<model>` 导出的 `pack`。运行时能力筛选只过滤
154
+ 已导入候选;要缩小 UXP bundle,必须从 import 边界选择 pack,不能先导入集合再靠筛选期待 tree-shake。
155
+
156
+ `ref` 应是你插件自己管理的 `uxp://...` / `managed://...` 文档或图层引用,不是让用户手填 URL。
157
+ 这些引用会原样交给 `MediaReader.read()`。`photoshop.imaging.getPixels()`
158
+ 可得到 `PhotoshopImageData`,再从 `imageData.getData()` 取像素字节;这是**原始像素**,
159
+ 必须经插件的图像编码/临时文件导出流程得到真正 PNG/JPEG 字节,再从 `MediaReader.read()`
160
+ 返回;不得把 RGBA 像素误报成 `image/png`。记录中 Grayscale/LAB 的通道处理与 CMYK
161
+ `getData()` 有历史问题,正式开放前要在真实 Photoshop 复测或明确禁用这些色彩模式。
162
+
163
+ ## SecureStorage 与媒体编码
164
+
165
+ - SecureStorage 的 value 加密,key 名不加密;Adobe 将它定位为“更像缓存”,数据可丢失。
166
+ 凭据丢失时 `get()` 返回 `undefined`,UI 必须让用户重新填写;不得把它当作唯一且永久的账户真相源。
167
+ - SDK 的媒体 base64 编解码只依赖 `Uint8Array`,不要求 UXP 提供 `btoa` / `atob` polyfill。
168
+ - Fal 本地媒体上传使用 `RuntimeContext.transport` 执行 REST initiate + signed PUT,不构造 `File`;
169
+ 取消信号与 120 秒上传 deadline 会传到两段请求。真实 UXP 网络权限、取消和图片放置仍需真机验证。
@@ -1,83 +1,83 @@
1
- # 供应商域名白名单
2
-
3
- 本清单不是凭记忆维护。在仓库根运行:
4
-
5
- ```bash
6
- node packages/ai-sdk/scripts/audit-integration-docs.cjs --check
7
- ```
8
-
9
- 脚本从 SDK provider、Transport 上传与 LLM Base URL 常量提取域名,
10
- 再断言本文档逐项覆盖。`apiKeyUrl`/控制台/文档链接不属于 SDK 运行时请求,不放进白名单。
11
-
12
- ## 供应商官网与 API Key 入口
13
-
14
- 这些地址由 `PROVIDER_METADATA` / `findProviderMetadata(providerId, options)` 统一导出,宿主不再复制。
15
- `websiteUrl` 是实际对用户展示的跳转入口:一般供应商使用正常官网;派欧云、KIE、APIMart
16
- 保留项目已有的邀请码。`apiKeyUrl` 只用于用户主动打开控制台,不参与 SDK 运行时请求。
17
-
18
- | providerId | 官网入口 `websiteUrl` | API Key 入口 `apiKeyUrl` |
19
- |---|---|---|
20
- | `apimart` | `https://apimart.ai/register?aff=cGPOZd`(邀请码) | `https://apimart.ai/keys` |
21
- | `bailian` | `https://www.aliyun.com/product/bailian` | `https://bailian.console.aliyun.com/?apiKey=1#/api-key` |
22
- | `bigmodel` | `https://open.bigmodel.cn/` | `https://bigmodel.cn/usercenter/proj-mgmt/apikeys` |
23
- | `bigmodel-global` | `https://z.ai/` | `https://z.ai/manage-apikey/apikey-list` |
24
- | `deepseek` | `https://www.deepseek.com/` | `https://platform.deepseek.com/api_keys` |
25
- | `fal` | `https://fal.ai/` | `https://fal.ai/dashboard/keys` |
26
- | `groq` | `https://groq.com/` | `https://console.groq.com/keys` |
27
- | `grsai` | `https://grsai.ai/` | `https://grsai.ai/zh/dashboard/api-keys` |
28
- | `kie` | `https://kie.ai?ref=eef20ef0b0595cad227d45b29c635f6c`(邀请码) | `https://kie.ai/api-key` |
29
- | `kimi` | `https://platform.kimi.com/` | `https://platform.kimi.com/console/api-keys` |
30
- | `minimax` | `https://platform.minimaxi.com/` | `https://platform.minimaxi.com/console/access?tab=api-keys` |
31
- | `mimo` | `https://mimo.mi.com/` | `https://platform.xiaomimimo.com/console/api-keys` |
32
- | `modelscope` | `https://www.modelscope.cn/` | `https://modelscope.cn/my/myaccesstoken` |
33
- | `ppio` | `https://ppio.com/user/register?invited_by=WGY0DZ`(邀请码) | `https://ppio.com/settings/key-management` |
34
- | `siliconflow` | `https://siliconflow.cn/` | `https://cloud.siliconflow.cn/account/ak` |
35
- | `volcengine` | `https://www.volcengine.com/product/ark` | `https://console.volcengine.com/ark/region:cn-beijing/apiKey` |
36
-
37
- BigModel 国内/国际共用 provider family;调用
38
- `findProviderMetadata('bigmodel', { endpointProfile: 'global' })` 会返回 `bigmodel-global` 的 Z.AI 地址。
39
- 纯自定义供应商没有官方目录依据时返回 `null`,消费软件不应要求用户填写或自行猜测管理地址。
40
-
41
- ## 生成、上传与连通性
42
-
43
- | 供应商/用途 | 必需域名 |
44
- |---|---|
45
- | APIMart 生成、图片上传、故障切换 | `api.apimart.ai`、`api.apib.ai`、`api.aiuxu.com`、`api.aishuch.com` |
46
- | Grsai 生成、查询、故障切换 | `grsaiapi.com`、`grsai.dakka.com.cn` |
47
- | KIE 生成/轮询/余额 | `api.kie.ai` |
48
- | KIE 公网文件上传 | `kieai.redpandaai.co` |
49
- | Fal 同步/队列 | `fal.run`、`queue.fal.run`、`*.fal.run` |
50
- | Fal CDN REST 存储上传 | `rest.fal.ai` |
51
- | 派欧云生成与 LLM | `api.ppio.com` |
52
- | 魔搭 | `api-inference.modelscope.cn` |
53
- | 百炼图像/ASR/翻译 | `dashscope.aliyuncs.com`、`*.cn-beijing.maas.aliyuncs.com` |
54
- | 火山引擎图像/LLM | `ark.cn-beijing.volces.com` |
55
- | 火山引擎 SeedASR 2.0 | `openspeech.bytedance.com` |
56
- | 硅基流动 ASR | `api.siliconflow.cn` |
57
- | Groq LLM/ASR | `api.groq.com` |
58
-
59
- ## LLM 内置/默认地址
60
-
61
- | 供应商 | 必需域名 |
62
- |---|---|
63
- | DeepSeek | `api.deepseek.com` |
64
- | Kimi | `api.moonshot.cn` |
65
- | 智谱 GLM | `open.bigmodel.cn` |
66
- | 小米 MiMo | `api.xiaomimimo.com` |
67
- | MiniMax | `api.minimaxi.com` |
68
- | 百炼 Qwen 工作空间地址 | `*.cn-beijing.maas.aliyuncs.com` |
69
- | OpenAI-compatible 默认回落 | `api.openai.com` |
70
-
71
- ## 权限格式
72
-
73
- UXP manifest 使用 scheme + host,例如 `https://api.kie.ai` 和 `https://*.fal.run`。
74
- Tauri `http:allow-fetch` 在后面加路径 glob,例如 `https://api.kie.ai/*` 和
75
- `https://*.fal.run/*`。
76
-
77
- 本表只穷举 **SDK 主动请求**。下列域名必须由宿主按实际输入/结果动态管理,不能假装可以在此静态穷举:
78
-
79
- - 用户自建 LLM provider 的 `baseUrl`。
80
- - 供应商返回的 CDN/结果 URL。
81
- - 用户传入的既有远程媒体 URL。
82
-
83
- 新增供应商或域名时,同时更新源码常量、本文档、UXP manifest/Tauri capability,并发布宿主新版本。
1
+ # 供应商域名白名单
2
+
3
+ 本清单不是凭记忆维护。在仓库根运行:
4
+
5
+ ```bash
6
+ node packages/ai-sdk/scripts/audit-integration-docs.cjs --check
7
+ ```
8
+
9
+ 脚本从 SDK provider、Transport 上传与 LLM Base URL 常量提取域名,
10
+ 再断言本文档逐项覆盖。`apiKeyUrl`/控制台/文档链接不属于 SDK 运行时请求,不放进白名单。
11
+
12
+ ## 供应商官网与 API Key 入口
13
+
14
+ 这些地址由 `PROVIDER_METADATA` / `findProviderMetadata(providerId, options)` 统一导出,宿主不再复制。
15
+ `websiteUrl` 是实际对用户展示的跳转入口:一般供应商使用正常官网;派欧云、KIE、APIMart
16
+ 保留项目已有的邀请码。`apiKeyUrl` 只用于用户主动打开控制台,不参与 SDK 运行时请求。
17
+
18
+ | providerId | 官网入口 `websiteUrl` | API Key 入口 `apiKeyUrl` |
19
+ |---|---|---|
20
+ | `apimart` | `https://apimart.ai/register?aff=cGPOZd`(邀请码) | `https://apimart.ai/keys` |
21
+ | `bailian` | `https://www.aliyun.com/product/bailian` | `https://bailian.console.aliyun.com/?apiKey=1#/api-key` |
22
+ | `bigmodel` | `https://open.bigmodel.cn/` | `https://bigmodel.cn/usercenter/proj-mgmt/apikeys` |
23
+ | `bigmodel-global` | `https://z.ai/` | `https://z.ai/manage-apikey/apikey-list` |
24
+ | `deepseek` | `https://www.deepseek.com/` | `https://platform.deepseek.com/api_keys` |
25
+ | `fal` | `https://fal.ai/` | `https://fal.ai/dashboard/keys` |
26
+ | `groq` | `https://groq.com/` | `https://console.groq.com/keys` |
27
+ | `grsai` | `https://grsai.ai/` | `https://grsai.ai/zh/dashboard/api-keys` |
28
+ | `kie` | `https://kie.ai?ref=eef20ef0b0595cad227d45b29c635f6c`(邀请码) | `https://kie.ai/api-key` |
29
+ | `kimi` | `https://platform.kimi.com/` | `https://platform.kimi.com/console/api-keys` |
30
+ | `minimax` | `https://platform.minimaxi.com/` | `https://platform.minimaxi.com/console/access?tab=api-keys` |
31
+ | `mimo` | `https://mimo.mi.com/` | `https://platform.xiaomimimo.com/console/api-keys` |
32
+ | `modelscope` | `https://www.modelscope.cn/` | `https://modelscope.cn/my/myaccesstoken` |
33
+ | `ppio` | `https://ppio.com/user/register?invited_by=WGY0DZ`(邀请码) | `https://ppio.com/settings/key-management` |
34
+ | `siliconflow` | `https://siliconflow.cn/` | `https://cloud.siliconflow.cn/account/ak` |
35
+ | `volcengine` | `https://www.volcengine.com/product/ark` | `https://console.volcengine.com/ark/region:cn-beijing/apiKey` |
36
+
37
+ BigModel 国内/国际共用 provider family;调用
38
+ `findProviderMetadata('bigmodel', { endpointProfile: 'global' })` 会返回 `bigmodel-global` 的 Z.AI 地址。
39
+ 纯自定义供应商没有官方目录依据时返回 `null`,消费软件不应要求用户填写或自行猜测管理地址。
40
+
41
+ ## 生成、上传与连通性
42
+
43
+ | 供应商/用途 | 必需域名 |
44
+ |---|---|
45
+ | APIMart 生成、图片上传、故障切换 | `api.apimart.ai`、`api.apib.ai`、`api.aiuxu.com`、`api.aishuch.com` |
46
+ | Grsai 生成、查询、故障切换 | `grsaiapi.com`、`grsai.dakka.com.cn` |
47
+ | KIE 生成/轮询/余额 | `api.kie.ai` |
48
+ | KIE 公网文件上传 | `kieai.redpandaai.co` |
49
+ | Fal 同步/队列 | `fal.run`、`queue.fal.run`、`*.fal.run` |
50
+ | Fal CDN REST 存储上传 | `rest.fal.ai` |
51
+ | 派欧云生成与 LLM | `api.ppio.com` |
52
+ | 魔搭 | `api-inference.modelscope.cn` |
53
+ | 百炼图像/ASR/翻译 | `dashscope.aliyuncs.com`、`*.cn-beijing.maas.aliyuncs.com` |
54
+ | 火山引擎图像/LLM | `ark.cn-beijing.volces.com` |
55
+ | 火山引擎 SeedASR 2.0 | `openspeech.bytedance.com` |
56
+ | 硅基流动 ASR | `api.siliconflow.cn` |
57
+ | Groq LLM/ASR | `api.groq.com` |
58
+
59
+ ## LLM 内置/默认地址
60
+
61
+ | 供应商 | 必需域名 |
62
+ |---|---|
63
+ | DeepSeek | `api.deepseek.com` |
64
+ | Kimi | `api.moonshot.cn` |
65
+ | 智谱 GLM | `open.bigmodel.cn` |
66
+ | 小米 MiMo | `api.xiaomimimo.com` |
67
+ | MiniMax | `api.minimaxi.com` |
68
+ | 百炼 Qwen 工作空间地址 | `*.cn-beijing.maas.aliyuncs.com` |
69
+ | OpenAI-compatible 默认回落 | `api.openai.com` |
70
+
71
+ ## 权限格式
72
+
73
+ UXP manifest 使用 scheme + host,例如 `https://api.kie.ai` 和 `https://*.fal.run`。
74
+ Tauri `http:allow-fetch` 在后面加路径 glob,例如 `https://api.kie.ai/*` 和
75
+ `https://*.fal.run/*`。
76
+
77
+ 本表只穷举 **SDK 主动请求**。下列域名必须由宿主按实际输入/结果动态管理,不能假装可以在此静态穷举:
78
+
79
+ - 用户自建 LLM provider 的 `baseUrl`。
80
+ - 供应商返回的 CDN/结果 URL。
81
+ - 用户传入的既有远程媒体 URL。
82
+
83
+ 新增供应商或域名时,同时更新源码常量、本文档、UXP manifest/Tauri capability,并发布宿主新版本。