@henjicc/ai-sdk 0.2.8 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) hide show
  1. package/CHANGELOG.md +157 -141
  2. package/README.md +497 -455
  3. package/dist/capabilities/embedding/bailian.d.ts +23 -0
  4. package/dist/capabilities/embedding/bailian.js +10 -0
  5. package/dist/capabilities/embedding/bigmodel.d.ts +9 -0
  6. package/dist/capabilities/embedding/bigmodel.js +5 -0
  7. package/dist/capabilities/embedding/index.d.ts +1 -0
  8. package/dist/capabilities/embedding/index.js +1 -0
  9. package/dist/capabilities/embedding/ppio.d.ts +7 -0
  10. package/dist/capabilities/embedding/ppio.js +5 -0
  11. package/dist/capabilities/embedding/siliconflow.d.ts +21 -0
  12. package/dist/capabilities/embedding/siliconflow.js +10 -0
  13. package/dist/capabilities/embedding/volcengine.d.ts +10 -0
  14. package/dist/capabilities/embedding/volcengine.js +6 -0
  15. package/dist/capabilities/rerank/bailian.d.ts +21 -0
  16. package/dist/capabilities/rerank/bailian.js +14 -0
  17. package/dist/capabilities/rerank/bigmodel.d.ts +9 -0
  18. package/dist/capabilities/rerank/bigmodel.js +5 -0
  19. package/dist/capabilities/rerank/index.d.ts +1 -0
  20. package/dist/capabilities/rerank/index.js +1 -0
  21. package/dist/capabilities/rerank/ppio.d.ts +7 -0
  22. package/dist/capabilities/rerank/ppio.js +5 -0
  23. package/dist/capabilities/rerank/siliconflow.d.ts +21 -0
  24. package/dist/capabilities/rerank/siliconflow.js +10 -0
  25. package/dist/capabilities/retrieval/http.d.ts +3 -0
  26. package/dist/capabilities/retrieval/http.js +48 -0
  27. package/dist/capabilities/retrieval/module.d.ts +11 -0
  28. package/dist/capabilities/retrieval/module.js +110 -0
  29. package/dist/capabilities/retrieval/types.d.ts +54 -0
  30. package/dist/capabilities/retrieval/types.js +1 -0
  31. package/dist/capabilities/retrieval/validation.d.ts +10 -0
  32. package/dist/capabilities/retrieval/validation.js +65 -0
  33. package/dist/capabilities/types.d.ts +1 -1
  34. package/dist/catalog/apimart/gpt-image-2.5.model.d.ts +2 -0
  35. package/dist/catalog/apimart/gpt-image-2.5.model.js +51 -0
  36. package/dist/catalog/fal/gpt-image-2.5.model.d.ts +2 -0
  37. package/dist/catalog/fal/gpt-image-2.5.model.js +53 -0
  38. package/dist/catalog/fal/ic-light-v2.model.js +9 -13
  39. package/dist/catalog/grsai/gpt-image-2.5.model.d.ts +2 -0
  40. package/dist/catalog/grsai/gpt-image-2.5.model.js +54 -0
  41. package/dist/catalog/grsai/gptImage25Sizes.d.ts +1 -0
  42. package/dist/catalog/grsai/gptImage25Sizes.js +76 -0
  43. package/dist/catalog/index.js +112 -104
  44. package/dist/catalog/kie/gpt-image-2.5.model.d.ts +2 -0
  45. package/dist/catalog/kie/gpt-image-2.5.model.js +38 -0
  46. package/dist/catalog/shared/gptImage25.d.ts +16 -0
  47. package/dist/catalog/shared/gptImage25.js +48 -0
  48. package/dist/catalog/shared/gptImage25Pricing.d.ts +12 -0
  49. package/dist/catalog/shared/gptImage25Pricing.js +508 -0
  50. package/dist/llm/defaults.d.ts +1 -1
  51. package/dist/llm/defaults.js +1 -1
  52. package/dist/llm/discovery.d.ts +2 -0
  53. package/dist/llm/discovery.js +16 -5
  54. package/dist/llm/modelCatalogEntries.js +32 -0
  55. package/dist/llm/providerPresets.d.ts +3 -1
  56. package/dist/llm/providerPresets.js +6 -3
  57. package/dist/llm/providerReasoningRequest.js +14 -1
  58. package/dist/llm/siliconflow/index.d.ts +21 -0
  59. package/dist/llm/siliconflow/index.js +32 -0
  60. package/dist/llm/siliconflow/preset.d.ts +6 -0
  61. package/dist/llm/siliconflow/preset.js +33 -0
  62. package/dist/packs/models/apimart/gpt-image-2.5.d.ts +6 -0
  63. package/dist/packs/models/apimart/gpt-image-2.5.js +7 -0
  64. package/dist/packs/models/fal/gpt-image-2.5.d.ts +6 -0
  65. package/dist/packs/models/fal/gpt-image-2.5.js +7 -0
  66. package/dist/packs/models/grsai/gpt-image-2.5.d.ts +6 -0
  67. package/dist/packs/models/grsai/gpt-image-2.5.js +7 -0
  68. package/dist/packs/models/kie/gpt-image-2.5.d.ts +6 -0
  69. package/dist/packs/models/kie/gpt-image-2.5.js +7 -0
  70. package/dist/packs/provider-packs/apimart.d.ts +1 -1
  71. package/dist/packs/provider-packs/apimart.js +21 -20
  72. package/dist/packs/provider-packs/fal.d.ts +1 -1
  73. package/dist/packs/provider-packs/fal.js +37 -36
  74. package/dist/packs/provider-packs/grsai.d.ts +1 -1
  75. package/dist/packs/provider-packs/grsai.js +6 -5
  76. package/dist/packs/provider-packs/kie.d.ts +1 -1
  77. package/dist/packs/provider-packs/kie.js +28 -27
  78. package/dist/packs/tool-models/fal/{qwen-image-edit-2509-multiple-angles.d.ts → qwen-image-edit-2511-multiple-angles.d.ts} +1 -1
  79. package/dist/packs/tool-models/fal/{qwen-image-edit-2509-multiple-angles.js → qwen-image-edit-2511-multiple-angles.js} +1 -1
  80. package/dist/packs/tool-packs/fal-multi-angle-tools.js +1 -1
  81. package/dist/tool-packs/fal-multi-angle/models/qwen-image-edit-2511-multiple-angles.model.d.ts +2 -0
  82. package/dist/tool-packs/fal-multi-angle/models/{qwen-image-edit-2509-multiple-angles.model.js → qwen-image-edit-2511-multiple-angles.model.js} +20 -17
  83. package/docs/README.md +26 -26
  84. package/docs/consumers.md +56 -48
  85. package/docs/llm-adaptation/README.md +139 -137
  86. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/DeepSeek.md +103 -91
  87. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/Kimi.md +75 -75
  88. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/MiniMax.md +84 -84
  89. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//345/260/217/347/261/263MiMo.md +85 -85
  90. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//346/231/272/350/260/261GLM.md +232 -232
  91. 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 +87 -87
  92. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//347/231/276/347/202/274Qwen.md +84 -84
  93. 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
  94. package/docs/model-adaptation/Bria-Eraser/Bria-Eraser_Fal.md +32 -32
  95. 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
  96. package/docs/model-adaptation/ControlLight/ControlLight_Fal.md +85 -85
  97. 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
  98. package/docs/model-adaptation/Finegrain-Eraser/Finegrain-Eraser_Fal.md +31 -31
  99. package/docs/model-adaptation/Flux-Pro-Erase/Flux-Pro-Erase_Fal.md +34 -34
  100. package/docs/model-adaptation/Fun-ASR/Fun-ASR_/347/231/276/347/202/274.md +43 -43
  101. package/docs/model-adaptation/Fun-ASR-Flash-2026-06-15/Fun-ASR-Flash-2026-06-15_/347/231/276/347/202/274.md +41 -41
  102. package/docs/model-adaptation/Fun-ASR-Realtime/Fun-ASR-Realtime_/347/231/276/347/202/274.md +37 -37
  103. 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
  104. package/docs/model-adaptation/GLM-5.3-Flash/GLM-5.3-Flash_/346/231/272/350/260/261.md +207 -207
  105. package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_APIMart.md +173 -173
  106. package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_Fal.md +94 -94
  107. package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_Grsai.md +137 -137
  108. package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_KIE.md +93 -93
  109. package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_APIMart.md +66 -0
  110. package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_Fal.md +55 -0
  111. package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_Grsai.md +53 -0
  112. package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_KIE.md +55 -0
  113. package/docs/model-adaptation/GPT-OSS-20B/GPT-OSS-20B_Groq.md +62 -62
  114. package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_APIMart.md +124 -124
  115. package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_Fal.md +84 -84
  116. package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_KIE.md +129 -129
  117. package/docs/model-adaptation/Grok-Imagine/Grok-Imagine_KIE.md +36 -36
  118. package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_APIMart.md +250 -250
  119. package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_Fal.md +84 -84
  120. package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_KIE.md +105 -105
  121. package/docs/model-adaptation/Hailuo-02/Hailuo-02_Fal.md +93 -93
  122. package/docs/model-adaptation/Hailuo-02/Hailuo-02_KIE.md +56 -56
  123. package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_Fal.md +88 -88
  124. package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_KIE.md +51 -51
  125. package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_/346/264/276/346/254/247/344/272/221.md +70 -70
  126. package/docs/model-adaptation/IC-Light-v2/IC-Light-v2_Fal.md +97 -94
  127. 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
  128. 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
  129. 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
  130. 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
  131. 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
  132. package/docs/model-adaptation/Kling-3.0/Kling-3.0_APIMart.md +112 -112
  133. package/docs/model-adaptation/Kling-3.0/Kling-3.0_Fal.md +89 -89
  134. package/docs/model-adaptation/Kling-3.0/Kling-3.0_KIE.md +106 -106
  135. package/docs/model-adaptation/Kling-3.0/Kling-3.0_/346/264/276/346/254/247/344/272/221.md +119 -119
  136. package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_APIMart.md +125 -125
  137. package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_Fal.md +107 -107
  138. package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_KIE.md +143 -143
  139. package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_APIMart.md +85 -85
  140. package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_Fal.md +83 -83
  141. package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_KIE.md +84 -84
  142. package/docs/model-adaptation/Midjourney/Midjourney_APIMart.md +396 -396
  143. package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_APIMart.md +234 -234
  144. package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_Fal.md +108 -108
  145. package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_KIE.md +111 -111
  146. package/docs/model-adaptation/MiniMax-Speech/MiniMax-Speech_/346/264/276/346/254/247/344/272/221.md +170 -170
  147. package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_APIMart.md +89 -89
  148. package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_Fal.md +99 -99
  149. package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_Grsai.md +82 -82
  150. package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_KIE.md +70 -70
  151. package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_APIMart.md +79 -79
  152. package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_Grsai.md +65 -65
  153. package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_KIE.md +64 -64
  154. package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_APIMart.md +83 -83
  155. package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_Fal.md +89 -89
  156. package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_Grsai.md +82 -82
  157. package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_KIE.md +64 -64
  158. 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
  159. package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_APIMart.md +117 -117
  160. package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_Fal.md +84 -84
  161. package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_KIE.md +103 -103
  162. package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_/347/231/276/347/202/274.md +138 -138
  163. 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 -0
  164. package/docs/model-adaptation/Qwen-MT-Flash/Qwen-MT-Flash_/347/231/276/347/202/274.md +47 -47
  165. package/docs/model-adaptation/Qwen-MT-Lite/Qwen-MT-Lite_/347/231/276/347/202/274.md +39 -39
  166. package/docs/model-adaptation/Qwen-MT-Plus/Qwen-MT-Plus_/347/231/276/347/202/274.md +39 -39
  167. package/docs/model-adaptation/Qwen3-ASR-Flash/Qwen3-ASR-Flash_/347/231/276/347/202/274.md +40 -40
  168. package/docs/model-adaptation/Qwen3-ASR-Flash-2026-02-10/Qwen3-ASR-Flash-2026-02-10_/347/231/276/347/202/274.md +33 -33
  169. package/docs/model-adaptation/Qwen3-ASR-Flash-Filetrans/Qwen3-ASR-Flash-Filetrans_/347/231/276/347/202/274.md +41 -41
  170. package/docs/model-adaptation/Qwen3-ASR-Flash-Realtime/Qwen3-ASR-Flash-Realtime_/347/231/276/347/202/274.md +35 -35
  171. 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
  172. package/docs/model-adaptation/README.md +313 -295
  173. 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
  174. 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 +143 -143
  175. 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
  176. package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_APIMart.md +121 -121
  177. package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_Fal.md +97 -97
  178. package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_KIE.md +86 -86
  179. package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_APIMart.md +89 -89
  180. package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_Fal.md +95 -95
  181. package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_KIE.md +78 -78
  182. package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_APIMart.md +89 -89
  183. package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_Fal.md +96 -96
  184. package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_KIE.md +78 -78
  185. package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_APIMart.md +212 -212
  186. package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_Fal.md +94 -94
  187. package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_KIE.md +89 -89
  188. package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_APIMart.md +106 -106
  189. package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_Fal.md +91 -91
  190. package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_KIE.md +89 -89
  191. 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 +108 -108
  192. package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_APIMart.md +194 -194
  193. package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_Fal.md +100 -100
  194. package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_KIE.md +141 -141
  195. 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
  196. package/docs/model-adaptation/SenseVoiceSmall/SenseVoiceSmall_/347/241/205/345/237/272/346/265/201/345/212/250.md +69 -69
  197. package/docs/model-adaptation/TeleSpeechASR/TeleSpeechASR_/347/241/205/345/237/272/346/265/201/345/212/250.md +72 -72
  198. 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
  199. 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
  200. package/docs/model-adaptation/Wan-2.5-Preview/Wan-2.5-Preview_/346/264/276/346/254/247/344/272/221.md +82 -82
  201. package/docs/model-adaptation/Wan-2.6/Wan-2.6_/346/264/276/346/254/247/344/272/221.md +84 -84
  202. package/docs/model-adaptation/Wan-2.7/Wan-2.7_/346/264/276/346/254/247/344/272/221.md +122 -122
  203. package/docs/model-adaptation/Whisper-Large-v3/Whisper-Large-v3_Groq.md +76 -76
  204. package/docs/model-adaptation/Whisper-Large-v3-Turbo/Whisper-Large-v3-Turbo_Groq.md +75 -75
  205. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_APIMart.md +88 -88
  206. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_Fal.md +95 -95
  207. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_KIE.md +71 -71
  208. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_/347/231/276/347/202/274.md +122 -122
  209. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_/351/255/224/346/220/255.md +97 -97
  210. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/APIMart.md +238 -238
  211. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Fal.md +172 -172
  212. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Groq.md +121 -121
  213. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Grsai.md +217 -217
  214. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/KIE.md +131 -131
  215. 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
  216. 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
  217. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//346/264/276/346/254/247/344/272/221.md +147 -138
  218. 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 +181 -171
  219. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//347/231/276/347/202/274.md +237 -227
  220. 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 +140 -75
  221. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//351/255/224/346/220/255.md +207 -207
  222. package/docs/model-adaptation//346/226/207/346/241/243/351/207/207/351/233/206/346/211/213/345/206/214.md +338 -311
  223. 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
  224. package/docs//346/216/245/345/205/245/346/214/207/345/215/227/Electron.md +77 -77
  225. package/docs//346/216/245/345/205/245/346/214/207/345/215/227/Tauri.md +81 -81
  226. package/docs//346/216/245/345/205/245/346/214/207/345/215/227/UXP.md +169 -169
  227. 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
  228. 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
  229. package/examples/form-renderer/README.md +17 -17
  230. package/examples/form-renderer/cli.ts +32 -32
  231. package/examples/form-renderer/index.ts +144 -144
  232. package/examples/form-renderer/package.json +16 -16
  233. package/examples/form-renderer/tsconfig.json +14 -14
  234. package/examples/llm-chat/README.md +32 -32
  235. package/examples/llm-chat/index.ts +100 -100
  236. package/examples/llm-chat/package.json +19 -19
  237. package/examples/llm-chat/tsconfig.json +14 -14
  238. package/examples/minimal-node/README.md +31 -31
  239. package/examples/minimal-node/index.ts +138 -138
  240. package/examples/minimal-node/package.json +17 -17
  241. package/examples/minimal-node/tsconfig.json +14 -14
  242. package/package.json +255 -195
  243. package/dist/tool-packs/fal-multi-angle/models/qwen-image-edit-2509-multiple-angles.model.d.ts +0 -2
  244. package/docs/model-adaptation/Qwen-Image-Edit-2509-/345/244/232/350/247/222/345/272/246/Qwen-Image-Edit-2509-/345/244/232/350/247/222/345/272/246_Fal.md +0 -116
