@henjicc/ai-sdk 0.2.8 → 0.3.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 (236) hide show
  1. package/CHANGELOG.md +153 -143
  2. package/README.md +486 -461
  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/modelCatalogEntries.js +16 -0
  53. package/dist/llm/providerPresets.js +2 -2
  54. package/dist/packs/models/apimart/gpt-image-2.5.d.ts +6 -0
  55. package/dist/packs/models/apimart/gpt-image-2.5.js +7 -0
  56. package/dist/packs/models/fal/gpt-image-2.5.d.ts +6 -0
  57. package/dist/packs/models/fal/gpt-image-2.5.js +7 -0
  58. package/dist/packs/models/grsai/gpt-image-2.5.d.ts +6 -0
  59. package/dist/packs/models/grsai/gpt-image-2.5.js +7 -0
  60. package/dist/packs/models/kie/gpt-image-2.5.d.ts +6 -0
  61. package/dist/packs/models/kie/gpt-image-2.5.js +7 -0
  62. package/dist/packs/provider-packs/apimart.d.ts +1 -1
  63. package/dist/packs/provider-packs/apimart.js +21 -20
  64. package/dist/packs/provider-packs/fal.d.ts +1 -1
  65. package/dist/packs/provider-packs/fal.js +37 -36
  66. package/dist/packs/provider-packs/grsai.d.ts +1 -1
  67. package/dist/packs/provider-packs/grsai.js +6 -5
  68. package/dist/packs/provider-packs/kie.d.ts +1 -1
  69. package/dist/packs/provider-packs/kie.js +28 -27
  70. package/dist/packs/tool-models/fal/{qwen-image-edit-2509-multiple-angles.d.ts → qwen-image-edit-2511-multiple-angles.d.ts} +1 -1
  71. package/dist/packs/tool-models/fal/{qwen-image-edit-2509-multiple-angles.js → qwen-image-edit-2511-multiple-angles.js} +1 -1
  72. package/dist/packs/tool-packs/fal-multi-angle-tools.js +1 -1
  73. package/dist/tool-packs/fal-multi-angle/models/qwen-image-edit-2511-multiple-angles.model.d.ts +2 -0
  74. 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
  75. package/docs/README.md +26 -26
  76. package/docs/consumers.md +54 -48
  77. package/docs/llm-adaptation/README.md +139 -139
  78. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/DeepSeek.md +103 -91
  79. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/Kimi.md +75 -75
  80. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/MiniMax.md +84 -84
  81. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//345/260/217/347/261/263MiMo.md +85 -85
  82. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//346/231/272/350/260/261GLM.md +232 -232
  83. 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
  84. package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//347/231/276/347/202/274Qwen.md +84 -84
  85. 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
  86. package/docs/model-adaptation/Bria-Eraser/Bria-Eraser_Fal.md +32 -32
  87. 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
  88. package/docs/model-adaptation/ControlLight/ControlLight_Fal.md +85 -85
  89. 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
  90. package/docs/model-adaptation/Finegrain-Eraser/Finegrain-Eraser_Fal.md +31 -31
  91. package/docs/model-adaptation/Flux-Pro-Erase/Flux-Pro-Erase_Fal.md +34 -34
  92. package/docs/model-adaptation/Fun-ASR/Fun-ASR_/347/231/276/347/202/274.md +43 -43
  93. 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
  94. package/docs/model-adaptation/Fun-ASR-Realtime/Fun-ASR-Realtime_/347/231/276/347/202/274.md +37 -37
  95. 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
  96. package/docs/model-adaptation/GLM-5.3-Flash/GLM-5.3-Flash_/346/231/272/350/260/261.md +207 -207
  97. package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_APIMart.md +173 -173
  98. package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_Fal.md +94 -94
  99. package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_Grsai.md +137 -137
  100. package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_KIE.md +93 -93
  101. package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_APIMart.md +66 -0
  102. package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_Fal.md +55 -0
  103. package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_Grsai.md +53 -0
  104. package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_KIE.md +55 -0
  105. package/docs/model-adaptation/GPT-OSS-20B/GPT-OSS-20B_Groq.md +62 -62
  106. package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_APIMart.md +124 -124
  107. package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_Fal.md +84 -84
  108. package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_KIE.md +129 -129
  109. package/docs/model-adaptation/Grok-Imagine/Grok-Imagine_KIE.md +36 -36
  110. package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_APIMart.md +250 -250
  111. package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_Fal.md +84 -84
  112. package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_KIE.md +105 -105
  113. package/docs/model-adaptation/Hailuo-02/Hailuo-02_Fal.md +93 -93
  114. package/docs/model-adaptation/Hailuo-02/Hailuo-02_KIE.md +56 -56
  115. package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_Fal.md +88 -88
  116. package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_KIE.md +51 -51
  117. package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_/346/264/276/346/254/247/344/272/221.md +70 -70
  118. package/docs/model-adaptation/IC-Light-v2/IC-Light-v2_Fal.md +97 -94
  119. 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
  120. 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
  121. 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
  122. 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
  123. 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
  124. package/docs/model-adaptation/Kling-3.0/Kling-3.0_APIMart.md +112 -112
  125. package/docs/model-adaptation/Kling-3.0/Kling-3.0_Fal.md +89 -89
  126. package/docs/model-adaptation/Kling-3.0/Kling-3.0_KIE.md +106 -106
  127. package/docs/model-adaptation/Kling-3.0/Kling-3.0_/346/264/276/346/254/247/344/272/221.md +119 -119
  128. package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_APIMart.md +125 -125
  129. package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_Fal.md +107 -107
  130. package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_KIE.md +143 -143
  131. package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_APIMart.md +85 -85
  132. package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_Fal.md +83 -83
  133. package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_KIE.md +84 -84
  134. package/docs/model-adaptation/Midjourney/Midjourney_APIMart.md +396 -396
  135. package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_APIMart.md +234 -234
  136. package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_Fal.md +108 -108
  137. package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_KIE.md +111 -111
  138. package/docs/model-adaptation/MiniMax-Speech/MiniMax-Speech_/346/264/276/346/254/247/344/272/221.md +170 -170
  139. package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_APIMart.md +89 -89
  140. package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_Fal.md +99 -99
  141. package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_Grsai.md +82 -82
  142. package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_KIE.md +70 -70
  143. package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_APIMart.md +79 -79
  144. package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_Grsai.md +65 -65
  145. package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_KIE.md +64 -64
  146. package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_APIMart.md +83 -83
  147. package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_Fal.md +89 -89
  148. package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_Grsai.md +82 -82
  149. package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_KIE.md +64 -64
  150. 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
  151. package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_APIMart.md +117 -117
  152. package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_Fal.md +84 -84
  153. package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_KIE.md +103 -103
  154. package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_/347/231/276/347/202/274.md +138 -138
  155. 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
  156. package/docs/model-adaptation/Qwen-MT-Flash/Qwen-MT-Flash_/347/231/276/347/202/274.md +47 -47
  157. package/docs/model-adaptation/Qwen-MT-Lite/Qwen-MT-Lite_/347/231/276/347/202/274.md +39 -39
  158. package/docs/model-adaptation/Qwen-MT-Plus/Qwen-MT-Plus_/347/231/276/347/202/274.md +39 -39
  159. package/docs/model-adaptation/Qwen3-ASR-Flash/Qwen3-ASR-Flash_/347/231/276/347/202/274.md +40 -40
  160. 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
  161. package/docs/model-adaptation/Qwen3-ASR-Flash-Filetrans/Qwen3-ASR-Flash-Filetrans_/347/231/276/347/202/274.md +41 -41
  162. package/docs/model-adaptation/Qwen3-ASR-Flash-Realtime/Qwen3-ASR-Flash-Realtime_/347/231/276/347/202/274.md +35 -35
  163. 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
  164. package/docs/model-adaptation/README.md +313 -295
  165. 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
  166. 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
  167. 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
  168. package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_APIMart.md +121 -121
  169. package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_Fal.md +97 -97
  170. package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_KIE.md +86 -86
  171. package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_APIMart.md +89 -89
  172. package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_Fal.md +95 -95
  173. package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_KIE.md +78 -78
  174. package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_APIMart.md +89 -89
  175. package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_Fal.md +96 -96
  176. package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_KIE.md +78 -78
  177. package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_APIMart.md +212 -212
  178. package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_Fal.md +94 -94
  179. package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_KIE.md +89 -89
  180. package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_APIMart.md +106 -106
  181. package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_Fal.md +91 -91
  182. package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_KIE.md +89 -89
  183. 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
  184. package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_APIMart.md +194 -194
  185. package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_Fal.md +100 -100
  186. package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_KIE.md +141 -141
  187. 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
  188. package/docs/model-adaptation/SenseVoiceSmall/SenseVoiceSmall_/347/241/205/345/237/272/346/265/201/345/212/250.md +69 -69
  189. package/docs/model-adaptation/TeleSpeechASR/TeleSpeechASR_/347/241/205/345/237/272/346/265/201/345/212/250.md +72 -72
  190. 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
  191. 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
  192. package/docs/model-adaptation/Wan-2.5-Preview/Wan-2.5-Preview_/346/264/276/346/254/247/344/272/221.md +82 -82
  193. package/docs/model-adaptation/Wan-2.6/Wan-2.6_/346/264/276/346/254/247/344/272/221.md +84 -84
  194. package/docs/model-adaptation/Wan-2.7/Wan-2.7_/346/264/276/346/254/247/344/272/221.md +122 -122
  195. package/docs/model-adaptation/Whisper-Large-v3/Whisper-Large-v3_Groq.md +76 -76
  196. package/docs/model-adaptation/Whisper-Large-v3-Turbo/Whisper-Large-v3-Turbo_Groq.md +75 -75
  197. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_APIMart.md +88 -88
  198. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_Fal.md +95 -95
  199. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_KIE.md +71 -71
  200. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_/347/231/276/347/202/274.md +122 -122
  201. package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_/351/255/224/346/220/255.md +97 -97
  202. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/APIMart.md +238 -238
  203. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Fal.md +172 -172
  204. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Groq.md +121 -121
  205. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Grsai.md +217 -217
  206. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/KIE.md +131 -131
  207. 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
  208. 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
  209. 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
  210. 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
  211. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//347/231/276/347/202/274.md +237 -227
  212. 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 +110 -88
  213. package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//351/255/224/346/220/255.md +207 -207
  214. 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
  215. 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
  216. package/docs//346/216/245/345/205/245/346/214/207/345/215/227/Electron.md +77 -77
  217. package/docs//346/216/245/345/205/245/346/214/207/345/215/227/Tauri.md +81 -81
  218. package/docs//346/216/245/345/205/245/346/214/207/345/215/227/UXP.md +169 -169
  219. 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
  220. 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
  221. package/examples/form-renderer/README.md +17 -17
  222. package/examples/form-renderer/cli.ts +32 -32
  223. package/examples/form-renderer/index.ts +144 -144
  224. package/examples/form-renderer/package.json +16 -16
  225. package/examples/form-renderer/tsconfig.json +14 -14
  226. package/examples/llm-chat/README.md +32 -32
  227. package/examples/llm-chat/index.ts +100 -100
  228. package/examples/llm-chat/package.json +19 -19
  229. package/examples/llm-chat/tsconfig.json +14 -14
  230. package/examples/minimal-node/README.md +31 -31
  231. package/examples/minimal-node/index.ts +138 -138
  232. package/examples/minimal-node/package.json +17 -17
  233. package/examples/minimal-node/tsconfig.json +14 -14
  234. package/package.json +252 -197
  235. package/dist/tool-packs/fal-multi-angle/models/qwen-image-edit-2509-multiple-angles.model.d.ts +0 -2
  236. 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.3.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.3.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.3.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 })`。