@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
@@ -1,32 +1,32 @@
1
- # llm-chat
2
-
3
- 用 `@henjicc/ai-sdk@0.2.8` 的 `llm/streaming` 按需入口走 OpenAI-compatible SSE 流式对话,
4
- 不会把 generation、BigModel preset/models/pricing、Groq 或 LLM modules 打进示例 bundle;
5
- 通用端点身份解析所需的 BigModel profiles 仍会保留。默认目标是
6
- DeepSeek `deepseek-v4-flash`,提示词要求只回复 `SDK OK`,并限制最多 16 tokens。示例显式传入
7
- `reasoning: { enabled: false, effort: 'high' }`,避免短输出预算被供应商默认思考过程占用;若流结束后
8
- 没有任何文本 token,示例会明确失败。
9
-
10
- ```bash
11
- npm install
12
- npm run dry-run
13
- npm run check:bundle
14
- ```
15
-
16
- `dry-run` 使用本地 SSE fixture,不访问网络。真实调用前先确认供应商、模型、Base URL 和价格:
17
-
18
- ```bash
19
- LLM_API_KEY='你的密钥' \
20
- LLM_PROVIDER_ID='deepseek' \
21
- LLM_MODEL_ID='deepseek-v4-flash' \
22
- LLM_BASE_URL='https://api.deepseek.com' \
23
- npm start
24
- ```
25
-
26
- DeepSeek Flash 当前资料价为缓存未命中输入 ¥1.5/百万 tokens(闲时)或 ¥3/百万(高峰),输出
27
- ¥4.5/百万(闲时)或 ¥9/百万(高峰)。示例按高峰价、并把字符数保守当 token 数输出粗估;实际账单
28
- 以供应商 usage 和账单为准。
29
-
30
- 示例对 `/chat/completions` 的 POST 设置单次外网闸门,进程内第二次付费请求会在本地被拒绝。
31
- 要取消流式请求,保存 `resolveLlmTaskId(request)` 返回的 `taskId`,再调用
32
- `cancelLlmChatTask(taskId)`。按需流式入口没有需要宿主释放的客户端实例。
1
+ # llm-chat
2
+
3
+ 用 `@henjicc/ai-sdk@0.4.0` 的 `llm/streaming` 按需入口走 OpenAI-compatible SSE 流式对话,
4
+ 不会把 generation、BigModel preset/models/pricing、Groq 或 LLM modules 打进示例 bundle;
5
+ 通用端点身份解析所需的 BigModel profiles 仍会保留。默认目标是
6
+ DeepSeek `deepseek-v4-flash`,提示词要求只回复 `SDK OK`,并限制最多 16 tokens。示例显式传入
7
+ `reasoning: { enabled: false, effort: 'high' }`,避免短输出预算被供应商默认思考过程占用;若流结束后
8
+ 没有任何文本 token,示例会明确失败。
9
+
10
+ ```bash
11
+ npm install
12
+ npm run dry-run
13
+ npm run check:bundle
14
+ ```
15
+
16
+ `dry-run` 使用本地 SSE fixture,不访问网络。真实调用前先确认供应商、模型、Base URL 和价格:
17
+
18
+ ```bash
19
+ LLM_API_KEY='你的密钥' \
20
+ LLM_PROVIDER_ID='deepseek' \
21
+ LLM_MODEL_ID='deepseek-v4-flash' \
22
+ LLM_BASE_URL='https://api.deepseek.com' \
23
+ npm start
24
+ ```
25
+
26
+ DeepSeek Flash 当前资料价为缓存未命中输入 ¥1.5/百万 tokens(闲时)或 ¥3/百万(高峰),输出
27
+ ¥4.5/百万(闲时)或 ¥9/百万(高峰)。示例按高峰价、并把字符数保守当 token 数输出粗估;实际账单
28
+ 以供应商 usage 和账单为准。
29
+
30
+ 示例对 `/chat/completions` 的 POST 设置单次外网闸门,进程内第二次付费请求会在本地被拒绝。
31
+ 要取消流式请求,保存 `resolveLlmTaskId(request)` 返回的 `taskId`,再调用
32
+ `cancelLlmChatTask(taskId)`。按需流式入口没有需要宿主释放的客户端实例。
@@ -1,100 +1,100 @@
1
- import {
2
- resolveLlmTaskId,
3
- runLlmChatStream,
4
- type LlmChatRequestDto,
5
- type MediaReader,
6
- type RuntimeContext,
7
- type Transport,
8
- } from '@henjicc/ai-sdk/llm/streaming'
9
-
10
- const live = process.argv.includes('--live')
11
- const providerId = process.env.LLM_PROVIDER_ID?.trim() || 'deepseek'
12
- const modelId = process.env.LLM_MODEL_ID?.trim() || 'deepseek-v4-flash'
13
- const baseUrl = process.env.LLM_BASE_URL?.trim() || 'https://api.deepseek.com'
14
-
15
- class SingleChatTransport implements Transport {
16
- private paidRequests = 0
17
-
18
- async fetch(url: string, init?: RequestInit): Promise<Response> {
19
- if ((init?.method ?? 'GET').toUpperCase() === 'POST' && new URL(url).pathname.endsWith('/chat/completions')) {
20
- this.paidRequests += 1
21
- if (this.paidRequests > 1) throw new Error('Blocked a repeated paid LLM request')
22
- }
23
- return await fetch(url, init)
24
- }
25
- }
26
-
27
- class DryRunTransport implements Transport {
28
- calls = 0
29
-
30
- async fetch(): Promise<Response> {
31
- this.calls += 1
32
- return new Response(
33
- 'data: {"choices":[{"delta":{"content":"SDK OK"}}]}\n\ndata: [DONE]\n\n',
34
- { status: 200, headers: { 'Content-Type': 'text/event-stream' } },
35
- )
36
- }
37
- }
38
-
39
- const unusedMedia: MediaReader = {
40
- async read() {
41
- throw new Error('This text-only example does not read media')
42
- },
43
- }
44
-
45
- async function main(): Promise<void> {
46
- const dryTransport = new DryRunTransport()
47
- const apiKey = live ? process.env.LLM_API_KEY?.trim() : 'dry-run-not-a-secret'
48
- if (!apiKey) throw new Error('Missing LLM_API_KEY')
49
-
50
- const runtime: RuntimeContext = {
51
- transport: live ? new SingleChatTransport() : dryTransport,
52
- credentials: {
53
- get: (scope, requestedProviderId) => scope === 'llm' && requestedProviderId === providerId
54
- ? apiKey
55
- : undefined,
56
- },
57
- media: unusedMedia,
58
- }
59
- const prompt = '只回复两个英文单词:SDK OK'
60
- const request: LlmChatRequestDto = {
61
- requestId: live ? `example-llm-${Date.now()}` : 'example-llm-dry-run',
62
- providerId,
63
- modelId,
64
- adapter: providerId === 'deepseek' ? 'deepseek' : 'openai',
65
- baseUrl,
66
- messages: [{ role: 'user', content: prompt }],
67
- capabilities: { reasoning: providerId === 'deepseek' },
68
- reasoning: providerId === 'deepseek'
69
- ? { enabled: false, effort: 'high' }
70
- : undefined,
71
- policy: { max_tokens: 16 },
72
- }
73
- const taskId = resolveLlmTaskId(request)
74
- let output = ''
75
-
76
- const outcome = await runLlmChatStream(request, taskId, (event) => {
77
- if (event.type === 'Token') output += event.data
78
- }, runtime)
79
-
80
- if (!output.trim()) {
81
- throw new Error('LLM completed without a text token')
82
- }
83
-
84
- const conservativeCny = ((outcome.inputChars * 3) + (outcome.outputChars * 9)) / 1_000_000
85
- console.log(JSON.stringify({
86
- mode: live ? 'live' : 'dry-run',
87
- networkCalls: live ? 1 : 0,
88
- interceptedRequests: live ? undefined : dryTransport.calls,
89
- providerId,
90
- modelId,
91
- output,
92
- elapsedMs: outcome.elapsedMs,
93
- conservativeCnyEstimate: Number(conservativeCny.toFixed(6)),
94
- }))
95
- }
96
-
97
- void main().catch((error: unknown) => {
98
- console.error(error instanceof Error ? error.message : String(error))
99
- process.exitCode = 1
100
- })
1
+ import {
2
+ resolveLlmTaskId,
3
+ runLlmChatStream,
4
+ type LlmChatRequestDto,
5
+ type MediaReader,
6
+ type RuntimeContext,
7
+ type Transport,
8
+ } from '@henjicc/ai-sdk/llm/streaming'
9
+
10
+ const live = process.argv.includes('--live')
11
+ const providerId = process.env.LLM_PROVIDER_ID?.trim() || 'deepseek'
12
+ const modelId = process.env.LLM_MODEL_ID?.trim() || 'deepseek-v4-flash'
13
+ const baseUrl = process.env.LLM_BASE_URL?.trim() || 'https://api.deepseek.com'
14
+
15
+ class SingleChatTransport implements Transport {
16
+ private paidRequests = 0
17
+
18
+ async fetch(url: string, init?: RequestInit): Promise<Response> {
19
+ if ((init?.method ?? 'GET').toUpperCase() === 'POST' && new URL(url).pathname.endsWith('/chat/completions')) {
20
+ this.paidRequests += 1
21
+ if (this.paidRequests > 1) throw new Error('Blocked a repeated paid LLM request')
22
+ }
23
+ return await fetch(url, init)
24
+ }
25
+ }
26
+
27
+ class DryRunTransport implements Transport {
28
+ calls = 0
29
+
30
+ async fetch(): Promise<Response> {
31
+ this.calls += 1
32
+ return new Response(
33
+ 'data: {"choices":[{"delta":{"content":"SDK OK"}}]}\n\ndata: [DONE]\n\n',
34
+ { status: 200, headers: { 'Content-Type': 'text/event-stream' } },
35
+ )
36
+ }
37
+ }
38
+
39
+ const unusedMedia: MediaReader = {
40
+ async read() {
41
+ throw new Error('This text-only example does not read media')
42
+ },
43
+ }
44
+
45
+ async function main(): Promise<void> {
46
+ const dryTransport = new DryRunTransport()
47
+ const apiKey = live ? process.env.LLM_API_KEY?.trim() : 'dry-run-not-a-secret'
48
+ if (!apiKey) throw new Error('Missing LLM_API_KEY')
49
+
50
+ const runtime: RuntimeContext = {
51
+ transport: live ? new SingleChatTransport() : dryTransport,
52
+ credentials: {
53
+ get: (scope, requestedProviderId) => scope === 'llm' && requestedProviderId === providerId
54
+ ? apiKey
55
+ : undefined,
56
+ },
57
+ media: unusedMedia,
58
+ }
59
+ const prompt = '只回复两个英文单词:SDK OK'
60
+ const request: LlmChatRequestDto = {
61
+ requestId: live ? `example-llm-${Date.now()}` : 'example-llm-dry-run',
62
+ providerId,
63
+ modelId,
64
+ adapter: providerId === 'deepseek' ? 'deepseek' : 'openai',
65
+ baseUrl,
66
+ messages: [{ role: 'user', content: prompt }],
67
+ capabilities: { reasoning: providerId === 'deepseek' },
68
+ reasoning: providerId === 'deepseek'
69
+ ? { enabled: false, effort: 'high' }
70
+ : undefined,
71
+ policy: { max_tokens: 16 },
72
+ }
73
+ const taskId = resolveLlmTaskId(request)
74
+ let output = ''
75
+
76
+ const outcome = await runLlmChatStream(request, taskId, (event) => {
77
+ if (event.type === 'Token') output += event.data
78
+ }, runtime)
79
+
80
+ if (!output.trim()) {
81
+ throw new Error('LLM completed without a text token')
82
+ }
83
+
84
+ const conservativeCny = ((outcome.inputChars * 3) + (outcome.outputChars * 9)) / 1_000_000
85
+ console.log(JSON.stringify({
86
+ mode: live ? 'live' : 'dry-run',
87
+ networkCalls: live ? 1 : 0,
88
+ interceptedRequests: live ? undefined : dryTransport.calls,
89
+ providerId,
90
+ modelId,
91
+ output,
92
+ elapsedMs: outcome.elapsedMs,
93
+ conservativeCnyEstimate: Number(conservativeCny.toFixed(6)),
94
+ }))
95
+ }
96
+
97
+ void main().catch((error: unknown) => {
98
+ console.error(error instanceof Error ? error.message : String(error))
99
+ process.exitCode = 1
100
+ })
@@ -1,19 +1,19 @@
1
- {
2
- "name": "@henjicc/ai-sdk-example-llm-chat",
3
- "private": true,
4
- "type": "module",
5
- "scripts": {
6
- "build": "tsc -p tsconfig.json",
7
- "dry-run": "npm run build && node dist/index.js --dry-run",
8
- "check:bundle": "node scripts/check-bundle.mjs",
9
- "start": "npm run build && node dist/index.js --live"
10
- },
11
- "dependencies": {
12
- "@henjicc/ai-sdk": "0.2.8"
13
- },
14
- "devDependencies": {
15
- "@types/node": "^24.0.0",
16
- "esbuild": "^0.25.9",
17
- "typescript": "^5.9.2"
18
- }
19
- }
1
+ {
2
+ "name": "@henjicc/ai-sdk-example-llm-chat",
3
+ "private": true,
4
+ "type": "module",
5
+ "scripts": {
6
+ "build": "tsc -p tsconfig.json",
7
+ "dry-run": "npm run build && node dist/index.js --dry-run",
8
+ "check:bundle": "node scripts/check-bundle.mjs",
9
+ "start": "npm run build && node dist/index.js --live"
10
+ },
11
+ "dependencies": {
12
+ "@henjicc/ai-sdk": "0.4.0"
13
+ },
14
+ "devDependencies": {
15
+ "@types/node": "^24.0.0",
16
+ "esbuild": "^0.25.9",
17
+ "typescript": "^5.9.2"
18
+ }
19
+ }
@@ -1,14 +1,14 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2022",
4
- "lib": ["ES2022", "DOM"],
5
- "module": "NodeNext",
6
- "moduleResolution": "NodeNext",
7
- "strict": true,
8
- "skipLibCheck": true,
9
- "outDir": "dist",
10
- "rootDir": ".",
11
- "types": ["node"]
12
- },
13
- "include": ["index.ts"]
14
- }
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "lib": ["ES2022", "DOM"],
5
+ "module": "NodeNext",
6
+ "moduleResolution": "NodeNext",
7
+ "strict": true,
8
+ "skipLibCheck": true,
9
+ "outDir": "dist",
10
+ "rootDir": ".",
11
+ "types": ["node"]
12
+ },
13
+ "include": ["index.ts"]
14
+ }
@@ -1,31 +1,31 @@
1
- # minimal-node
2
-
3
- 用 `@henjicc/ai-sdk@0.2.8` 的 `generation` 与 `runtime` 按需入口调用 KIE `z-image`。
4
- 它保留完整 generation catalog,但不会带入 LLM/BigModel。示例不会下载结果文件;成功后只输出供应商返回的 URL。
5
-
6
- ## 安装
7
-
8
- SDK 公开发布在 npm,无需配置 registry 或访问令牌。
9
-
10
- ```bash
11
- npm install
12
- npm run dry-run
13
- ```
14
-
15
- `dry-run` 会走真实 catalog、builder、预处理和 KIE provider,但用本地 `Response` 截住请求,
16
- 输出中的 `networkCalls` 必须是 `0`。
17
-
18
- ## 一次真实调用
19
-
20
- 当前模型目录估价是 **$0.004/张**。确认账户有余额后,仅在当前终端注入密钥:
21
-
22
- ```bash
23
- KIE_API_KEY='你的密钥' npm start
24
- ```
25
-
26
- 示例在付费创建端点前有一次性闸门:即使 SDK 的“安全预连接重试”判断被触发,也会在第二次 POST
27
- 到达网络前本地拒绝,因此一次进程最多发出一个 KIE 创建请求。状态轮询是只读 GET,不会重复创建任务。
28
-
29
- `generate()` 返回 `pending + taskId` 时,示例继续调用 `continuePolling()` 直到得到 URL;SDK 不负责把
30
- URL 下载到磁盘。取消时应保留本次 `requestId` 或供应商 `taskId`,调用
31
- `client.cancel({ namespace: 'generation', taskId })`。
1
+ # minimal-node
2
+
3
+ 用 `@henjicc/ai-sdk@0.4.0` 的 `generation` 与 `runtime` 按需入口调用 KIE `z-image`。
4
+ 它保留完整 generation catalog,但不会带入 LLM/BigModel。示例不会下载结果文件;成功后只输出供应商返回的 URL。
5
+
6
+ ## 安装
7
+
8
+ SDK 公开发布在 npm,无需配置 registry 或访问令牌。
9
+
10
+ ```bash
11
+ npm install
12
+ npm run dry-run
13
+ ```
14
+
15
+ `dry-run` 会走真实 catalog、builder、预处理和 KIE provider,但用本地 `Response` 截住请求,
16
+ 输出中的 `networkCalls` 必须是 `0`。
17
+
18
+ ## 一次真实调用
19
+
20
+ 当前模型目录估价是 **$0.004/张**。确认账户有余额后,仅在当前终端注入密钥:
21
+
22
+ ```bash
23
+ KIE_API_KEY='你的密钥' npm start
24
+ ```
25
+
26
+ 示例在付费创建端点前有一次性闸门:即使 SDK 的“安全预连接重试”判断被触发,也会在第二次 POST
27
+ 到达网络前本地拒绝,因此一次进程最多发出一个 KIE 创建请求。状态轮询是只读 GET,不会重复创建任务。
28
+
29
+ `generate()` 返回 `pending + taskId` 时,示例继续调用 `continuePolling()` 直到得到 URL;SDK 不负责把
30
+ URL 下载到磁盘。取消时应保留本次 `requestId` 或供应商 `taskId`,调用
31
+ `client.cancel({ namespace: 'generation', taskId })`。