@@ -0,0 +1,508 @@
1
+ import { GPT25_RATIOS, GPT25_RESOLUTIONS, GPT25_QUALITIES, gpt25Choice, gpt25Count, gpt25Ratio } from './gptImage25.js';
2
+ export const GPT25_OUTPUT_REFERENCE = {
3
+ "1:1": {
4
+ "width": 1024,
5
+ "height": 1024,
6
+ "tokens": [
7
+ 196,
8
+ 439,
9
+ 1756,
10
+ 3122,
11
+ 7024
12
+ ]
13
+ },
14
+ "3:2": {
15
+ "width": 1536,
16
+ "height": 1024,
17
+ "tokens": [
18
+ 158,
19
+ 343,
20
+ 1372,
21
+ 2459,
22
+ 5488
23
+ ]
24
+ },
25
+ "2:3": {
26
+ "width": 1024,
27
+ "height": 1536,
28
+ "tokens": [
29
+ 158,
30
+ 343,
31
+ 1372,
32
+ 2459,
33
+ 5488
34
+ ]
35
+ },
36
+ "4:3": {
37
+ "width": 1024,
38
+ "height": 768,
39
+ "tokens": [
40
+ 134,
41
+ 301,
42
+ 1204,
43
+ 2140,
44
+ 4815
45
+ ]
46
+ },
47
+ "3:4": {
48
+ "width": 768,
49
+ "height": 1024,
50
+ "tokens": [
51
+ 134,
52
+ 301,
53
+ 1204,
54
+ 2140,
55
+ 4815
56
+ ]
57
+ },
58
+ "5:4": {
59
+ "width": 1280,
60
+ "height": 1024,
61
+ "tokens": [
62
+ 173,
63
+ 378,
64
+ 1510,
65
+ 2702,
66
+ 6119
67
+ ]
68
+ },
69
+ "4:5": {
70
+ "width": 1024,
71
+ "height": 1280,
72
+ "tokens": [
73
+ 173,
74
+ 378,
75
+ 1510,
76
+ 2702,
77
+ 6119
78
+ ]
79
+ },
80
+ "16:9": {
81
+ "width": 1536,
82
+ "height": 864,
83
+ "tokens": [
84
+ 120,
85
+ 280,
86
+ 1078,
87
+ 1917,
88
+ 4312
89
+ ]
90
+ },
91
+ "9:16": {
92
+ "width": 864,
93
+ "height": 1536,
94
+ "tokens": [
95
+ 120,
96
+ 280,
97
+ 1078,
98
+ 1917,
99
+ 4312
100
+ ]
101
+ },
102
+ "2:1": {
103
+ "width": 2048,
104
+ "height": 1024,
105
+ "tokens": [
106
+ 132,
107
+ 295,
108
+ 1180,
109
+ 2098,
110
+ 4720
111
+ ]
112
+ },
113
+ "1:2": {
114
+ "width": 1024,
115
+ "height": 2048,
116
+ "tokens": [
117
+ 132,
118
+ 295,
119
+ 1180,
120
+ 2098,
121
+ 4720
122
+ ]
123
+ },
124
+ "21:9": {
125
+ "width": 2016,
126
+ "height": 864,
127
+ "tokens": [
128
+ 105,
129
+ 225,
130
+ 943,
131
+ 1617,
132
+ 3682
133
+ ]
134
+ },
135
+ "9:21": {
136
+ "width": 864,
137
+ "height": 2016,
138
+ "tokens": [
139
+ 105,
140
+ 225,
141
+ 943,
142
+ 1617,
143
+ 3682
144
+ ]
145
+ },
146
+ "3:1": {
147
+ "width": 1536,
148
+ "height": 512,
149
+ "tokens": [
150
+ 56,
151
+ 134,
152
+ 535,
153
+ 937,
154
+ 2140
155
+ ]
156
+ },
157
+ "1:3": {
158
+ "width": 512,
159
+ "height": 1536,
160
+ "tokens": [
161
+ 56,
162
+ 134,
163
+ 535,
164
+ 937,
165
+ 2140
166
+ ]
167
+ },
168
+ "1:1@2k": {
169
+ "width": 2048,
170
+ "height": 2048,
171
+ "tokens": [
172
+ 397,
173
+ 892,
174
+ 3568,
175
+ 6343,
176
+ 14272
177
+ ]
178
+ },
179
+ "3:2@2k": {
180
+ "width": 2048,
181
+ "height": 1360,
182
+ "tokens": [
183
+ 211,
184
+ 460,
185
+ 1838,
186
+ 3216,
187
+ 7351
188
+ ]
189
+ },
190
+ "2:3@2k": {
191
+ "width": 1360,
192
+ "height": 2048,
193
+ "tokens": [
194
+ 211,
195
+ 460,
196
+ 1838,
197
+ 3216,
198
+ 7351
199
+ ]
200
+ },
201
+ "4:3@2k": {
202
+ "width": 2048,
203
+ "height": 1536,
204
+ "tokens": [
205
+ 247,
206
+ 556,
207
+ 2223,
208
+ 3952,
209
+ 8892
210
+ ]
211
+ },
212
+ "3:4@2k": {
213
+ "width": 1536,
214
+ "height": 2048,
215
+ "tokens": [
216
+ 247,
217
+ 556,
218
+ 2223,
219
+ 3952,
220
+ 8892
221
+ ]
222
+ },
223
+ "5:4@2k": {
224
+ "width": 2560,
225
+ "height": 2048,
226
+ "tokens": [
227
+ 377,
228
+ 826,
229
+ 3303,
230
+ 5911,
231
+ 13385
232
+ ]
233
+ },
234
+ "4:5@2k": {
235
+ "width": 2048,
236
+ "height": 2560,
237
+ "tokens": [
238
+ 377,
239
+ 826,
240
+ 3303,
241
+ 5911,
242
+ 13385
243
+ ]
244
+ },
245
+ "16:9@2k": {
246
+ "width": 2048,
247
+ "height": 1152,
248
+ "tokens": [
249
+ 157,
250
+ 367,
251
+ 1413,
252
+ 2511,
253
+ 5650
254
+ ]
255
+ },
256
+ "9:16@2k": {
257
+ "width": 1152,
258
+ "height": 2048,
259
+ "tokens": [
260
+ 157,
261
+ 367,
262
+ 1413,
263
+ 2511,
264
+ 5650
265
+ ]
266
+ },
267
+ "2:1@2k": {
268
+ "width": 2688,
269
+ "height": 1344,
270
+ "tokens": [
271
+ 180,
272
+ 405,
273
+ 1617,
274
+ 2874,
275
+ 6466
276
+ ]
277
+ },
278
+ "1:2@2k": {
279
+ "width": 1344,
280
+ "height": 2688,
281
+ "tokens": [
282
+ 180,
283
+ 405,
284
+ 1617,
285
+ 2874,
286
+ 6466
287
+ ]
288
+ },
289
+ "21:9@2k": {
290
+ "width": 2688,
291
+ "height": 1152,
292
+ "tokens": [
293
+ 143,
294
+ 306,
295
+ 1285,
296
+ 2202,
297
+ 5016
298
+ ]
299
+ },
300
+ "9:21@2k": {
301
+ "width": 1152,
302
+ "height": 2688,
303
+ "tokens": [
304
+ 143,
305
+ 306,
306
+ 1285,
307
+ 2202,
308
+ 5016
309
+ ]
310
+ },
311
+ "3:1@2k": {
312
+ "width": 3072,
313
+ "height": 1024,
314
+ "tokens": [
315
+ 103,
316
+ 247,
317
+ 988,
318
+ 1729,
319
+ 3952
320
+ ]
321
+ },
322
+ "1:3@2k": {
323
+ "width": 1024,
324
+ "height": 3072,
325
+ "tokens": [
326
+ 103,
327
+ 247,
328
+ 988,
329
+ 1729,
330
+ 3952
331
+ ]
332
+ },
333
+ "1:1@4k": {
334
+ "width": 2880,
335
+ "height": 2880,
336
+ "tokens": [
337
+ 659,
338
+ 1483,
339
+ 5930,
340
+ 10542,
341
+ 23719
342
+ ]
343
+ },
344
+ "3:2@4k": {
345
+ "width": 3520,
346
+ "height": 2336,
347
+ "tokens": [
348
+ 450,
349
+ 982,
350
+ 3926,
351
+ 6870,
352
+ 15703
353
+ ]
354
+ },
355
+ "2:3@4k": {
356
+ "width": 2336,
357
+ "height": 3520,
358
+ "tokens": [
359
+ 450,
360
+ 982,
361
+ 3926,
362
+ 6870,
363
+ 15703
364
+ ]
365
+ },
366
+ "4:3@4k": {
367
+ "width": 3312,
368
+ "height": 2480,
369
+ "tokens": [
370
+ 491,
371
+ 1104,
372
+ 4413,
373
+ 7845,
374
+ 17650
375
+ ]
376
+ },
377
+ "3:4@4k": {
378
+ "width": 2480,
379
+ "height": 3312,
380
+ "tokens": [
381
+ 491,
382
+ 1104,
383
+ 4413,
384
+ 7845,
385
+ 17650
386
+ ]
387
+ },
388
+ "5:4@4k": {
389
+ "width": 3216,
390
+ "height": 2576,
391
+ "tokens": [
392
+ 535,
393
+ 1173,
394
+ 4690,
395
+ 8393,
396
+ 19006
397
+ ]
398
+ },
399
+ "4:5@4k": {
400
+ "width": 2576,
401
+ "height": 3216,
402
+ "tokens": [
403
+ 535,
404
+ 1173,
405
+ 4690,
406
+ 8393,
407
+ 19006
408
+ ]
409
+ },
410
+ "16:9@4k": {
411
+ "width": 3840,
412
+ "height": 2160,
413
+ "tokens": [
414
+ 371,
415
+ 865,
416
+ 3336,
417
+ 5930,
418
+ 13342
419
+ ]
420
+ },
421
+ "9:16@4k": {
422
+ "width": 2160,
423
+ "height": 3840,
424
+ "tokens": [
425
+ 371,
426
+ 865,
427
+ 3336,
428
+ 5930,
429
+ 13342
430
+ ]
431
+ },
432
+ "2:1@4k": {
433
+ "width": 3840,
434
+ "height": 1920,
435
+ "tokens": [
436
+ 300,
437
+ 675,
438
+ 2700,
439
+ 4799,
440
+ 10798
441
+ ]
442
+ },
443
+ "1:2@4k": {
444
+ "width": 1920,
445
+ "height": 3840,
446
+ "tokens": [
447
+ 300,
448
+ 675,
449
+ 2700,
450
+ 4799,
451
+ 10798
452
+ ]
453
+ },
454
+ "21:9@4k": {
455
+ "width": 3840,
456
+ "height": 1648,
457
+ "tokens": [
458
+ 234,
459
+ 500,
460
+ 2099,
461
+ 3598,
462
+ 8196
463
+ ]
464
+ },
465
+ "9:21@4k": {
466
+ "width": 1648,
467
+ "height": 3840,
468
+ "tokens": [
469
+ 234,
470
+ 500,
471
+ 2099,
472
+ 3598,
473
+ 8196
474
+ ]
475
+ },
476
+ "3:1@4k": {
477
+ "width": 3840,
478
+ "height": 1280,
479
+ "tokens": [
480
+ 139,
481
+ 332,
482
+ 1328,
483
+ 2324,
484
+ 5311
485
+ ]
486
+ },
487
+ "1:3@4k": {
488
+ "width": 1280,
489
+ "height": 3840,
490
+ "tokens": [
491
+ 139,
492
+ 332,
493
+ 1328,
494
+ 2324,
495
+ 5311
496
+ ]
497
+ }
498
+ };
499
+ export function gpt25SizeReference(params) {
500
+ const ratio = gpt25Ratio(params, params.gpt25AspectRatio, GPT25_RATIOS);
501
+ const resolution = gpt25Choice(params.gpt25Resolution, GPT25_RESOLUTIONS, '1K');
502
+ return GPT25_OUTPUT_REFERENCE[ratio + (resolution === '1K' ? '' : '@' + resolution.toLowerCase())];
503
+ }
504
+ export function gpt25OutputEstimate(params, rate, defaultQuality) {
505
+ const quality = gpt25Choice(params.gpt25Quality, GPT25_QUALITIES, defaultQuality);
506
+ const index = ['low', 'medium', 'high', 'xhigh', 'max'].indexOf(quality === 'auto' ? 'max' : quality);
507
+ return gpt25SizeReference(params).tokens[index] * rate / 1000000 * gpt25Count(params.gpt25Count, 10);
508
+ }
@@ -10,7 +10,7 @@ import type { LlmCapabilities, LlmReasoningConfig, LlmReasoningEffort } from './
10
10
  */
11
11
  export declare const DEFAULT_DEEPSEEK_PROVIDER_ID = "deepseek";
12
12
  export declare const DEFAULT_DEEPSEEK_BASE_URL = "https://api.deepseek.com";
13
- export declare const DEFAULT_DEEPSEEK_MODEL_ID = "deepseek-v4-flash";
13
+ export declare const DEFAULT_DEEPSEEK_MODEL_ID = "deepseek-flash";
14
14
  export declare const DEFAULT_PPIO_PROVIDER_ID = "ppio";
15
15
  export declare const DEFAULT_PPIO_BASE_URL = "https://api.ppio.com/openai";
16
16
  export declare const DEFAULT_PPIO_MODEL_ID = "deepseek/deepseek-v4-flash";
@@ -10,7 +10,7 @@ import { applyLlmModelCatalogEntry, findLlmModelCatalogEntry } from './modelCata
10
10
  */
11
11
  export const DEFAULT_DEEPSEEK_PROVIDER_ID = 'deepseek';
12
12
  export const DEFAULT_DEEPSEEK_BASE_URL = 'https://api.deepseek.com';
13
- export const DEFAULT_DEEPSEEK_MODEL_ID = 'deepseek-v4-flash';
13
+ export const DEFAULT_DEEPSEEK_MODEL_ID = 'deepseek-flash';
14
14
  export const DEFAULT_PPIO_PROVIDER_ID = 'ppio';
15
15
  export const DEFAULT_PPIO_BASE_URL = 'https://api.ppio.com/openai';
16
16
  export const DEFAULT_PPIO_MODEL_ID = 'deepseek/deepseek-v4-flash';
@@ -28,6 +28,8 @@ interface RawDiscoveredModel {
28
28
  active?: unknown;
29
29
  }
30
30
  export interface DiscoverModelsOptions {
31
+ /** 硅基流动的服务端模型分类;其他供应商不接受此选项。 */
32
+ modelType?: 'chat' | 'embedding' | 'reranker';
31
33
  providerFamilyId?: string;
32
34
  endpointProfile?: string;
33
35
  credentialId?: string;
@@ -14,6 +14,8 @@ function optionalPositiveInteger(...values) {
14
14
  return null;
15
15
  }
16
16
  export function parseDiscoveredModel(item) {
17
+ if (!item || typeof item !== 'object' || Array.isArray(item))
18
+ return null;
17
19
  const modelId = optionalText(item.id);
18
20
  if (!modelId)
19
21
  return null;
@@ -32,11 +34,18 @@ export async function discoverModels(providerId, baseUrl, runtime, options = {})
32
34
  credentialId: options.credentialId,
33
35
  baseUrl,
34
36
  });
35
- const apiKey = await runtime.credentials.get('llm', identity.credentialId);
36
- if (options.requireCredential && !apiKey) {
37
+ const siliconflow = identity.providerFamilyId === 'siliconflow';
38
+ if (options.modelType !== undefined && (!siliconflow || !['chat', 'embedding', 'reranker'].includes(options.modelType))) {
39
+ throw new Error('modelType 仅支持硅基流动 chat / embedding / reranker');
40
+ }
41
+ const modelType = options.modelType ?? 'chat';
42
+ const scope = siliconflow && modelType !== 'chat' ? (modelType === 'reranker' ? 'rerank' : 'embedding') : 'llm';
43
+ const apiKey = await runtime.credentials.get(scope, identity.credentialId);
44
+ if ((options.requireCredential || siliconflow) && !apiKey) {
37
45
  throw new Error(`[api_key_missing] LLM provider "${providerId}" API key is not configured.`);
38
46
  }
39
- const url = resolveModelsEndpoint(identity.baseUrl ?? baseUrl);
47
+ const endpoint = resolveModelsEndpoint(identity.baseUrl ?? baseUrl);
48
+ const url = siliconflow ? `${endpoint}?sub_type=${modelType}` : endpoint;
40
49
  const headers = { Accept: 'application/json' };
41
50
  if (apiKey) {
42
51
  headers.Authorization = `Bearer ${apiKey}`;
@@ -52,8 +61,10 @@ export async function discoverModels(providerId, baseUrl, runtime, options = {})
52
61
  if (!response.ok)
53
62
  throw new Error(`获取模型列表失败: ${response.status}`);
54
63
  const data = await response.json();
55
- return (data.data ?? [])
56
- .filter(item => !options.activeOnly || item.active !== false)
64
+ if (!data || !Array.isArray(data.data))
65
+ throw new Error('获取模型列表失败: 无效的 data 数组');
66
+ return data.data
67
+ .filter(item => !options.activeOnly || item?.active !== false)
57
68
  .map(parseDiscoveredModel)
58
69
  .filter((item) => item !== null);
59
70
  }
@@ -12,6 +12,22 @@
12
12
  * 否则用户会得到"勾了但发过去没反应"的静默失效。
13
13
  */
14
14
  export const LLM_MODEL_CATALOG_ENTRIES = [
15
+ // 硅基流动模型页与 Chat VLM 契约;未确认的视频字段和输出上限不猜测。
16
+ ...[
17
+ { id: 'kimi-k2.7-code', displayName: 'Kimi K2.7 Code', vendor: 'Moonshot' },
18
+ { id: 'qwen3.8-27b', displayName: 'Qwen3.8-27B', vendor: 'Qwen' },
19
+ ].map(model => ({
20
+ ...model,
21
+ input: { image: true, video: false, audio: false },
22
+ toolCall: true,
23
+ parallelTools: false,
24
+ structuredOutputMode: 'json',
25
+ reasoning: true,
26
+ sampling: true,
27
+ contextWindow: 262_144,
28
+ maxOutputTokens: null,
29
+ docs: 'docs/model-adaptation/供应商/硅基流动.md',
30
+ })),
15
31
  // ---------------- OpenAI GPT-OSS(Groq 托管) ----------------
16
32
  {
17
33
  id: 'gpt-oss-20b',
@@ -29,6 +45,22 @@ export const LLM_MODEL_CATALOG_ENTRIES = [
29
45
  docs: 'docs/model-adaptation/GPT-OSS-20B/GPT-OSS-20B_Groq.md',
30
46
  },
31
47
  // ---------------- DeepSeek ----------------
48
+ {
49
+ id: 'deepseek-flash',
50
+ displayName: 'DeepSeek V4.1 Flash',
51
+ vendor: 'DeepSeek',
52
+ input: { image: true, video: false, audio: false },
53
+ toolCall: true,
54
+ parallelTools: false,
55
+ structuredOutputMode: 'json',
56
+ reasoning: true,
57
+ sampling: true,
58
+ contextWindow: 1_000_000,
59
+ maxOutputTokens: 384_000,
60
+ apiProtocols: ['openai-responses', 'openai-compatible'],
61
+ note: '支持图片理解;思考模式下 temperature 无效、top_p 下限为 0.95,非思考模式 top_p 固定为 1。',
62
+ docs: 'docs/llm-adaptation/供应商/DeepSeek.md',
63
+ },
32
64
  {
33
65
  id: 'deepseek-v4-flash',
34
66
  displayName: 'DeepSeek V4 Flash',
@@ -1,5 +1,5 @@
1
1
  import type { LlmApiProtocol } from './providerProtocol.js';
2
- import type { LlmModelConfig, LlmProviderConfig, LlmReasoningEffort } from './types.js';
2
+ import type { LlmCapabilities, LlmModelConfig, LlmProviderConfig, LlmReasoningEffort } from './types.js';
3
3
  /**
4
4
  * 内置供应商预设。
5
5
  *
@@ -25,6 +25,8 @@ export interface LlmProviderPreset {
25
25
  reasoningConfigurable: boolean;
26
26
  /** 添加该供应商时一并建好的推荐模型,能力按内置目录自动标注 */
27
27
  modelIds: readonly string[];
28
+ /** 托管供应商已核验的能力覆盖;不能把原厂能力无条件套给聚合接口。 */
29
+ modelCapabilities?: Readonly<Record<string, Partial<LlmCapabilities>>>;
28
30
  /** 这家供应商已确认可走 Responses 的具体模型;未列出的模型继续走 Chat Completions。 */
29
31
  responsesModelIds?: readonly string[];
30
32
  websiteUrl: string;
@@ -1,6 +1,7 @@
1
1
  import { DEFAULT_DEEPSEEK_BASE_URL, DEFAULT_DEEPSEEK_PROVIDER_ID, DEFAULT_PPIO_BASE_URL, DEFAULT_PPIO_PROVIDER_ID, createLlmCapabilitiesForModel, } from './defaults.js';
2
2
  import { findLlmModelCatalogEntry, modelSupportsLlmApiProtocol } from './modelCatalog.js';
3
3
  import { GROQ_PROVIDER_PRESET } from './groq/preset.js';
4
+ import { SILICONFLOW_PROVIDER_PRESET } from './siliconflow/preset.js';
4
5
  import { createBigmodelProvider } from './bigmodel/preset.js';
5
6
  import { BIGMODEL_ENDPOINT_PROFILE_FAMILY } from './bigmodel/profiles.js';
6
7
  import { findProviderMetadata } from '../providers/metadata.js';
@@ -12,6 +13,7 @@ function providerMetadata(providerId) {
12
13
  }
13
14
  export const LLM_PROVIDER_PRESETS = [
14
15
  GROQ_PROVIDER_PRESET,
16
+ SILICONFLOW_PROVIDER_PRESET,
15
17
  {
16
18
  providerId: DEFAULT_PPIO_PROVIDER_ID,
17
19
  displayName: '派欧云',
@@ -39,8 +41,8 @@ export const LLM_PROVIDER_PRESETS = [
39
41
  baseUrl: DEFAULT_DEEPSEEK_BASE_URL,
40
42
  reasoning: { enabled: true, effort: 'high' },
41
43
  reasoningConfigurable: true,
42
- modelIds: ['deepseek-v4-pro', 'deepseek-v4-flash'],
43
- responsesModelIds: ['deepseek-v4-pro', 'deepseek-v4-flash', 'deepseek-v4-flash-vision-exp'],
44
+ modelIds: ['deepseek-flash'],
45
+ responsesModelIds: ['deepseek-flash', 'deepseek-v4-pro', 'deepseek-v4-flash', 'deepseek-v4-flash-vision-exp'],
44
46
  websiteUrl: providerMetadata(DEFAULT_DEEPSEEK_PROVIDER_ID).websiteUrl,
45
47
  apiKeyUrl: providerMetadata(DEFAULT_DEEPSEEK_PROVIDER_ID).apiKeyUrl,
46
48
  docs: 'docs/llm-adaptation/供应商/DeepSeek.md',
@@ -165,6 +167,7 @@ export function createProviderFromPreset(preset, options = {}) {
165
167
  }
166
168
  return {
167
169
  providerId: options.providerId ?? preset.providerId,
170
+ ...(preset.providerId === 'siliconflow' ? { providerFamilyId: preset.providerId } : {}),
168
171
  credentialId: options.providerId ?? preset.providerId,
169
172
  setup: {
170
173
  kind: 'preset',
@@ -200,7 +203,7 @@ export function createModelsFromPreset(preset, provider) {
200
203
  adapter: provider.adapter,
201
204
  apiProtocol: resolvePresetModelApiProtocol(preset, modelId, provider.endpointProfile),
202
205
  baseUrl: provider.baseUrl,
203
- capabilities: createLlmCapabilitiesForModel(modelId),
206
+ capabilities: { ...createLlmCapabilitiesForModel(modelId), ...preset.modelCapabilities?.[modelId] },
204
207
  catalogId: entry?.id,
205
208
  enabled: true,
206
209
  };