nolo-cli 0.80.0-alpha.1 → 0.80.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 (156) hide show
  1. package/README.md +2 -2
  2. package/{_executeModel-T3FPYFVF.js → _executeModel-UXVEB3GO.js} +46 -46
  3. package/{action-D22U6CTH.js → action-YVYQEAAV.js} +11 -11
  4. package/{addContentAction-XAPUTGL4.js → addContentAction-O7R66HEX.js} +9 -9
  5. package/{addDialogAgentAction-M7VLLBZM.js → addDialogAgentAction-74OA7KYP.js} +8 -8
  6. package/{agentDeleteCommand-2TYFURBN.js → agentDeleteCommand-OODHSL4K.js} +30 -28
  7. package/{agentEmailCommands-7P35ZMUA.js → agentEmailCommands-3R73WSCD.js} +64 -60
  8. package/{agentGrantCommands-R3VQEZJR.js → agentGrantCommands-M3XFO6EN.js} +2 -2
  9. package/{agentListCommands-IFUOWXP3.js → agentListCommands-TBTEXV2E.js} +38 -30
  10. package/{agentMachineCommands-G46ZZ2ZQ.js → agentMachineCommands-3GKE6ZHG.js} +30 -28
  11. package/{agentProviderCommands-65ZC2WB4.js → agentProviderCommands-GNPTL5XR.js} +87 -0
  12. package/{agentPullCommand-N7L2CT7L.js → agentPullCommand-O5MPVJ5E.js} +3 -3
  13. package/{agentRecordCommands-R74LTQEQ.js → agentRecordCommands-3664GLRE.js} +61 -57
  14. package/{agentRunCommand-UKJAECQ6.js → agentRunCommand-YNSEOBTR.js} +62 -58
  15. package/{agentRunControl-T44MESII.js → agentRunControl-XLGD3UZ5.js} +1 -1
  16. package/{agentRuntimeLocal-PUZINLWJ.js → agentRuntimeLocal-5BX6PI4X.js} +28 -26
  17. package/{agentSlice-EACXUOWW.js → agentSlice-KTVOEUDX.js} +10 -10
  18. package/{appDeleteCommands-U4NTEJYQ.js → appDeleteCommands-UNTBD55Y.js} +30 -28
  19. package/{appDeployCommands-FXF45Q7F.js → appDeployCommands-LOF4JNBZ.js} +30 -28
  20. package/{appDeployStatusCommands-KONVRM53.js → appDeployStatusCommands-MMLE6BDW.js} +30 -28
  21. package/{appGetCommands-3VOGIZ7T.js → appGetCommands-WFJAJK6B.js} +30 -28
  22. package/{appListCommands-A6ROBW7P.js → appListCommands-NC265RGX.js} +30 -28
  23. package/{authCommand-EVGFLAHO.js → authCommand-F4EFRRX6.js} +164 -24
  24. package/{authCommands-ILTBI6JV.js → authCommands-RGOGCPP6.js} +4 -5
  25. package/builtinSkillRegistry-FUAVTRVZ.js +33 -0
  26. package/{chatQueueReduxAdapter-XEIJO5WR.js → chatQueueReduxAdapter-4YQF4NHY.js} +24 -24
  27. package/{chromeCommands-VOIRNJBL.js → chromeCommands-FZYAU75D.js} +1 -1
  28. package/{chromeOpsCommands-M7DPCX2T.js → chromeOpsCommands-62P2Q2YB.js} +31 -1
  29. package/{chunk-C3FZR5EC.js → chunk-2F7RJC6L.js} +1 -1
  30. package/{chunk-MGU5ADIQ.js → chunk-35EWBHJO.js} +10 -10
  31. package/{chunk-HQUORJTM.js → chunk-3BMYXEUW.js} +1 -1
  32. package/{chunk-3QPYFHAH.js → chunk-3DII57IT.js} +1 -1
  33. package/{chunk-KIS76A2P.js → chunk-3IIEFNGY.js} +38 -4
  34. package/{chunk-MEVSATIF.js → chunk-4OZYL5FG.js} +66 -792
  35. package/{chunk-GBPZKFYK.js → chunk-53HEEOTT.js} +4 -4
  36. package/{chunk-5XTOKQLW.js → chunk-5UTFL4QJ.js} +6 -2
  37. package/chunk-5ZUL4CUO.js +10 -0
  38. package/{chunk-E6RGHPDR.js → chunk-6D6VBVEW.js} +4 -6
  39. package/{chunk-CMH2SYHX.js → chunk-6OZ36FXI.js} +2 -2
  40. package/{chunk-QA6YKM3H.js → chunk-76WEAXJB.js} +49 -10
  41. package/{chunk-BYEJ7K2Z.js → chunk-7S4YWN7P.js} +1 -1
  42. package/{chunk-SREASRV5.js → chunk-ABQYVJBJ.js} +1 -1
  43. package/chunk-ACTMNVHM.js +93 -0
  44. package/{chunk-XWNRAIUL.js → chunk-AFUORTY4.js} +6 -16
  45. package/{chunk-AFIWC5NH.js → chunk-BLJWCTRL.js} +1 -1
  46. package/chunk-BNGW5ASC.js +344 -0
  47. package/{chunk-SZLVDREM.js → chunk-BP4XNZRM.js} +3 -3
  48. package/{chunk-2KDR4CWE.js → chunk-BYMV6QZG.js} +24 -1
  49. package/{chunk-HH65VA5U.js → chunk-CPH3W5A7.js} +15 -3
  50. package/{chunk-U6LKJRJB.js → chunk-D2P6UDPQ.js} +42 -26
  51. package/{chunk-L2Y24GRM.js → chunk-DEUUPHOO.js} +16 -12
  52. package/{chunk-MYU3MJCF.js → chunk-DHDMC6FO.js} +175 -7
  53. package/{chunk-CDVGNZDA.js → chunk-EFVDQUCT.js} +11 -173
  54. package/{chunk-EXMHJN7C.js → chunk-EYAQT56M.js} +4 -3
  55. package/{chunk-733J6D44.js → chunk-FLLFOP5L.js} +6 -6
  56. package/{chunk-H7UKKEIS.js → chunk-GFD4ALW3.js} +1 -1
  57. package/{chunk-PYXL2CJL.js → chunk-GPCZ7UXG.js} +1 -1
  58. package/{chunk-K7AG465Q.js → chunk-GQBOR3G6.js} +4 -2
  59. package/{chunk-QUH3XHL5.js → chunk-H3PIH2EO.js} +7 -7
  60. package/{chunk-YFADVSZE.js → chunk-H62HCIUP.js} +6 -6
  61. package/{chunk-PZM3EENV.js → chunk-HJUYAD4A.js} +1 -1
  62. package/{chunk-ALGK6TIE.js → chunk-HMPEO3ZE.js} +3 -3
  63. package/{chunk-3JQ2NRYU.js → chunk-HVURBGF3.js} +4 -4
  64. package/{chunk-FPTQQSS6.js → chunk-IAO6JBYW.js} +26 -5
  65. package/{chunk-V3ZKNK5D.js → chunk-IIVGDG4I.js} +11 -10
  66. package/{chunk-UDQWGU7F.js → chunk-J4MOO56S.js} +1 -1
  67. package/{chunk-DSRXPQWA.js → chunk-JAXOVNM4.js} +43 -43
  68. package/{chunk-KC5FAHVS.js → chunk-JEDZAO7L.js} +1 -1
  69. package/{chunk-6XIE5ZGI.js → chunk-JPGCXHNM.js} +1 -1
  70. package/chunk-JRQFUXY7.js +1625 -0
  71. package/chunk-KQ4ONNQD.js +677 -0
  72. package/{chunk-D74EWXL4.js → chunk-LBEDNSMY.js} +419 -72
  73. package/{chunk-X7Z7U4Z6.js → chunk-LIIKM7DD.js} +15 -15
  74. package/{chunk-RXX4GDIH.js → chunk-LS2ZANRJ.js} +1 -1
  75. package/{chunk-BJIRLHJR.js → chunk-M2EJHDJP.js} +4 -0
  76. package/{chunk-EVBFYPDC.js → chunk-MC4XLIJ7.js} +6 -2
  77. package/{chunk-G3NT6BM3.js → chunk-MPV6E6WR.js} +608 -60
  78. package/{chunk-ZY4K4CZR.js → chunk-MWAO7TZZ.js} +909 -304
  79. package/{chunk-QRBAZ5PW.js → chunk-NKRYKK7T.js} +3 -3
  80. package/{chunk-ZLPA7K55.js → chunk-OA6Q2A4I.js} +29 -10
  81. package/{chunk-QC5LGHYP.js → chunk-OF7AQZUG.js} +10 -5
  82. package/{chunk-UJ63UXGE.js → chunk-OIVSQH2O.js} +1006 -801
  83. package/{chunk-AETZ7AD6.js → chunk-Q554LLSI.js} +1 -1
  84. package/chunk-Q5FJJ6XI.js +103 -0
  85. package/{chunk-AJHEFRGJ.js → chunk-Q67DOFOO.js} +214 -5
  86. package/{chunk-UZ6XXCVR.js → chunk-QDSINZM3.js} +15 -2
  87. package/{chunk-AFIKMMGC.js → chunk-QIAVMDHY.js} +1 -1
  88. package/{chunk-QCZX4FTW.js → chunk-SH43IESU.js} +173 -15
  89. package/{chunk-FSFQ3A7S.js → chunk-SNPMM7H3.js} +137 -12
  90. package/{chunk-P7FA2HMM.js → chunk-SQZDZXP5.js} +13 -15
  91. package/{chunk-SPAQ4PVV.js → chunk-SV5IJK6K.js} +1 -1
  92. package/{chunk-BJCWNHVU.js → chunk-TOP2VXOR.js} +2 -2
  93. package/{chunk-EOU7ZSTU.js → chunk-TRCMIJA7.js} +1198 -50
  94. package/{chunk-4EJ5QYB5.js → chunk-UKZDAFYT.js} +1 -1
  95. package/{chunk-PGSKWZCB.js → chunk-UZGQNTVW.js} +1 -1
  96. package/{chunk-ZZCJUXUI.js → chunk-V4MJDUSR.js} +2 -2
  97. package/{chunk-JYYZCK2Z.js → chunk-V7E4PXQD.js} +1 -1
  98. package/{chunk-OZX2IPKM.js → chunk-VLTIYV3X.js} +1 -1
  99. package/{chunk-NHRQCXIQ.js → chunk-VMFTFOWF.js} +13 -3
  100. package/{chunk-E36HZARC.js → chunk-WADCY6G6.js} +3 -3
  101. package/{chunk-5J7W2VWW.js → chunk-WV42OMV7.js} +6 -265
  102. package/{chunk-DWPNOYMB.js → chunk-YQTQQX2H.js} +1 -1
  103. package/{chunk-Q6FF2MCK.js → chunk-Z77CRGTW.js} +1 -1
  104. package/{contentThunks-3SPROFG5.js → contentThunks-2USKJBI4.js} +25 -25
  105. package/{createAgentAutomationAction-EIP2EG3O.js → createAgentAutomationAction-NTLU42X2.js} +25 -25
  106. package/{createDialogAction-RLUSTN4D.js → createDialogAction-UCYF4BUN.js} +28 -28
  107. package/{createPageAction-4Y52G7WG.js → createPageAction-QFGUGZ5M.js} +26 -26
  108. package/{dbSlice-GKGGFNOB.js → dbSlice-XVWBAGYN.js} +8 -8
  109. package/{deleteFile-LWSR674W.js → deleteFile-YG6QMJLU.js} +3 -3
  110. package/{dialogCommands-G223U5WU.js → dialogCommands-X4OB6SC6.js} +34 -30
  111. package/{dialogSlice-THY45JWM.js → dialogSlice-HQFQIQDZ.js} +24 -24
  112. package/{docCreateCommands-2P47IJDK.js → docCreateCommands-DFST4PFR.js} +31 -29
  113. package/{docDeleteCommands-N3EGDOIC.js → docDeleteCommands-V37JZOSP.js} +32 -30
  114. package/{docReadCommands-6BFV2HI7.js → docReadCommands-Z64VDPDQ.js} +31 -29
  115. package/{docStore-ZQ3ECOPY.js → docStore-GVWEDN5E.js} +9 -9
  116. package/{docUpdateCommands-ZTMPXHC5.js → docUpdateCommands-I6FB6ENK.js} +31 -29
  117. package/{fetchMessages-DRABNDPZ.js → fetchMessages-EIU7UFFK.js} +3 -4
  118. package/{getPricing-HRMSOF3E.js → getPricing-LUSEABA6.js} +4 -4
  119. package/{handleSendMessageAction-CE4M5XIE.js → handleSendMessageAction-TLB2SAU4.js} +24 -24
  120. package/index.js +101 -84
  121. package/{localDialogRead-PUQKFI73.js → localDialogRead-BTFJ4V2I.js} +2 -2
  122. package/{localRuntimeDb-P37ZTX55.js → localRuntimeDb-SYQGUF4U.js} +1 -1
  123. package/{machineCommands-4OT7KVCD.js → machineCommands-PV5XA7UF.js} +61 -57
  124. package/{machineWsRunDispatch-TR3EYESP.js → machineWsRunDispatch-W2DPC7TZ.js} +59 -55
  125. package/{memberThunks-KATHH3F4.js → memberThunks-QGFLFVCI.js} +9 -9
  126. package/{models-GS72DVJS.js → models-T3SG6MJ5.js} +2 -2
  127. package/{offlineMarxistsAgentCommand-GEH6SNNA.js → offlineMarxistsAgentCommand-HGXZV4XJ.js} +1 -1
  128. package/package.json +1 -1
  129. package/providerPresetApply-FG6NZ57W.js +214 -0
  130. package/providerRegistry-757OWH3O.js +31 -0
  131. package/{read-LC6HVYBN.js → read-COE3ZYR6.js} +5 -4
  132. package/{readDocTool-N3ERJHHF.js → readDocTool-5USN4A6V.js} +1 -1
  133. package/{readlineWorkspace-RE3P324X.js → readlineWorkspace-PHZXJKJM.js} +194 -109
  134. package/{removeDialogAgentAction-F5GPTALR.js → removeDialogAgentAction-IX3MN2ZO.js} +11 -11
  135. package/{runAgentClientLoop-NE5EHXSS.js → runAgentClientLoop-26DG6ZEY.js} +45 -45
  136. package/{runtimeDoctorCommands-CROTMULY.js → runtimeDoctorCommands-X6WDBEQX.js} +2 -2
  137. package/{setDialogExtraReferencesAction-AY4ZCF3A.js → setDialogExtraReferencesAction-X4HCPNZL.js} +9 -9
  138. package/{setPrimaryDialogAgentAction-HPMG7V3R.js → setPrimaryDialogAgentAction-4GMIQLOD.js} +11 -11
  139. package/{settingSlice-OEJA4NQO.js → settingSlice-ZQZVUPKK.js} +10 -10
  140. package/{spaceCommands-MRP5U3C3.js → spaceCommands-3QH2QFNW.js} +29 -27
  141. package/{streamAgentChatTurn-A6L6O22P.js → streamAgentChatTurn-BY7IPY5C.js} +57 -56
  142. package/{switchDialogAgentAction-HMDZTZ4I.js → switchDialogAgentAction-N52LRPA3.js} +8 -8
  143. package/{tableCommands-SUNTHAYX.js → tableCommands-O6NWHFKV.js} +1 -1
  144. package/{toolApiClient-VGYUB4P5.js → toolApiClient-QVJ6HDNN.js} +2 -2
  145. package/{tools-JS475NYO.js → tools-4Y2EYH5D.js} +41 -39
  146. package/tuiSummaryLlmCaller-T2SHYMDZ.js +127 -0
  147. package/{updateCommands-Y363MC3L.js → updateCommands-2M74UL7P.js} +2 -2
  148. package/{updateDialogTitleAction-GMZUT6RP.js → updateDialogTitleAction-2S4DCP35.js} +45 -28
  149. package/chunk-3IT2PFHL.js +0 -611
  150. package/chunk-I42VC5KR.js +0 -15
  151. package/chunk-NG4UT4K4.js +0 -79
  152. package/codingSkills-E6KSDNSJ.js +0 -48
  153. package/tuiSummaryLlmCaller-3Z24VUWM.js +0 -116
  154. package/{chunk-3RAG2NAD.js → chunk-UKWGR5SS.js} +3 -3
  155. package/{db-VQSAOWAO.js → db-WK5MDZVN.js} +1 -1
  156. package/{localRuntimeAuthority-R5UBODT3.js → localRuntimeAuthority-6IR6BBXE.js} +3 -3
@@ -9,897 +9,569 @@ import {
9
9
  platformHostedModels,
10
10
  toCnyCredits,
11
11
  zaiModels
12
- } from "./chunk-AJHEFRGJ.js";
12
+ } from "./chunk-Q67DOFOO.js";
13
13
 
14
- // packages/integrations/anthropic/anthropicModels.ts
15
- var anthropicModels = [
14
+ // packages/integrations/qwen/models.ts
15
+ var qwenModels = [
16
+ // ── Qwen3 旗舰 ──
16
17
  {
17
- name: "claude-3-5-sonnet-latest",
18
- displayName: "Claude 3.5 Sonnet",
18
+ name: "qwen3.8-max",
19
+ displayName: "Qwen3.8 Max",
19
20
  hasVision: true,
20
- description: "Our most intelligent model to date",
21
- contextWindow: 2e5,
22
- maxOutputTokens: 8192,
23
- price: {
24
- input: 27,
25
- output: 135,
26
- cachingWrite: 33.75,
27
- cachingRead: 2.7
28
- }
21
+ contextWindow: 1e6,
22
+ maxOutputTokens: 131072,
23
+ jsonOutput: true,
24
+ fnCall: true,
25
+ supportsTool: true,
26
+ supportsReasoningEffort: true,
27
+ // 官方价:输入 ¥12/M、输出 ¥36/M;缓存命中 ¥1.5/M、显式缓存创建 ¥15/M、显式缓存命中 ¥1/M。
28
+ price: { input: toCnyCredits(12), output: toCnyCredits(36) },
29
+ provider: "qwen",
30
+ description: "2.4\u4E07\u4EBF\u53C2\u6570 MoE \u65D7\u8230\uFF0C1M \u4E0A\u4E0B\u6587\uFF08\u8F93\u5165 991K / \u8F93\u51FA 131K / \u601D\u7EF4\u94FE 262K\uFF09\uFF0C\u539F\u751F\u89C6\u89C9\u7406\u89E3\u8D2F\u7A7F\u89C4\u5212-\u6267\u884C-\u9A8C\u8BC1\uFF0C\u81EA\u4E3B\u7F16\u7A0B\u53EF\u4EA4\u4ED8\u5B8C\u6574\u9879\u76EE\u3002"
29
31
  },
30
32
  {
31
- name: "claude-3-7-sonnet-latest",
32
- displayName: "Claude 3.7 Sonnet",
33
+ name: "qwen3-max",
34
+ displayName: "Qwen3 Max",
33
35
  hasVision: true,
34
- description: "Our most intelligent model to date",
35
- contextWindow: 2e5,
36
- maxOutputTokens: 8192,
37
- price: {
38
- input: 27,
39
- output: 135,
40
- cachingWrite: 33.75,
41
- cachingRead: 2.7
42
- }
36
+ contextWindow: 262144,
37
+ maxOutputTokens: 32768,
38
+ jsonOutput: true,
39
+ fnCall: true,
40
+ supportsTool: true,
41
+ supportsReasoningEffort: true,
42
+ price: { input: toCnyCredits(6), output: toCnyCredits(24) },
43
+ provider: "qwen",
44
+ description: "\u5343\u95EE3 \u65D7\u8230\u6A21\u578B\uFF0C\u652F\u6301\u601D\u8003\u6A21\u5F0F\u3001\u51FD\u6570\u8C03\u7528\u3001\u7ED3\u6784\u5316\u8F93\u51FA\u3002"
43
45
  },
44
46
  {
45
- name: "claude-3-5-haiku-20241022",
46
- displayName: "Claude 3.5 Haiku",
47
- hasVision: false,
48
- description: "Fastest, most cost-effective model",
49
- contextWindow: 2e5,
50
- maxOutputTokens: 8192,
51
- price: {
52
- input: 7.2,
53
- output: 36,
54
- cachingWrite: 9,
55
- cachingRead: 0.72
56
- }
57
- }
58
- ];
59
-
60
- // packages/integrations/anthropic/anthropicOAuthModels.ts
61
- var oauthModel = ({ name, displayName, contextWindow, thinkingMode, maxOutputTokens }) => ({
62
- name,
63
- displayName,
64
- hasVision: true,
65
- description: `OAuth \u8BA2\u9605\u6A21\u578B\uFF08${displayName}\uFF0C${thinkingMode === "adaptive" ? "Adaptive thinking" : "Extended thinking"}\uFF09`,
66
- contextWindow,
67
- ...maxOutputTokens ? { maxOutputTokens } : {},
68
- supportsReasoningEffort: true,
69
- price: { input: 0, output: 0 }
70
- });
71
- var anthropicOAuthModels = [
72
- // 5 代(1M + Adaptive thinking always-on;官方 max output 128k)
73
- oauthModel({ name: "claude-fable-5", displayName: "Claude Fable 5", contextWindow: 1e6, thinkingMode: "adaptive", maxOutputTokens: 128e3 }),
74
- oauthModel({ name: "claude-opus-5", displayName: "Claude Opus 5", contextWindow: 1e6, thinkingMode: "adaptive", maxOutputTokens: 128e3 }),
75
- oauthModel({ name: "claude-sonnet-5", displayName: "Claude Sonnet 5", contextWindow: 1e6, thinkingMode: "adaptive", maxOutputTokens: 128e3 }),
76
- // 4.6/4.7/4.8 系(Adaptive thinking;context 官方未单列,参照 fuzzy claude-4.6→1M)
77
- oauthModel({ name: "claude-opus-4-8", displayName: "Claude Opus 4.8", contextWindow: 1e6, thinkingMode: "adaptive" }),
78
- oauthModel({ name: "claude-opus-4-7", displayName: "Claude Opus 4.7", contextWindow: 1e6, thinkingMode: "adaptive" }),
79
- oauthModel({ name: "claude-sonnet-4-6", displayName: "Claude Sonnet 4.6", contextWindow: 1e6, thinkingMode: "adaptive" }),
80
- oauthModel({ name: "claude-opus-4-6", displayName: "Claude Opus 4.6", contextWindow: 1e6, thinkingMode: "adaptive" }),
81
- // 4.5 系(Extended thinking;官方发布规格 1M)
82
- oauthModel({ name: "claude-opus-4-5-20251101", displayName: "Claude Opus 4.5", contextWindow: 1e6, thinkingMode: "extended" }),
83
- oauthModel({ name: "claude-sonnet-4-5-20250929", displayName: "Claude Sonnet 4.5", contextWindow: 1e6, thinkingMode: "extended" }),
84
- // haiku-4-5(官方明确 context=200k + Extended thinking)
85
- oauthModel({ name: "claude-haiku-4-5-20251001", displayName: "Claude Haiku 4.5", contextWindow: 2e5, thinkingMode: "extended" })
86
- ];
87
- var OAUTH_MODEL_THINKING_MODE = new Map(
88
- anthropicOAuthModels.map((m) => [m.name, m.thinkingMode])
89
- );
90
- function isAdaptiveThinkingModelId(model) {
91
- if (!model) return false;
92
- const tableMode = OAUTH_MODEL_THINKING_MODE.get(model);
93
- if (tableMode === "adaptive") return true;
94
- if (tableMode === "extended") return false;
95
- const n = model.toLowerCase();
96
- return n.includes("fable-5") || n.includes("opus-5") || n.includes("sonnet-5") || n.includes("opus-4-8") || n.includes("opus-4-7") || n.includes("sonnet-4-6") || n.includes("opus-4-6");
97
- }
98
-
99
- // packages/ai/agent/liveAudioModel.ts
100
- var DEFAULT_GOOGLE_LIVE_AUDIO_MODEL = "gemini-3.1-flash-live-preview";
101
-
102
- // packages/integrations/google/models.ts
103
- var googleModels = [
104
- {
105
- name: DEFAULT_GOOGLE_LIVE_AUDIO_MODEL,
106
- displayName: "Gemini 3.1 Flash Live",
107
- provider: "google",
108
- description: "Gemini Live API model for low-latency real-time voice conversations.",
47
+ name: "qwen3-max-preview",
48
+ displayName: "Qwen3 Max Preview",
109
49
  hasVision: true,
110
- hasAudio: true,
111
- contextWindow: 1048576,
112
- maxOutputTokens: 65500,
50
+ contextWindow: 81920,
51
+ maxOutputTokens: 32768,
52
+ jsonOutput: true,
53
+ fnCall: true,
113
54
  supportsTool: true,
114
- price: {
115
- input: 4,
116
- output: 24,
117
- cachingWrite: 0.4,
118
- cachingRead: 0.4
119
- }
55
+ supportsReasoningEffort: true,
56
+ price: { input: toCnyCredits(6), output: toCnyCredits(24) },
57
+ provider: "qwen"
120
58
  },
121
59
  {
122
- name: "gemini-3.6-flash",
123
- displayName: "Gemini 3.6 Flash",
124
- provider: "google",
125
- description: "Gemini 3.6 Flash model for fast frontier agentic, coding, and multimodal tasks.",
60
+ name: "qwen3-235b-a22b-instruct-2507",
61
+ displayName: "Qwen3 235B A22B Instruct",
126
62
  hasVision: true,
127
- hasAudio: true,
128
- contextWindow: 1048576,
129
- maxOutputTokens: 65536,
63
+ contextWindow: 262144,
64
+ maxOutputTokens: 32768,
65
+ jsonOutput: true,
66
+ fnCall: true,
130
67
  supportsTool: true,
131
68
  supportsReasoningEffort: true,
132
- price: {
133
- input: 12,
134
- output: 72,
135
- cachingWrite: 1.2,
136
- cachingRead: 1.2
137
- },
138
- serviceTierPriceMultipliers: {
139
- batch: { inputOutput: 0.5, cache: 0.5 },
140
- flex: { inputOutput: 0.5, cache: 0.08 / 0.15 },
141
- priority: { inputOutput: 1.8, cache: 1.8 }
142
- }
69
+ price: { input: toCnyCredits(4), output: toCnyCredits(12) },
70
+ provider: "qwen"
143
71
  },
144
72
  {
145
- name: "gemini-3.7-flash",
146
- displayName: "Gemini 3.7 Flash",
147
- provider: "google",
148
- description: "Gemini 3.7 Flash model for fast frontier agentic, coding, and multimodal tasks.",
73
+ name: "qwen3-next-80b-a3b-instruct",
74
+ displayName: "Qwen3 Next 80B A3B Instruct",
149
75
  hasVision: true,
150
- hasAudio: true,
76
+ contextWindow: 81920,
77
+ maxOutputTokens: 32768,
78
+ jsonOutput: true,
79
+ fnCall: true,
80
+ supportsTool: true,
81
+ supportsReasoningEffort: true,
82
+ price: { input: toCnyCredits(2), output: toCnyCredits(6) },
83
+ provider: "qwen"
84
+ },
85
+ // ── Qwen3-Coder 编程系列 ──
86
+ {
87
+ name: "qwen3-coder-plus",
88
+ displayName: "Qwen3 Coder Plus",
89
+ hasVision: false,
151
90
  contextWindow: 1048576,
152
91
  maxOutputTokens: 65536,
92
+ jsonOutput: true,
93
+ fnCall: true,
153
94
  supportsTool: true,
154
95
  supportsReasoningEffort: true,
155
- // Antigravity's subscription wire route is tiered; Gemini API uses this logical id.
156
- price: {
157
- input: 6,
158
- output: 30,
159
- cachingWrite: 0.6,
160
- cachingRead: 0.6
161
- }
96
+ price: { input: toCnyCredits(3), output: toCnyCredits(9) },
97
+ provider: "qwen",
98
+ description: "\u5343\u95EE3 \u7F16\u7A0B\u65D7\u8230\uFF0C1M \u957F\u4E0A\u4E0B\u6587\uFF0C\u9002\u5408\u4EE3\u7801\u751F\u6210\u4E0E Agent \u7F16\u7A0B\u3002"
162
99
  },
163
100
  {
164
- name: "gemini-3.8-flash",
165
- displayName: "Gemini 3.8 Flash",
166
- provider: "google",
167
- description: "Gemini 3.8 Flash model for fast frontier agentic, coding, and multimodal tasks.",
168
- hasVision: true,
169
- hasAudio: true,
101
+ name: "qwen3-coder-flash",
102
+ displayName: "Qwen3 Coder Flash",
103
+ hasVision: false,
170
104
  contextWindow: 1048576,
171
105
  maxOutputTokens: 65536,
106
+ jsonOutput: true,
107
+ fnCall: true,
172
108
  supportsTool: true,
173
109
  supportsReasoningEffort: true,
174
- price: {
175
- input: 6,
176
- output: 30,
177
- cachingWrite: 0.6,
178
- cachingRead: 0.6
179
- }
110
+ price: { input: toCnyCredits(1), output: toCnyCredits(3) },
111
+ provider: "qwen"
180
112
  },
181
113
  {
182
- name: "gemini-2.5-pro",
183
- displayName: "Gemini 2.5 Pro",
184
- provider: "google",
185
- description: "Gemini 2.5 Pro model for complex reasoning, coding, and large context multimodal tasks.",
186
- hasVision: true,
187
- hasAudio: true,
114
+ name: "qwen3-coder-480b-a35b-instruct",
115
+ displayName: "Qwen3 Coder 480B A35B Instruct",
116
+ hasVision: false,
188
117
  contextWindow: 1048576,
189
118
  maxOutputTokens: 65536,
119
+ jsonOutput: true,
120
+ fnCall: true,
190
121
  supportsTool: true,
191
122
  supportsReasoningEffort: true,
192
- price: {
193
- input: 10,
194
- output: 40,
195
- cachingWrite: 2.5,
196
- cachingRead: 2.5
197
- }
123
+ price: { input: toCnyCredits(5), output: toCnyCredits(15) },
124
+ provider: "qwen"
198
125
  },
126
+ // ── 长上下文 ──
199
127
  {
200
- name: "gemini-3.1-pro",
201
- displayName: "Gemini 3.1 Pro",
202
- provider: "google",
203
- description: "Gemini 3.1 Pro frontier reasoning, coding, and multimodal model.",
128
+ name: "qwen-long",
129
+ displayName: "Qwen Long",
130
+ hasVision: false,
131
+ contextWindow: 10485760,
132
+ maxOutputTokens: 8192,
133
+ jsonOutput: true,
134
+ fnCall: false,
135
+ supportsTool: false,
136
+ price: { input: toCnyCredits(0.5), output: toCnyCredits(2) },
137
+ provider: "qwen",
138
+ description: "10M \u8D85\u957F\u4E0A\u4E0B\u6587\uFF0C\u9002\u5408\u957F\u6587\u6863\u5904\u7406\u3002"
139
+ },
140
+ // ── 旧版主力(仍常用) ──
141
+ {
142
+ name: "qwen-plus",
143
+ displayName: "Qwen Plus",
204
144
  hasVision: true,
205
- hasAudio: true,
206
145
  contextWindow: 1048576,
207
- maxOutputTokens: 65536,
146
+ maxOutputTokens: 32768,
147
+ jsonOutput: true,
148
+ fnCall: true,
208
149
  supportsTool: true,
209
150
  supportsReasoningEffort: true,
210
- price: {
211
- input: 16,
212
- output: 96,
213
- cachingWrite: 4,
214
- cachingRead: 4
215
- }
151
+ price: { input: toCnyCredits(0.8), output: toCnyCredits(2) },
152
+ provider: "qwen"
153
+ },
154
+ {
155
+ name: "qwen-turbo",
156
+ displayName: "Qwen Turbo",
157
+ hasVision: false,
158
+ contextWindow: 131072,
159
+ maxOutputTokens: 8192,
160
+ jsonOutput: true,
161
+ fnCall: true,
162
+ supportsTool: true,
163
+ price: { input: toCnyCredits(0.3), output: toCnyCredits(0.6) },
164
+ provider: "qwen"
165
+ },
166
+ {
167
+ name: "qwen-flash",
168
+ displayName: "Qwen Flash",
169
+ hasVision: false,
170
+ contextWindow: 131072,
171
+ maxOutputTokens: 8192,
172
+ jsonOutput: true,
173
+ fnCall: true,
174
+ supportsTool: true,
175
+ price: { input: toCnyCredits(0.1), output: toCnyCredits(0.3) },
176
+ provider: "qwen"
177
+ },
178
+ // ── 推理(QwQ) ──
179
+ {
180
+ name: "qwq-plus",
181
+ displayName: "QwQ Plus",
182
+ hasVision: false,
183
+ contextWindow: 131072,
184
+ maxOutputTokens: 32768,
185
+ jsonOutput: true,
186
+ fnCall: true,
187
+ supportsTool: true,
188
+ supportsReasoningEffort: true,
189
+ price: { input: toCnyCredits(2), output: toCnyCredits(8) },
190
+ provider: "qwen",
191
+ description: "\u6DF1\u5EA6\u601D\u8003\u63A8\u7406\u6A21\u578B\u3002"
216
192
  }
217
193
  ];
218
-
219
- // packages/integrations/openai/models.ts
220
- var GPT_5_5_STANDARD_PRICE = {
221
- input: 40,
222
- output: 240,
223
- inputCacheHit: 4
224
- };
225
- var GPT_5_5_LONG_CONTEXT_PRICE = {
226
- input: 80,
227
- output: 360,
228
- inputCacheHit: 8
229
- };
230
- var GPT_5_5_PRO_STANDARD_PRICE = {
231
- input: 240,
232
- output: 1440,
233
- inputCacheHit: 0
234
- };
235
- var GPT_5_5_PRO_LONG_CONTEXT_PRICE = {
236
- input: 480,
237
- output: 2160,
238
- inputCacheHit: 0
239
- };
240
- var GPT_5_6_SOL_STANDARD_PRICE = {
241
- input: 40,
242
- output: 240,
243
- inputCacheHit: 4
244
- };
245
- var GPT_5_6_SOL_LONG_CONTEXT_PRICE = {
246
- input: 80,
247
- output: 360,
248
- inputCacheHit: 8
249
- };
250
- var GPT_5_6_TERRA_STANDARD_PRICE = {
251
- input: 16,
252
- output: 96,
253
- inputCacheHit: 1.6
254
- };
255
- var GPT_5_6_TERRA_LONG_CONTEXT_PRICE = {
256
- input: 32,
257
- output: 144,
258
- inputCacheHit: 3.2
259
- };
260
- var GPT_5_6_LUNA_PRICE = {
261
- input: 1.6,
262
- output: 9.6,
263
- inputCacheHit: 0.16
264
- };
265
- var GPT_6_ASTRA_STANDARD_PRICE = {
266
- input: 80,
267
- output: 400,
268
- inputCacheHit: 8
269
- };
270
- var GPT_6_ASTRA_LONG_CONTEXT_PRICE = {
271
- input: 160,
272
- output: 600,
273
- inputCacheHit: 16
274
- };
275
- var openAIModels = [
194
+ var qwenTokenPlanModels = [
195
+ // ── 千问 ──
276
196
  {
277
- name: "gpt-5.5",
278
- displayName: "GPT-5.5 Standard",
279
- endpointKey: "responses",
197
+ name: "qwen3.8-max",
198
+ displayName: "Qwen3.8 Max",
280
199
  hasVision: true,
281
- contextWindow: 1047576,
282
- maxOutputTokens: 128e3,
200
+ contextWindow: 1e6,
201
+ maxOutputTokens: 131072,
202
+ jsonOutput: true,
203
+ fnCall: true,
204
+ supportsTool: true,
283
205
  supportsReasoningEffort: true,
284
- price: GPT_5_5_STANDARD_PRICE,
285
- pricingStrategy: {
286
- type: "tiered_context",
287
- tiers: [
288
- {
289
- minContext: 272001,
290
- price: GPT_5_5_LONG_CONTEXT_PRICE
291
- }
292
- ]
293
- }
206
+ price: { input: 0, output: 0 },
207
+ provider: "qwen",
208
+ description: "2.4\u4E07\u4EBF\u53C2\u6570 MoE \u65D7\u8230\uFF0C\u63A8\u7406\u3001\u89C6\u89C9\u7406\u89E3\u3001\u6587\u672C\u751F\u6210\uFF1B1M \u4E0A\u4E0B\u6587\u3001131K \u8F93\u51FA\u3001262K \u601D\u7EF4\u94FE\u3002"
294
209
  },
295
210
  {
296
- name: "gpt-5.6-sol",
297
- displayName: "GPT-5.6 Sol (Flagship)",
298
- endpointKey: "responses",
299
- hasVision: true,
300
- contextWindow: 105e4,
301
- maxOutputTokens: 128e3,
211
+ name: "qwen3.7-max",
212
+ displayName: "Qwen3.7 Max",
213
+ hasVision: false,
214
+ contextWindow: 262144,
215
+ maxOutputTokens: 32768,
216
+ jsonOutput: true,
217
+ fnCall: true,
218
+ supportsTool: true,
302
219
  supportsReasoningEffort: true,
303
- price: GPT_5_6_SOL_STANDARD_PRICE,
304
- pricingStrategy: {
305
- type: "tiered_context",
306
- tiers: [
307
- {
308
- minContext: 272001,
309
- price: GPT_5_6_SOL_LONG_CONTEXT_PRICE
310
- }
311
- ]
312
- }
220
+ price: { input: 0, output: 0 },
221
+ provider: "qwen",
222
+ description: "\u63A8\u7406\u6A21\u578B\u3001\u6587\u672C\u751F\u6210\u3002"
313
223
  },
314
224
  {
315
- name: "gpt-5.6-terra",
316
- displayName: "GPT-5.6 Terra (Balanced)",
317
- endpointKey: "responses",
225
+ name: "qwen3.7-plus",
226
+ displayName: "Qwen3.7 Plus",
318
227
  hasVision: true,
319
- contextWindow: 105e4,
320
- maxOutputTokens: 128e3,
228
+ contextWindow: 262144,
229
+ maxOutputTokens: 32768,
230
+ jsonOutput: true,
231
+ fnCall: true,
232
+ supportsTool: true,
321
233
  supportsReasoningEffort: true,
322
- price: GPT_5_6_TERRA_STANDARD_PRICE,
323
- pricingStrategy: {
324
- type: "tiered_context",
325
- tiers: [
326
- {
327
- minContext: 272001,
328
- price: GPT_5_6_TERRA_LONG_CONTEXT_PRICE
329
- }
330
- ]
331
- }
234
+ price: { input: 0, output: 0 },
235
+ provider: "qwen",
236
+ description: "\u63A8\u7406\u6A21\u578B\u3001\u89C6\u89C9\u7406\u89E3\u3001\u6587\u672C\u751F\u6210\u3002"
332
237
  },
333
238
  {
334
- name: "gpt-5.6-luna",
335
- displayName: "GPT-5.6 Luna (Fast)",
336
- endpointKey: "responses",
239
+ name: "qwen3.6-flash",
240
+ displayName: "Qwen3.6 Flash",
337
241
  hasVision: true,
338
- contextWindow: 105e4,
339
- maxOutputTokens: 128e3,
242
+ contextWindow: 262144,
243
+ maxOutputTokens: 32768,
244
+ jsonOutput: true,
245
+ fnCall: true,
246
+ supportsTool: true,
340
247
  supportsReasoningEffort: true,
341
- price: GPT_5_6_LUNA_PRICE
248
+ price: { input: 0, output: 0 },
249
+ provider: "qwen",
250
+ description: "\u63A8\u7406\u6A21\u578B\u3001\u89C6\u89C9\u7406\u89E3\u3001\u6587\u672C\u751F\u6210\uFF08\u8F7B\u91CF\u5FEB\u901F\uFF09\u3002"
342
251
  },
252
+ // ── 智谱 AI ──
343
253
  {
344
- name: "gpt-6-astra",
345
- displayName: "GPT-6 Astra",
346
- endpointKey: "responses",
347
- hasVision: true,
348
- contextWindow: 105e4,
349
- maxOutputTokens: 128e3,
254
+ name: "glm-5.2",
255
+ displayName: "GLM 5.2",
256
+ hasVision: false,
257
+ contextWindow: 1e6,
258
+ maxOutputTokens: 16384,
259
+ jsonOutput: true,
260
+ fnCall: true,
261
+ supportsTool: true,
350
262
  supportsReasoningEffort: true,
351
- price: GPT_6_ASTRA_STANDARD_PRICE,
352
- pricingStrategy: {
353
- type: "tiered_context",
354
- tiers: [
355
- {
356
- minContext: 272001,
357
- price: GPT_6_ASTRA_LONG_CONTEXT_PRICE
358
- }
359
- ]
360
- }
263
+ price: { input: 0, output: 0 },
264
+ provider: "qwen",
265
+ description: "\u667A\u8C31 AI \u63A8\u7406\u6A21\u578B\u3001\u6587\u672C\u751F\u6210\u3002"
361
266
  },
267
+ // ── DeepSeek ──
362
268
  {
363
- name: "gpt-5.5-pro",
364
- displayName: "GPT-5.5 Pro",
365
- endpointKey: "responses",
366
- hasVision: true,
367
- contextWindow: 1047576,
368
- maxOutputTokens: 128e3,
269
+ name: "deepseek-v4-pro",
270
+ displayName: "DeepSeek V4 Pro",
271
+ hasVision: false,
272
+ contextWindow: 1e6,
273
+ maxOutputTokens: 384e3,
274
+ jsonOutput: true,
275
+ fnCall: true,
276
+ supportsTool: true,
369
277
  supportsReasoningEffort: true,
370
- price: GPT_5_5_PRO_STANDARD_PRICE,
371
- pricingStrategy: {
372
- type: "tiered_context",
373
- tiers: [
374
- {
375
- minContext: 272001,
376
- price: GPT_5_5_PRO_LONG_CONTEXT_PRICE
377
- }
378
- ]
379
- }
380
- }
381
- ];
382
-
383
- // packages/ai/llm/deepinfra.ts
384
- var DEEPINFRA_CLAUDE_HAIKU_PRICE = {
385
- input: 1 * 9,
386
- output: 5 * 9
387
- };
388
- var DEEPINFRA_CLAUDE_SONNET_PRICE = {
389
- input: 3 * 9,
390
- output: 15 * 9
391
- };
392
- var DEEPINFRA_CLAUDE_OPUS_PRICE = {
393
- input: 5 * 9,
394
- output: 25 * 9
395
- };
396
- var DEEPINFRA_CLAUDE_FABLE_PRICE = {
397
- input: 10 * 9,
398
- output: 50 * 9
399
- };
400
- var deepinfraModels = [
401
- {
402
- name: "anthropic/claude-haiku-4-5",
403
- displayName: "Anthropic: Claude Haiku 4.5",
404
- hasVision: true,
405
- price: { ...DEEPINFRA_CLAUDE_HAIKU_PRICE },
406
- contextWindow: 195e3,
407
- maxOutputTokens: 4092,
408
- supportsTool: false
409
- },
410
- {
411
- name: "anthropic/claude-sonnet-5",
412
- displayName: "Anthropic: Claude Sonnet 5",
413
- hasVision: true,
414
- price: { ...DEEPINFRA_CLAUDE_SONNET_PRICE },
415
- contextWindow: 976e3,
416
- maxOutputTokens: 4092,
417
- supportsTool: false
278
+ price: { input: 0, output: 0 },
279
+ provider: "qwen",
280
+ description: "DeepSeek \u63A8\u7406\u6A21\u578B\u3001\u6587\u672C\u751F\u6210\u3002"
418
281
  },
282
+ // ── 万相(图片生成)──
419
283
  {
420
- name: "anthropic/claude-opus-5",
421
- displayName: "Anthropic: Claude Opus 5",
422
- hasVision: true,
423
- price: { ...DEEPINFRA_CLAUDE_OPUS_PRICE },
424
- contextWindow: 976e3,
425
- maxOutputTokens: 4092,
426
- supportsTool: false
284
+ name: "wan2.7-image",
285
+ displayName: "Wan2.7 Image",
286
+ hasVision: false,
287
+ hasImageOutput: true,
288
+ contextWindow: 0,
289
+ maxOutputTokens: 0,
290
+ price: { input: 0, output: 0 },
291
+ provider: "qwen",
292
+ description: "\u4E07\u76F8\u56FE\u7247\u751F\u6210\u3002"
427
293
  },
428
294
  {
429
- name: "anthropic/claude-fable-5",
430
- displayName: "Anthropic: Claude Fable 5",
431
- hasVision: true,
432
- price: { ...DEEPINFRA_CLAUDE_FABLE_PRICE },
433
- contextWindow: 976e3,
434
- maxOutputTokens: 4092,
435
- supportsTool: false
436
- }
437
- ];
438
-
439
- // packages/ai/llm/baseten.ts
440
- var BASETEN_GLM_53_FLASH_MODEL = "zai-org/GLM-5.3-Flash";
441
- var BASETEN_GLM_53_FLASH_PRICE = {
442
- input: 1.2,
443
- inputCacheHit: 0.24,
444
- output: 4
445
- };
446
- var basetenModels = [
447
- {
448
- name: BASETEN_GLM_53_FLASH_MODEL,
449
- displayName: "GLM 5.3 Flash",
450
- hasVision: true,
451
- price: { ...BASETEN_GLM_53_FLASH_PRICE },
452
- maxOutputTokens: 131072,
453
- contextWindow: 1048576,
454
- supportsTool: true,
455
- supportsReasoningEffort: true
295
+ name: "wan2.7-image-pro",
296
+ displayName: "Wan2.7 Image Pro",
297
+ hasVision: false,
298
+ hasImageOutput: true,
299
+ contextWindow: 0,
300
+ maxOutputTokens: 0,
301
+ price: { input: 0, output: 0 },
302
+ provider: "qwen",
303
+ description: "\u4E07\u76F8\u56FE\u7247\u751F\u6210\uFF08Pro\uFF09\u3002"
456
304
  }
457
305
  ];
458
306
 
459
- // packages/ai/llm/runinfra.ts
460
- var RUNINFRA_GLM_53_FLASH_MODEL = "glm-5-3-flash";
461
- var RUNINFRA_GLM_53_FLASH_PRICE = {
462
- input: 0.8,
463
- inputCacheHit: 0.08,
464
- output: 3.2
465
- };
466
- var runinfraModels = [
307
+ // packages/integrations/moonshot/models.ts
308
+ var moonshotModels = [
309
+ // ── 旗舰 ──
467
310
  {
468
- name: RUNINFRA_GLM_53_FLASH_MODEL,
469
- displayName: "GLM 5.3 Flash",
311
+ name: "kimi-k3",
312
+ displayName: "Kimi K3",
470
313
  hasVision: true,
471
- price: { ...RUNINFRA_GLM_53_FLASH_PRICE },
472
- maxOutputTokens: 1048576,
473
- contextWindow: 1048576,
314
+ contextWindow: 1e6,
315
+ maxOutputTokens: 262144,
316
+ jsonOutput: true,
317
+ fnCall: true,
474
318
  supportsTool: true,
475
- supportsReasoningEffort: true
476
- }
477
- ];
478
-
479
- // packages/integrations/xai/models.ts
480
- var xaiModels = [
319
+ supportsReasoningEffort: true,
320
+ price: { input: 24, output: 120 },
321
+ provider: "moonshot",
322
+ description: "Moonshot \u65D7\u8230\u6A21\u578B\uFF0C\u539F\u751F\u591A\u6A21\u6001\uFF0C1M \u4E0A\u4E0B\u6587\uFF0C\u957F\u7A0B\u7F16\u7A0B\u4E0E\u6DF1\u5EA6\u63A8\u7406\u3002"
323
+ },
324
+ // ── 通用 ──
481
325
  {
482
- name: "grok-4.6",
483
- displayName: "Grok 4.6",
326
+ name: "kimi-k2.6",
327
+ displayName: "Kimi K2.6",
484
328
  hasVision: true,
485
- contextWindow: 5e5,
486
- price: { input: 16, output: 48, inputCacheHit: 4 },
487
- pricingStrategy: {
488
- type: "tiered_context",
489
- tiers: [
490
- {
491
- minContext: 200001,
492
- price: { input: 32, output: 96, inputCacheHit: 8 }
493
- }
494
- ]
495
- },
329
+ contextWindow: 262144,
330
+ maxOutputTokens: 262144,
331
+ jsonOutput: true,
496
332
  fnCall: true,
497
- jsonOutput: true
498
- }
499
- ];
500
-
501
- // packages/ai/llm/fireworks.ts
502
- var fireworksModels = [
503
- {
504
- name: "accounts/fireworks/models/minimax-m3",
505
- displayName: "MiniMax: MiniMax M3",
506
- hasVision: true,
507
- price: {
508
- input: 2.4,
509
- output: 9.6,
510
- cachingRead: 0.48
511
- },
512
- contextWindow: 512e3,
513
- supportsTool: true
333
+ supportsTool: true,
334
+ supportsReasoningEffort: true,
335
+ price: { input: 4.8, output: 19.2 },
336
+ provider: "moonshot",
337
+ description: "Moonshot \u9AD8\u6027\u80FD\u901A\u7528\u6A21\u578B\u3002"
514
338
  }
515
339
  ];
516
-
517
- // packages/integrations/qwen/models.ts
518
- var qwenModels = [
519
- // ── Qwen3 旗舰 ──
340
+ var kimiCodeModels = [
341
+ // ── 旗舰编程 ──
520
342
  {
521
- name: "qwen3.8-max",
522
- displayName: "Qwen3.8 Max",
343
+ name: "k3",
344
+ displayName: "Kimi K3",
523
345
  hasVision: true,
524
346
  contextWindow: 1e6,
525
- maxOutputTokens: 131072,
347
+ maxOutputTokens: 262144,
526
348
  jsonOutput: true,
527
349
  fnCall: true,
528
350
  supportsTool: true,
529
351
  supportsReasoningEffort: true,
530
- // 官方价:输入 ¥12/M、输出 ¥36/M;缓存命中 ¥1.5/M、显式缓存创建 ¥15/M、显式缓存命中 ¥1/M。
531
- price: { input: toCnyCredits(12), output: toCnyCredits(36) },
532
- provider: "qwen",
533
- description: "2.4\u4E07\u4EBF\u53C2\u6570 MoE \u65D7\u8230\uFF0C1M \u4E0A\u4E0B\u6587\uFF08\u8F93\u5165 991K / \u8F93\u51FA 131K / \u601D\u7EF4\u94FE 262K\uFF09\uFF0C\u539F\u751F\u89C6\u89C9\u7406\u89E3\u8D2F\u7A7F\u89C4\u5212-\u6267\u884C-\u9A8C\u8BC1\uFF0C\u81EA\u4E3B\u7F16\u7A0B\u53EF\u4EA4\u4ED8\u5B8C\u6574\u9879\u76EE\u3002"
352
+ price: { input: 0, output: 0 },
353
+ provider: "moonshot",
354
+ description: "Kimi \u6700\u5F3A\u65D7\u8230\u7F16\u7A0B\u6A21\u578B\uFF0C2.8T \u53C2\u6570\uFF0C1M \u4E0A\u4E0B\u6587\uFF0Clow/high/max \u4E09\u6863\u601D\u8003\u6DF1\u5EA6\uFF0C\u64C5\u957F\u590D\u6742\u5DE5\u7A0B\u4E0E\u957F\u7A0B\u63A8\u7406\u3002Moderato \u53CA\u4EE5\u4E0A\u53EF\u7528\u3002"
534
355
  },
356
+ // ── 旗舰编程(256K 上下文版)──
535
357
  {
536
- name: "qwen3-max",
537
- displayName: "Qwen3 Max",
358
+ name: "k3-256k",
359
+ displayName: "Kimi K3 256K",
538
360
  hasVision: true,
539
361
  contextWindow: 262144,
540
- maxOutputTokens: 32768,
362
+ maxOutputTokens: 262144,
541
363
  jsonOutput: true,
542
364
  fnCall: true,
543
365
  supportsTool: true,
544
366
  supportsReasoningEffort: true,
545
- price: { input: toCnyCredits(6), output: toCnyCredits(24) },
546
- provider: "qwen",
547
- description: "\u5343\u95EE3 \u65D7\u8230\u6A21\u578B\uFF0C\u652F\u6301\u601D\u8003\u6A21\u5F0F\u3001\u51FD\u6570\u8C03\u7528\u3001\u7ED3\u6784\u5316\u8F93\u51FA\u3002"
367
+ price: { input: 0, output: 0 },
368
+ provider: "moonshot",
369
+ description: "K3 \u7684 256K \u4E0A\u4E0B\u6587\u7248\uFF0C\u6D88\u8017\u7EA6\u4E3A k3 \u7684\u4E00\u534A\uFF0C\u9002\u5408\u65E5\u5E38\u95EE\u7B54\u4E0E\u4EE3\u7801\u8865\u5168\u3002\u4E0D\u652F\u6301\u89C6\u9891\u8F93\u5165\u3002Moderato \u53CA\u4EE5\u4E0A\u53EF\u7528\u3002"
548
370
  },
371
+ // ── 成熟编程 ──
549
372
  {
550
- name: "qwen3-max-preview",
551
- displayName: "Qwen3 Max Preview",
373
+ name: "kimi-for-coding",
374
+ displayName: "Kimi K2.7 Code",
552
375
  hasVision: true,
553
- contextWindow: 81920,
554
- maxOutputTokens: 32768,
376
+ contextWindow: 262144,
377
+ maxOutputTokens: 262144,
555
378
  jsonOutput: true,
556
379
  fnCall: true,
557
380
  supportsTool: true,
558
381
  supportsReasoningEffort: true,
559
- price: { input: toCnyCredits(6), output: toCnyCredits(24) },
560
- provider: "qwen"
382
+ price: { input: 0, output: 0 },
383
+ provider: "moonshot",
384
+ description: "\u6210\u719F\u7A33\u5B9A\u7684 Coding \u6A21\u578B\uFF0CThinking \u5F00\u542F\u4E0B\u53EF\u9760\u9075\u5FAA\u6307\u4EE4\uFF0C\u7F16\u7A0B\u4EFB\u52A1\u6210\u529F\u7387\u9AD8\u3002\u6240\u6709\u4F1A\u5458\u53EF\u7528\u3002"
561
385
  },
386
+ // ── 高速编程 ──
562
387
  {
563
- name: "qwen3-235b-a22b-instruct-2507",
564
- displayName: "Qwen3 235B A22B Instruct",
388
+ name: "kimi-for-coding-highspeed",
389
+ displayName: "Kimi K2.7 Code \u9AD8\u901F\u7248",
565
390
  hasVision: true,
566
391
  contextWindow: 262144,
567
- maxOutputTokens: 32768,
392
+ maxOutputTokens: 262144,
568
393
  jsonOutput: true,
569
394
  fnCall: true,
570
395
  supportsTool: true,
571
396
  supportsReasoningEffort: true,
572
- price: { input: toCnyCredits(4), output: toCnyCredits(12) },
573
- provider: "qwen"
574
- },
397
+ price: { input: 0, output: 0 },
398
+ provider: "moonshot",
399
+ description: "K2.7 Code \u9AD8\u901F\u7248\uFF0C\u7F16\u7801\u80FD\u529B\u4E00\u81F4\uFF0C\u8F93\u51FA\u901F\u5EA6\u7EA6 6 \u500D\u3001\u6D88\u8017\u7EA6 3 \u500D\u3002Allegretto \u53CA\u4EE5\u4E0A\u53EF\u7528\u3002"
400
+ }
401
+ ];
402
+
403
+ // packages/integrations/stepfun/models.ts
404
+ var stepfunModels = [
405
+ // ── 旗舰多模态推理 ──
575
406
  {
576
- name: "qwen3-next-80b-a3b-instruct",
577
- displayName: "Qwen3 Next 80B A3B Instruct",
407
+ name: "step-3.7-flash",
408
+ displayName: "Step 3.7 Flash",
578
409
  hasVision: true,
579
- contextWindow: 81920,
580
- maxOutputTokens: 32768,
410
+ contextWindow: 262144,
411
+ maxOutputTokens: 65536,
581
412
  jsonOutput: true,
582
413
  fnCall: true,
583
414
  supportsTool: true,
584
415
  supportsReasoningEffort: true,
585
- price: { input: toCnyCredits(2), output: toCnyCredits(6) },
586
- provider: "qwen"
416
+ // 官方价:输入 ¥1.35/M、缓存命中 ¥0.27/M、输出 ¥8.1/M
417
+ price: {
418
+ input: toCnyCredits(1.35),
419
+ output: toCnyCredits(8.1),
420
+ inputCacheHit: toCnyCredits(0.27)
421
+ },
422
+ provider: "stepfun",
423
+ description: "\u9636\u8DC3\u661F\u8FB0\u65D7\u8230\u591A\u6A21\u6001\u63A8\u7406\u6A21\u578B\uFF0C256K \u4E0A\u4E0B\u6587\uFF0C\u539F\u751F\u56FE\u50CF+\u89C6\u9891\u7406\u89E3\uFF08\u65E0\u9700\u5916\u6302\u89C6\u89C9\u6A21\u578B\uFF09\uFF0C\u4E09\u6863 reasoning_effort\uFF08low/medium/high\uFF09\uFF0C\u5DE5\u5177\u8C03\u7528\uFF0C\u9488\u5BF9 Agent \u4E0E Coding \u6DF1\u5EA6\u4F18\u5316\uFF1B\u6743\u91CD\u5F00\u6E90\uFF08Apache 2.0\uFF09\u3002"
587
424
  },
588
- // ── Qwen3-Coder 编程系列 ──
589
425
  {
590
- name: "qwen3-coder-plus",
591
- displayName: "Qwen3 Coder Plus",
592
- hasVision: false,
593
- contextWindow: 1048576,
426
+ name: "step-5-preview",
427
+ displayName: "Step 5 Preview",
428
+ hasVision: true,
429
+ // 官方规格:1M context window / 64k max output(600B 总参 / 27B 激活 MoE)
430
+ contextWindow: 1e6,
594
431
  maxOutputTokens: 65536,
595
432
  jsonOutput: true,
596
433
  fnCall: true,
597
434
  supportsTool: true,
598
435
  supportsReasoningEffort: true,
599
- price: { input: toCnyCredits(3), output: toCnyCredits(9) },
600
- provider: "qwen",
601
- description: "\u5343\u95EE3 \u7F16\u7A0B\u65D7\u8230\uFF0C1M \u957F\u4E0A\u4E0B\u6587\uFF0C\u9002\u5408\u4EE3\u7801\u751F\u6210\u4E0E Agent \u7F16\u7A0B\u3002"
436
+ // 官方价:输入 ¥7/M、缓存命中 ¥0.35/M、输出 ¥20/M
437
+ price: {
438
+ input: toCnyCredits(7),
439
+ output: toCnyCredits(20),
440
+ inputCacheHit: toCnyCredits(0.35)
441
+ },
442
+ provider: "stepfun",
443
+ description: "\u9636\u8DC3\u661F\u8FB0\u65B0\u4E00\u4EE3\u65D7\u8230\u591A\u6A21\u6001\u63A8\u7406\u6A21\u578B\uFF082026-09 \u53D1\u5E03\uFF09\uFF0C1M \u4E0A\u4E0B\u6587\uFF0C\u6587\u672C+\u56FE\u50CF+\u89C6\u9891\u8F93\u5165\uFF0C64k \u6700\u5927\u8F93\u51FA\uFF0C\u4E09\u6863 reasoning_effort\uFF0C\u652F\u6301\u590D\u6742\u903B\u8F91\u5206\u89E3\u4E0E\u957F\u7A0B\u89C4\u5212\uFF1BArtificial Analysis \u667A\u80FD\u6307\u6570 44\uFF0C\u4E3A StepFun \u7CFB\u6700\u9AD8\u3002"
602
444
  },
445
+ // ── 旗舰语言推理 ──
603
446
  {
604
- name: "qwen3-coder-flash",
605
- displayName: "Qwen3 Coder Flash",
447
+ name: "step-3.5-flash",
448
+ displayName: "Step 3.5 Flash",
606
449
  hasVision: false,
607
- contextWindow: 1048576,
450
+ contextWindow: 262144,
608
451
  maxOutputTokens: 65536,
609
452
  jsonOutput: true,
610
453
  fnCall: true,
611
454
  supportsTool: true,
612
455
  supportsReasoningEffort: true,
613
- price: { input: toCnyCredits(1), output: toCnyCredits(3) },
614
- provider: "qwen"
456
+ // 官方价:输入 ¥0.7/M、缓存命中 ¥0.14/M、输出 ¥2.1/M
457
+ price: {
458
+ input: toCnyCredits(0.7),
459
+ output: toCnyCredits(2.1),
460
+ inputCacheHit: toCnyCredits(0.14)
461
+ },
462
+ provider: "stepfun",
463
+ description: "\u9636\u8DC3\u661F\u8FB0\u65D7\u8230\u8BED\u8A00\u63A8\u7406\u6A21\u578B\uFF0C196B \u603B\u53C2\u6570 / 11B \u6FC0\u6D3B\u53C2\u6570 MoE\uFF0C\u9AD8\u901F\u63A8\u7406\u4E0E\u5DE5\u5177\u8C03\u7528\uFF1B\u6743\u91CD\u5F00\u6E90\u3002"
615
464
  },
616
465
  {
617
- name: "qwen3-coder-480b-a35b-instruct",
618
- displayName: "Qwen3 Coder 480B A35B Instruct",
466
+ name: "step-3.5-flash-2603",
467
+ displayName: "Step 3.5 Flash (Agent\u4F18\u5316\u7248)",
619
468
  hasVision: false,
620
- contextWindow: 1048576,
469
+ contextWindow: 262144,
621
470
  maxOutputTokens: 65536,
622
471
  jsonOutput: true,
623
472
  fnCall: true,
624
473
  supportsTool: true,
625
474
  supportsReasoningEffort: true,
626
- price: { input: toCnyCredits(5), output: toCnyCredits(15) },
627
- provider: "qwen"
628
- },
629
- // ── 长上下文 ──
630
- {
631
- name: "qwen-long",
632
- displayName: "Qwen Long",
633
- hasVision: false,
634
- contextWindow: 10485760,
635
- maxOutputTokens: 8192,
636
- jsonOutput: true,
637
- fnCall: false,
638
- supportsTool: false,
639
- price: { input: toCnyCredits(0.5), output: toCnyCredits(2) },
640
- provider: "qwen",
641
- description: "10M \u8D85\u957F\u4E0A\u4E0B\u6587\uFF0C\u9002\u5408\u957F\u6587\u6863\u5904\u7406\u3002"
475
+ // 官方价:输入 ¥0.7/M、缓存命中 ¥0.14/M、输出 ¥2.1/M
476
+ price: {
477
+ input: toCnyCredits(0.7),
478
+ output: toCnyCredits(2.1),
479
+ inputCacheHit: toCnyCredits(0.14)
480
+ },
481
+ provider: "stepfun",
482
+ description: "\u9488\u5BF9\u9AD8\u9891 Agent \u573A\u666F\u4F18\u5316\uFF0CToken \u6548\u7387\u4E0E\u63A8\u7406\u901F\u5EA6\u66F4\u4F73\uFF0C\u652F\u6301 low/high reasoning_effort\u3002\u6CE8\u610F\uFF1AArtificial Analysis \u5DF2\u6807\u8BB0\u4E3A deprecated\uFF0C\u5B98\u65B9\u63A8\u8350\u8FC1\u79FB\u5230 step-3.7-flash\u3002"
642
483
  },
643
- // ── 旧版主力(仍常用) ──
484
+ // ── 经典视觉模型 ──
644
485
  {
645
- name: "qwen-plus",
646
- displayName: "Qwen Plus",
486
+ name: "step-1o-turbo-vision",
487
+ displayName: "Step 1o Turbo Vision",
647
488
  hasVision: true,
648
- contextWindow: 1048576,
649
- maxOutputTokens: 32768,
650
- jsonOutput: true,
651
- fnCall: true,
652
- supportsTool: true,
653
- supportsReasoningEffort: true,
654
- price: { input: toCnyCredits(0.8), output: toCnyCredits(2) },
655
- provider: "qwen"
656
- },
657
- {
658
- name: "qwen-turbo",
659
- displayName: "Qwen Turbo",
660
- hasVision: false,
661
- contextWindow: 131072,
662
- maxOutputTokens: 8192,
663
- jsonOutput: true,
664
- fnCall: true,
665
- supportsTool: true,
666
- price: { input: toCnyCredits(0.3), output: toCnyCredits(0.6) },
667
- provider: "qwen"
668
- },
669
- {
670
- name: "qwen-flash",
671
- displayName: "Qwen Flash",
672
- hasVision: false,
673
- contextWindow: 131072,
489
+ contextWindow: 65536,
674
490
  maxOutputTokens: 8192,
675
491
  jsonOutput: true,
676
492
  fnCall: true,
677
493
  supportsTool: true,
678
- price: { input: toCnyCredits(0.1), output: toCnyCredits(0.3) },
679
- provider: "qwen"
680
- },
681
- // ── 推理(QwQ) ──
682
- {
683
- name: "qwq-plus",
684
- displayName: "QwQ Plus",
685
- hasVision: false,
686
- contextWindow: 131072,
687
- maxOutputTokens: 32768,
688
- jsonOutput: true,
689
- fnCall: true,
690
- supportsTool: true,
691
- supportsReasoningEffort: true,
692
- price: { input: toCnyCredits(2), output: toCnyCredits(8) },
693
- provider: "qwen",
694
- description: "\u6DF1\u5EA6\u601D\u8003\u63A8\u7406\u6A21\u578B\u3002"
494
+ // 官方价:输入 ¥2.5/M、缓存命中 ¥0.5/M、输出 ¥8/M
495
+ price: {
496
+ input: toCnyCredits(2.5),
497
+ output: toCnyCredits(8),
498
+ inputCacheHit: toCnyCredits(0.5)
499
+ },
500
+ provider: "stepfun",
501
+ description: "\u9AD8\u54CD\u5E94\u901F\u5EA6\u89C6\u89C9\u6A21\u578B\uFF0C\u652F\u6301\u56FE\u7247\u4E0E\u6587\u6863\u7406\u89E3\uFF1B\u5B98\u65B9\u9000\u5F79\u516C\u544A\u4E2D\u591A\u6570\u65E7\u6A21\u578B\u7684\u6307\u5B9A\u66FF\u6362\u76EE\u6807\u3002"
695
502
  }
696
503
  ];
697
- var qwenTokenPlanModels = [
698
- // ── 千问 ──
504
+ var stepfunStepPlanModels = [
699
505
  {
700
- name: "qwen3.8-max",
701
- displayName: "Qwen3.8 Max",
506
+ name: "step-5-preview",
507
+ displayName: "Step 5 Preview",
702
508
  hasVision: true,
509
+ // Step Plan 订阅端同样开放 1M context(见 Step Plan / Claude Code 接入文档)
703
510
  contextWindow: 1e6,
704
- maxOutputTokens: 131072,
705
- jsonOutput: true,
706
- fnCall: true,
707
- supportsTool: true,
708
- supportsReasoningEffort: true,
709
- price: { input: 0, output: 0 },
710
- provider: "qwen",
711
- description: "2.4\u4E07\u4EBF\u53C2\u6570 MoE \u65D7\u8230\uFF0C\u63A8\u7406\u3001\u89C6\u89C9\u7406\u89E3\u3001\u6587\u672C\u751F\u6210\uFF1B1M \u4E0A\u4E0B\u6587\u3001131K \u8F93\u51FA\u3001262K \u601D\u7EF4\u94FE\u3002"
712
- },
713
- {
714
- name: "qwen3.7-max",
715
- displayName: "Qwen3.7 Max",
716
- hasVision: false,
717
- contextWindow: 262144,
718
- maxOutputTokens: 32768,
719
- jsonOutput: true,
720
- fnCall: true,
721
- supportsTool: true,
722
- supportsReasoningEffort: true,
723
- price: { input: 0, output: 0 },
724
- provider: "qwen",
725
- description: "\u63A8\u7406\u6A21\u578B\u3001\u6587\u672C\u751F\u6210\u3002"
726
- },
727
- {
728
- name: "qwen3.7-plus",
729
- displayName: "Qwen3.7 Plus",
730
- hasVision: true,
731
- contextWindow: 262144,
732
- maxOutputTokens: 32768,
511
+ maxOutputTokens: 65536,
733
512
  jsonOutput: true,
734
513
  fnCall: true,
735
514
  supportsTool: true,
736
515
  supportsReasoningEffort: true,
737
516
  price: { input: 0, output: 0 },
738
- provider: "qwen",
739
- description: "\u63A8\u7406\u6A21\u578B\u3001\u89C6\u89C9\u7406\u89E3\u3001\u6587\u672C\u751F\u6210\u3002"
517
+ provider: "stepfun",
518
+ description: "\u9636\u8DC3\u661F\u8FB0\u65B0\u4E00\u4EE3\u65D7\u8230\u591A\u6A21\u6001\u63A8\u7406\u6A21\u578B\uFF0C1M \u4E0A\u4E0B\u6587\uFF0C\u6587\u672C+\u56FE\u50CF+\u89C6\u9891\u8F93\u5165\uFF0C\u64C5\u957F\u590D\u6742\u4EFB\u52A1\u5206\u89E3\u4E0E\u591A\u6B65\u8BA1\u5212\u3002"
740
519
  },
741
520
  {
742
- name: "qwen3.6-flash",
743
- displayName: "Qwen3.6 Flash",
521
+ name: "step-3.7-flash",
522
+ displayName: "Step 3.7 Flash",
744
523
  hasVision: true,
745
524
  contextWindow: 262144,
746
- maxOutputTokens: 32768,
747
- jsonOutput: true,
748
- fnCall: true,
749
- supportsTool: true,
750
- supportsReasoningEffort: true,
751
- price: { input: 0, output: 0 },
752
- provider: "qwen",
753
- description: "\u63A8\u7406\u6A21\u578B\u3001\u89C6\u89C9\u7406\u89E3\u3001\u6587\u672C\u751F\u6210\uFF08\u8F7B\u91CF\u5FEB\u901F\uFF09\u3002"
754
- },
755
- // ── 智谱 AI ──
756
- {
757
- name: "glm-5.2",
758
- displayName: "GLM 5.2",
759
- hasVision: false,
760
- contextWindow: 1e6,
761
- maxOutputTokens: 16384,
762
- jsonOutput: true,
763
- fnCall: true,
764
- supportsTool: true,
765
- supportsReasoningEffort: true,
766
- price: { input: 0, output: 0 },
767
- provider: "qwen",
768
- description: "\u667A\u8C31 AI \u63A8\u7406\u6A21\u578B\u3001\u6587\u672C\u751F\u6210\u3002"
769
- },
770
- // ── DeepSeek ──
771
- {
772
- name: "deepseek-v4-pro",
773
- displayName: "DeepSeek V4 Pro",
774
- hasVision: false,
775
- contextWindow: 1e6,
776
- maxOutputTokens: 384e3,
525
+ maxOutputTokens: 65536,
777
526
  jsonOutput: true,
778
527
  fnCall: true,
779
528
  supportsTool: true,
780
529
  supportsReasoningEffort: true,
781
530
  price: { input: 0, output: 0 },
782
- provider: "qwen",
783
- description: "DeepSeek \u63A8\u7406\u6A21\u578B\u3001\u6587\u672C\u751F\u6210\u3002"
784
- },
785
- // ── 万相(图片生成)──
786
- {
787
- name: "wan2.7-image",
788
- displayName: "Wan2.7 Image",
789
- hasVision: false,
790
- hasImageOutput: true,
791
- contextWindow: 0,
792
- maxOutputTokens: 0,
793
- price: { input: 0, output: 0 },
794
- provider: "qwen",
795
- description: "\u4E07\u76F8\u56FE\u7247\u751F\u6210\u3002"
531
+ provider: "stepfun",
532
+ description: "\u9636\u8DC3\u661F\u8FB0\u65D7\u8230\u591A\u6A21\u6001\u63A8\u7406\u6A21\u578B\uFF0C256K \u4E0A\u4E0B\u6587\uFF0C\u539F\u751F\u56FE\u50CF+\u89C6\u9891\u7406\u89E3\uFF0C\u9AD8\u901F\u63A8\u7406 + \u5DE5\u5177\u8C03\u7528\uFF0CAgent \u6DF1\u5EA6\u9002\u914D\u3002"
796
533
  },
797
534
  {
798
- name: "wan2.7-image-pro",
799
- displayName: "Wan2.7 Image Pro",
535
+ name: "step-3.5-flash",
536
+ displayName: "Step 3.5 Flash",
800
537
  hasVision: false,
801
- hasImageOutput: true,
802
- contextWindow: 0,
803
- maxOutputTokens: 0,
804
- price: { input: 0, output: 0 },
805
- provider: "qwen",
806
- description: "\u4E07\u76F8\u56FE\u7247\u751F\u6210\uFF08Pro\uFF09\u3002"
807
- }
808
- ];
809
-
810
- // packages/integrations/moonshot/models.ts
811
- var moonshotModels = [
812
- // ── 旗舰 ──
813
- {
814
- name: "kimi-k3",
815
- displayName: "Kimi K3",
816
- hasVision: true,
817
- contextWindow: 1e6,
818
- maxOutputTokens: 262144,
819
- jsonOutput: true,
820
- fnCall: true,
821
- supportsTool: true,
822
- supportsReasoningEffort: true,
823
- price: { input: 24, output: 120 },
824
- provider: "moonshot",
825
- description: "Moonshot \u65D7\u8230\u6A21\u578B\uFF0C\u539F\u751F\u591A\u6A21\u6001\uFF0C1M \u4E0A\u4E0B\u6587\uFF0C\u957F\u7A0B\u7F16\u7A0B\u4E0E\u6DF1\u5EA6\u63A8\u7406\u3002"
826
- },
827
- // ── 通用 ──
828
- {
829
- name: "kimi-k2.6",
830
- displayName: "Kimi K2.6",
831
- hasVision: true,
832
- contextWindow: 262144,
833
- maxOutputTokens: 262144,
834
- jsonOutput: true,
835
- fnCall: true,
836
- supportsTool: true,
837
- supportsReasoningEffort: true,
838
- price: { input: 4.8, output: 19.2 },
839
- provider: "moonshot",
840
- description: "Moonshot \u9AD8\u6027\u80FD\u901A\u7528\u6A21\u578B\u3002"
841
- }
842
- ];
843
- var kimiCodeModels = [
844
- // ── 旗舰编程 ──
845
- {
846
- name: "k3",
847
- displayName: "Kimi K3",
848
- hasVision: true,
849
- contextWindow: 1e6,
850
- maxOutputTokens: 262144,
851
- jsonOutput: true,
852
- fnCall: true,
853
- supportsTool: true,
854
- supportsReasoningEffort: true,
855
- price: { input: 0, output: 0 },
856
- provider: "moonshot",
857
- description: "Kimi \u6700\u5F3A\u65D7\u8230\u7F16\u7A0B\u6A21\u578B\uFF0C2.8T \u53C2\u6570\uFF0C1M \u4E0A\u4E0B\u6587\uFF0Clow/high/max \u4E09\u6863\u601D\u8003\u6DF1\u5EA6\uFF0C\u64C5\u957F\u590D\u6742\u5DE5\u7A0B\u4E0E\u957F\u7A0B\u63A8\u7406\u3002Moderato \u53CA\u4EE5\u4E0A\u53EF\u7528\u3002"
858
- },
859
- // ── 旗舰编程(256K 上下文版)──
860
- {
861
- name: "k3-256k",
862
- displayName: "Kimi K3 256K",
863
- hasVision: true,
864
538
  contextWindow: 262144,
865
- maxOutputTokens: 262144,
539
+ maxOutputTokens: 65536,
866
540
  jsonOutput: true,
867
541
  fnCall: true,
868
542
  supportsTool: true,
869
543
  supportsReasoningEffort: true,
870
544
  price: { input: 0, output: 0 },
871
- provider: "moonshot",
872
- description: "K3 \u7684 256K \u4E0A\u4E0B\u6587\u7248\uFF0C\u6D88\u8017\u7EA6\u4E3A k3 \u7684\u4E00\u534A\uFF0C\u9002\u5408\u65E5\u5E38\u95EE\u7B54\u4E0E\u4EE3\u7801\u8865\u5168\u3002\u4E0D\u652F\u6301\u89C6\u9891\u8F93\u5165\u3002Moderato \u53CA\u4EE5\u4E0A\u53EF\u7528\u3002"
545
+ provider: "stepfun",
546
+ description: "\u9636\u8DC3\u661F\u8FB0\u65D7\u8230\u8BED\u8A00\u63A8\u7406\u6A21\u578B\uFF0C196B MoE \u67B6\u6784\uFF0C\u9AD8\u901F\u63A8\u7406\u4E0E\u5DE5\u5177\u8C03\u7528\u3002"
873
547
  },
874
- // ── 成熟编程 ──
875
548
  {
876
- name: "kimi-for-coding",
877
- displayName: "Kimi K2.7 Code",
878
- hasVision: true,
549
+ name: "step-3.5-flash-2603",
550
+ displayName: "Step 3.5 Flash (Agent\u4F18\u5316\u7248)",
551
+ hasVision: false,
879
552
  contextWindow: 262144,
880
- maxOutputTokens: 262144,
553
+ maxOutputTokens: 65536,
881
554
  jsonOutput: true,
882
555
  fnCall: true,
883
556
  supportsTool: true,
884
557
  supportsReasoningEffort: true,
885
558
  price: { input: 0, output: 0 },
886
- provider: "moonshot",
887
- description: "\u6210\u719F\u7A33\u5B9A\u7684 Coding \u6A21\u578B\uFF0CThinking \u5F00\u542F\u4E0B\u53EF\u9760\u9075\u5FAA\u6307\u4EE4\uFF0C\u7F16\u7A0B\u4EFB\u52A1\u6210\u529F\u7387\u9AD8\u3002\u6240\u6709\u4F1A\u5458\u53EF\u7528\u3002"
559
+ provider: "stepfun",
560
+ description: "\u9488\u5BF9\u9AD8\u9891 Agent \u573A\u666F\u4F18\u5316\uFF0C\u66F4\u4F73 Token \u6548\u7387\u4E0E\u63A8\u7406\u901F\u5EA6\uFF0C\u652F\u6301 low/high \u63A8\u7406\u5F3A\u5EA6\uFF1B\u5B98\u65B9\u63A8\u8350\u8FC1\u79FB\u5230 step-3.7-flash\u3002"
888
561
  },
889
- // ── 高速编程 ──
890
562
  {
891
- name: "kimi-for-coding-highspeed",
892
- displayName: "Kimi K2.7 Code \u9AD8\u901F\u7248",
893
- hasVision: true,
563
+ name: "step-router-v1",
564
+ displayName: "Step Router V1",
565
+ hasVision: false,
894
566
  contextWindow: 262144,
895
- maxOutputTokens: 262144,
567
+ maxOutputTokens: 65536,
896
568
  jsonOutput: true,
897
569
  fnCall: true,
898
570
  supportsTool: true,
899
571
  supportsReasoningEffort: true,
900
572
  price: { input: 0, output: 0 },
901
- provider: "moonshot",
902
- description: "K2.7 Code \u9AD8\u901F\u7248\uFF0C\u7F16\u7801\u80FD\u529B\u4E00\u81F4\uFF0C\u8F93\u51FA\u901F\u5EA6\u7EA6 6 \u500D\u3001\u6D88\u8017\u7EA6 3 \u500D\u3002Allegretto \u53CA\u4EE5\u4E0A\u53EF\u7528\u3002"
573
+ provider: "stepfun",
574
+ description: "\u667A\u80FD\u8DEF\u7531\u6A21\u578B\uFF0C\u6309\u4EFB\u52A1\u590D\u6742\u5EA6\u81EA\u52A8\u5728 Step \u7CFB\u5217\u6A21\u578B\u95F4\u8C03\u5EA6\uFF0C\u8BA2\u9605\u53EF\u7528\u3002"
903
575
  }
904
576
  ];
905
577
 
@@ -1475,107 +1147,616 @@ function record(key, value$1, message$1) {
1475
1147
  if (!keyDataset.typed || !valueDataset.typed) dataset.typed = false;
1476
1148
  if (keyDataset.typed) dataset.value[keyDataset.value] = valueDataset.value;
1477
1149
  }
1478
- } else _addIssue(this, "type", dataset, config$1);
1479
- return dataset;
1480
- }
1481
- });
1482
- }
1483
- // @__NO_SIDE_EFFECTS__
1484
- function string(message$1) {
1485
- return _standardSchema({
1486
- kind: "schema",
1487
- type: "string",
1488
- reference: string,
1489
- expects: "string",
1490
- async: false,
1491
- message: message$1,
1492
- "~run"(dataset, config$1) {
1493
- if (typeof dataset.value === "string") dataset.typed = true;
1494
- else _addIssue(this, "type", dataset, config$1);
1495
- return dataset;
1150
+ } else _addIssue(this, "type", dataset, config$1);
1151
+ return dataset;
1152
+ }
1153
+ });
1154
+ }
1155
+ // @__NO_SIDE_EFFECTS__
1156
+ function string(message$1) {
1157
+ return _standardSchema({
1158
+ kind: "schema",
1159
+ type: "string",
1160
+ reference: string,
1161
+ expects: "string",
1162
+ async: false,
1163
+ message: message$1,
1164
+ "~run"(dataset, config$1) {
1165
+ if (typeof dataset.value === "string") dataset.typed = true;
1166
+ else _addIssue(this, "type", dataset, config$1);
1167
+ return dataset;
1168
+ }
1169
+ });
1170
+ }
1171
+ // @__NO_SIDE_EFFECTS__
1172
+ function pipe(...pipe$1) {
1173
+ return _standardSchema({
1174
+ ...pipe$1[0],
1175
+ pipe: pipe$1,
1176
+ "~run"(dataset, config$1) {
1177
+ for (const item of pipe$1) if (item.kind !== "metadata") {
1178
+ if (dataset.issues && (item.kind === "schema" || item.kind === "transformation")) {
1179
+ dataset.typed = false;
1180
+ break;
1181
+ }
1182
+ if (!dataset.issues || !config$1.abortEarly && !config$1.abortPipeEarly) dataset = item["~run"](dataset, config$1);
1183
+ }
1184
+ return dataset;
1185
+ }
1186
+ });
1187
+ }
1188
+
1189
+ // packages/ai/agent/createAgentSchema.ts
1190
+ var DEFAULT_REASONING_EFFORT = "medium";
1191
+ var PROVIDER_REASONING_EFFORT_VALUES = {
1192
+ openai: ["none", "minimal", "low", "medium", "high", "xhigh", "max"],
1193
+ deepseek: ["low", "high", "max"],
1194
+ // nolo (Ollama Cloud) 支持 DeepSeek/Kimi/GLM 等 thinking 模型,
1195
+ // reasoning_effort 通过 OpenAI 兼容端点透传到 Ollama Cloud。
1196
+ nolo: ["low", "high", "max"],
1197
+ xai: ["low", "medium", "high"],
1198
+ grok: ["low", "medium", "high"],
1199
+ // none:关闭思考;必须保留,否则上游 clamp 会把 none 抬成 low,
1200
+ // kimi-code proxy 的 none/off → thinking.disabled 分支永远接不到。
1201
+ kimi: ["none", "low", "high", "max"],
1202
+ moonshot: ["none", "low", "high", "max"],
1203
+ // Qwen 用 enable_thinking (bool) 而非 reasoning_effort → 隐藏下拉
1204
+ qwen: [],
1205
+ // MiniMax M3: 接受这些值但所有非 none 效果相同
1206
+ minimax: ["none", "low", "medium", "high"],
1207
+ // Cursor: 推理强度在模型名后缀 (如 -high),不走独立参数
1208
+ cursor: [],
1209
+ // MiMo: 保守默认
1210
+ mimo: ["low", "medium", "high"],
1211
+ // CommandCode Provider API 透传 reasoning_effort(low/medium/high/xhigh/max),
1212
+ // 端点按各模型支持的子集自动 clamp(见 commandcode.ai/docs/provider-api)。
1213
+ commandcode: ["low", "medium", "high", "xhigh", "max"],
1214
+ // 阶跃星辰(StepFun)推理模型(step-3.5-flash-2603 / step-3.7-flash 等)支持 low / medium / high
1215
+ stepfun: ["none", "low", "medium", "high"]
1216
+ };
1217
+ var greetingMenuItemSchema = object({
1218
+ id: pipe(string(), minLength(1)),
1219
+ label: pipe(string(), minLength(1)),
1220
+ userMessage: optional(string())
1221
+ });
1222
+ var greetingConfigSchema = object({
1223
+ text: optional(pipe(string(), trim())),
1224
+ menu: optional(array(greetingMenuItemSchema))
1225
+ });
1226
+ var runtimeToolPolicySchema = looseObject({
1227
+ version: optional(literal(1)),
1228
+ agentTools: optional(array(string())),
1229
+ runtimeTools: optional(array(string())),
1230
+ workspace: optional(
1231
+ object({
1232
+ mode: optional(picklist(["none", "current", "lease"])),
1233
+ writableRoots: optional(array(string())),
1234
+ cwd: optional(string())
1235
+ })
1236
+ ),
1237
+ shell: optional(record(string(), string())),
1238
+ isolation: optional(record(string(), string())),
1239
+ git: optional(record(string(), string())),
1240
+ budget: optional(record(string(), string())),
1241
+ audit: optional(record(string(), string()))
1242
+ });
1243
+ var referenceItemSchema = pipe(
1244
+ object({
1245
+ dbKey: string(),
1246
+ title: string(),
1247
+ type: picklist(["knowledge", "instruction", "page"])
1248
+ }),
1249
+ transform((data) => ({
1250
+ ...data,
1251
+ type: data.type === "page" ? "knowledge" : data.type
1252
+ }))
1253
+ );
1254
+
1255
+ // packages/integrations/anthropic/anthropicModels.ts
1256
+ var anthropicModels = [
1257
+ {
1258
+ name: "claude-3-5-sonnet-latest",
1259
+ displayName: "Claude 3.5 Sonnet",
1260
+ hasVision: true,
1261
+ description: "Our most intelligent model to date",
1262
+ contextWindow: 2e5,
1263
+ maxOutputTokens: 8192,
1264
+ price: {
1265
+ input: 27,
1266
+ output: 135,
1267
+ cachingWrite: 33.75,
1268
+ cachingRead: 2.7
1269
+ }
1270
+ },
1271
+ {
1272
+ name: "claude-3-7-sonnet-latest",
1273
+ displayName: "Claude 3.7 Sonnet",
1274
+ hasVision: true,
1275
+ description: "Our most intelligent model to date",
1276
+ contextWindow: 2e5,
1277
+ maxOutputTokens: 8192,
1278
+ price: {
1279
+ input: 27,
1280
+ output: 135,
1281
+ cachingWrite: 33.75,
1282
+ cachingRead: 2.7
1283
+ }
1284
+ },
1285
+ {
1286
+ name: "claude-3-5-haiku-20241022",
1287
+ displayName: "Claude 3.5 Haiku",
1288
+ hasVision: false,
1289
+ description: "Fastest, most cost-effective model",
1290
+ contextWindow: 2e5,
1291
+ maxOutputTokens: 8192,
1292
+ price: {
1293
+ input: 7.2,
1294
+ output: 36,
1295
+ cachingWrite: 9,
1296
+ cachingRead: 0.72
1297
+ }
1298
+ }
1299
+ ];
1300
+
1301
+ // packages/integrations/anthropic/anthropicOAuthModels.ts
1302
+ var oauthModel = ({ name, displayName, contextWindow, thinkingMode, maxOutputTokens }) => ({
1303
+ name,
1304
+ displayName,
1305
+ hasVision: true,
1306
+ description: `OAuth \u8BA2\u9605\u6A21\u578B\uFF08${displayName}\uFF0C${thinkingMode === "adaptive" ? "Adaptive thinking" : "Extended thinking"}\uFF09`,
1307
+ contextWindow,
1308
+ ...maxOutputTokens ? { maxOutputTokens } : {},
1309
+ supportsReasoningEffort: true,
1310
+ price: { input: 0, output: 0 }
1311
+ });
1312
+ var anthropicOAuthModels = [
1313
+ // 5 代(1M + Adaptive thinking always-on;官方 max output 128k)
1314
+ oauthModel({ name: "claude-fable-5", displayName: "Claude Fable 5", contextWindow: 1e6, thinkingMode: "adaptive", maxOutputTokens: 128e3 }),
1315
+ oauthModel({ name: "claude-opus-5", displayName: "Claude Opus 5", contextWindow: 1e6, thinkingMode: "adaptive", maxOutputTokens: 128e3 }),
1316
+ oauthModel({ name: "claude-sonnet-5", displayName: "Claude Sonnet 5", contextWindow: 1e6, thinkingMode: "adaptive", maxOutputTokens: 128e3 }),
1317
+ // 4.6/4.7/4.8 系(Adaptive thinking;context 官方未单列,参照 fuzzy claude-4.6→1M)
1318
+ oauthModel({ name: "claude-opus-4-8", displayName: "Claude Opus 4.8", contextWindow: 1e6, thinkingMode: "adaptive" }),
1319
+ oauthModel({ name: "claude-opus-4-7", displayName: "Claude Opus 4.7", contextWindow: 1e6, thinkingMode: "adaptive" }),
1320
+ oauthModel({ name: "claude-sonnet-4-6", displayName: "Claude Sonnet 4.6", contextWindow: 1e6, thinkingMode: "adaptive" }),
1321
+ oauthModel({ name: "claude-opus-4-6", displayName: "Claude Opus 4.6", contextWindow: 1e6, thinkingMode: "adaptive" }),
1322
+ // 4.5 系(Extended thinking;官方发布规格 1M)
1323
+ oauthModel({ name: "claude-opus-4-5-20251101", displayName: "Claude Opus 4.5", contextWindow: 1e6, thinkingMode: "extended" }),
1324
+ oauthModel({ name: "claude-sonnet-4-5-20250929", displayName: "Claude Sonnet 4.5", contextWindow: 1e6, thinkingMode: "extended" }),
1325
+ // haiku-4-5(官方明确 context=200k + Extended thinking)
1326
+ oauthModel({ name: "claude-haiku-4-5-20251001", displayName: "Claude Haiku 4.5", contextWindow: 2e5, thinkingMode: "extended" })
1327
+ ];
1328
+ var OAUTH_MODEL_THINKING_MODE = new Map(
1329
+ anthropicOAuthModels.map((m) => [m.name, m.thinkingMode])
1330
+ );
1331
+ function isAdaptiveThinkingModelId(model) {
1332
+ if (!model) return false;
1333
+ const tableMode = OAUTH_MODEL_THINKING_MODE.get(model);
1334
+ if (tableMode === "adaptive") return true;
1335
+ if (tableMode === "extended") return false;
1336
+ const n = model.toLowerCase();
1337
+ return n.includes("fable-5") || n.includes("opus-5") || n.includes("sonnet-5") || n.includes("opus-4-8") || n.includes("opus-4-7") || n.includes("sonnet-4-6") || n.includes("opus-4-6");
1338
+ }
1339
+
1340
+ // packages/ai/agent/liveAudioModel.ts
1341
+ var DEFAULT_GOOGLE_LIVE_AUDIO_MODEL = "gemini-3.1-flash-live-preview";
1342
+
1343
+ // packages/integrations/google/models.ts
1344
+ var googleModels = [
1345
+ {
1346
+ name: DEFAULT_GOOGLE_LIVE_AUDIO_MODEL,
1347
+ displayName: "Gemini 3.1 Flash Live",
1348
+ provider: "google",
1349
+ description: "Gemini Live API model for low-latency real-time voice conversations.",
1350
+ hasVision: true,
1351
+ hasAudio: true,
1352
+ contextWindow: 1048576,
1353
+ maxOutputTokens: 65500,
1354
+ supportsTool: true,
1355
+ price: {
1356
+ input: 4,
1357
+ output: 24,
1358
+ cachingWrite: 0.4,
1359
+ cachingRead: 0.4
1360
+ }
1361
+ },
1362
+ {
1363
+ name: "gemini-3.6-flash",
1364
+ displayName: "Gemini 3.6 Flash",
1365
+ provider: "google",
1366
+ description: "Gemini 3.6 Flash model for fast frontier agentic, coding, and multimodal tasks.",
1367
+ hasVision: true,
1368
+ hasAudio: true,
1369
+ contextWindow: 1048576,
1370
+ maxOutputTokens: 65536,
1371
+ supportsTool: true,
1372
+ supportsReasoningEffort: true,
1373
+ price: {
1374
+ input: 12,
1375
+ output: 72,
1376
+ cachingWrite: 1.2,
1377
+ cachingRead: 1.2
1378
+ },
1379
+ serviceTierPriceMultipliers: {
1380
+ batch: { inputOutput: 0.5, cache: 0.5 },
1381
+ flex: { inputOutput: 0.5, cache: 0.08 / 0.15 },
1382
+ priority: { inputOutput: 1.8, cache: 1.8 }
1383
+ }
1384
+ },
1385
+ {
1386
+ name: "gemini-3.7-flash",
1387
+ displayName: "Gemini 3.7 Flash",
1388
+ provider: "google",
1389
+ description: "Gemini 3.7 Flash model for fast frontier agentic, coding, and multimodal tasks.",
1390
+ hasVision: true,
1391
+ hasAudio: true,
1392
+ contextWindow: 1048576,
1393
+ maxOutputTokens: 65536,
1394
+ supportsTool: true,
1395
+ supportsReasoningEffort: true,
1396
+ // Antigravity's subscription wire route is tiered; Gemini API uses this logical id.
1397
+ price: {
1398
+ input: 6,
1399
+ output: 30,
1400
+ cachingWrite: 0.6,
1401
+ cachingRead: 0.6
1402
+ }
1403
+ },
1404
+ {
1405
+ name: "gemini-3.8-flash",
1406
+ displayName: "Gemini 3.8 Flash",
1407
+ provider: "google",
1408
+ description: "Gemini 3.8 Flash model for fast frontier agentic, coding, and multimodal tasks.",
1409
+ hasVision: true,
1410
+ hasAudio: true,
1411
+ contextWindow: 1048576,
1412
+ maxOutputTokens: 65536,
1413
+ supportsTool: true,
1414
+ supportsReasoningEffort: true,
1415
+ price: {
1416
+ input: 6,
1417
+ output: 30,
1418
+ cachingWrite: 0.6,
1419
+ cachingRead: 0.6
1420
+ }
1421
+ },
1422
+ {
1423
+ name: "gemini-2.5-pro",
1424
+ displayName: "Gemini 2.5 Pro",
1425
+ provider: "google",
1426
+ description: "Gemini 2.5 Pro model for complex reasoning, coding, and large context multimodal tasks.",
1427
+ hasVision: true,
1428
+ hasAudio: true,
1429
+ contextWindow: 1048576,
1430
+ maxOutputTokens: 65536,
1431
+ supportsTool: true,
1432
+ supportsReasoningEffort: true,
1433
+ price: {
1434
+ input: 10,
1435
+ output: 40,
1436
+ cachingWrite: 2.5,
1437
+ cachingRead: 2.5
1438
+ }
1439
+ },
1440
+ {
1441
+ name: "gemini-3.1-pro",
1442
+ displayName: "Gemini 3.1 Pro",
1443
+ provider: "google",
1444
+ description: "Gemini 3.1 Pro frontier reasoning, coding, and multimodal model.",
1445
+ hasVision: true,
1446
+ hasAudio: true,
1447
+ contextWindow: 1048576,
1448
+ maxOutputTokens: 65536,
1449
+ supportsTool: true,
1450
+ supportsReasoningEffort: true,
1451
+ price: {
1452
+ input: 16,
1453
+ output: 96,
1454
+ cachingWrite: 4,
1455
+ cachingRead: 4
1456
+ }
1457
+ }
1458
+ ];
1459
+
1460
+ // packages/integrations/openai/models.ts
1461
+ var GPT_5_5_STANDARD_PRICE = {
1462
+ input: 40,
1463
+ output: 240,
1464
+ inputCacheHit: 4
1465
+ };
1466
+ var GPT_5_5_LONG_CONTEXT_PRICE = {
1467
+ input: 80,
1468
+ output: 360,
1469
+ inputCacheHit: 8
1470
+ };
1471
+ var GPT_5_5_PRO_STANDARD_PRICE = {
1472
+ input: 240,
1473
+ output: 1440,
1474
+ inputCacheHit: 0
1475
+ };
1476
+ var GPT_5_5_PRO_LONG_CONTEXT_PRICE = {
1477
+ input: 480,
1478
+ output: 2160,
1479
+ inputCacheHit: 0
1480
+ };
1481
+ var GPT_5_6_SOL_STANDARD_PRICE = {
1482
+ input: 32,
1483
+ output: 160,
1484
+ inputCacheHit: 3.2
1485
+ };
1486
+ var GPT_5_6_SOL_LONG_CONTEXT_PRICE = {
1487
+ input: 64,
1488
+ output: 240,
1489
+ inputCacheHit: 6.4
1490
+ };
1491
+ var GPT_5_6_TERRA_STANDARD_PRICE = {
1492
+ input: 16,
1493
+ output: 96,
1494
+ inputCacheHit: 1.6
1495
+ };
1496
+ var GPT_5_6_TERRA_LONG_CONTEXT_PRICE = {
1497
+ input: 32,
1498
+ output: 144,
1499
+ inputCacheHit: 3.2
1500
+ };
1501
+ var GPT_5_6_LUNA_PRICE = {
1502
+ input: 1.6,
1503
+ output: 9.6,
1504
+ inputCacheHit: 0.16
1505
+ };
1506
+ var GPT_6_ASTRA_STANDARD_PRICE = {
1507
+ input: 80,
1508
+ output: 400,
1509
+ inputCacheHit: 8
1510
+ };
1511
+ var GPT_6_ASTRA_LONG_CONTEXT_PRICE = {
1512
+ input: 160,
1513
+ output: 600,
1514
+ inputCacheHit: 16
1515
+ };
1516
+ var openAIModels = [
1517
+ {
1518
+ name: "gpt-5.5",
1519
+ displayName: "GPT-5.5 Standard",
1520
+ endpointKey: "responses",
1521
+ hasVision: true,
1522
+ contextWindow: 1047576,
1523
+ maxOutputTokens: 128e3,
1524
+ supportsReasoningEffort: true,
1525
+ price: GPT_5_5_STANDARD_PRICE,
1526
+ pricingStrategy: {
1527
+ type: "tiered_context",
1528
+ tiers: [
1529
+ {
1530
+ minContext: 272001,
1531
+ price: GPT_5_5_LONG_CONTEXT_PRICE
1532
+ }
1533
+ ]
1534
+ }
1535
+ },
1536
+ {
1537
+ name: "gpt-5.6-sol",
1538
+ displayName: "GPT-5.6 Sol (Flagship)",
1539
+ endpointKey: "responses",
1540
+ hasVision: true,
1541
+ contextWindow: 105e4,
1542
+ maxOutputTokens: 128e3,
1543
+ supportsReasoningEffort: true,
1544
+ price: GPT_5_6_SOL_STANDARD_PRICE,
1545
+ pricingStrategy: {
1546
+ type: "tiered_context",
1547
+ tiers: [
1548
+ {
1549
+ minContext: 272001,
1550
+ price: GPT_5_6_SOL_LONG_CONTEXT_PRICE
1551
+ }
1552
+ ]
1553
+ }
1554
+ },
1555
+ {
1556
+ name: "gpt-5.6-terra",
1557
+ displayName: "GPT-5.6 Terra (Balanced)",
1558
+ endpointKey: "responses",
1559
+ hasVision: true,
1560
+ contextWindow: 105e4,
1561
+ maxOutputTokens: 128e3,
1562
+ supportsReasoningEffort: true,
1563
+ price: GPT_5_6_TERRA_STANDARD_PRICE,
1564
+ pricingStrategy: {
1565
+ type: "tiered_context",
1566
+ tiers: [
1567
+ {
1568
+ minContext: 272001,
1569
+ price: GPT_5_6_TERRA_LONG_CONTEXT_PRICE
1570
+ }
1571
+ ]
1572
+ }
1573
+ },
1574
+ {
1575
+ name: "gpt-5.6-luna",
1576
+ displayName: "GPT-5.6 Luna (Fast)",
1577
+ // 已知缺口(2026-09-24 官网核对):官方对 >272K 输入有 2x/1.5x 规则,本条目
1578
+ // 未建模档位;平台托管侧又明确「价不随档位浮动」。是否给 BYO 档位属于计费
1579
+ // 策略决定,留待 owner 决策,不在此顺手改。
1580
+ endpointKey: "responses",
1581
+ hasVision: true,
1582
+ contextWindow: 105e4,
1583
+ maxOutputTokens: 128e3,
1584
+ supportsReasoningEffort: true,
1585
+ price: GPT_5_6_LUNA_PRICE
1586
+ },
1587
+ {
1588
+ name: "gpt-6-astra",
1589
+ displayName: "GPT-6 Astra",
1590
+ endpointKey: "responses",
1591
+ hasVision: true,
1592
+ contextWindow: 105e4,
1593
+ maxOutputTokens: 128e3,
1594
+ supportsReasoningEffort: true,
1595
+ price: GPT_6_ASTRA_STANDARD_PRICE,
1596
+ pricingStrategy: {
1597
+ type: "tiered_context",
1598
+ tiers: [
1599
+ {
1600
+ minContext: 272001,
1601
+ price: GPT_6_ASTRA_LONG_CONTEXT_PRICE
1602
+ }
1603
+ ]
1496
1604
  }
1497
- });
1498
- }
1499
- // @__NO_SIDE_EFFECTS__
1500
- function pipe(...pipe$1) {
1501
- return _standardSchema({
1502
- ...pipe$1[0],
1503
- pipe: pipe$1,
1504
- "~run"(dataset, config$1) {
1505
- for (const item of pipe$1) if (item.kind !== "metadata") {
1506
- if (dataset.issues && (item.kind === "schema" || item.kind === "transformation")) {
1507
- dataset.typed = false;
1508
- break;
1605
+ },
1606
+ {
1607
+ name: "gpt-5.5-pro",
1608
+ displayName: "GPT-5.5 Pro",
1609
+ endpointKey: "responses",
1610
+ hasVision: true,
1611
+ contextWindow: 1047576,
1612
+ maxOutputTokens: 128e3,
1613
+ supportsReasoningEffort: true,
1614
+ price: GPT_5_5_PRO_STANDARD_PRICE,
1615
+ pricingStrategy: {
1616
+ type: "tiered_context",
1617
+ tiers: [
1618
+ {
1619
+ minContext: 272001,
1620
+ price: GPT_5_5_PRO_LONG_CONTEXT_PRICE
1509
1621
  }
1510
- if (!dataset.issues || !config$1.abortEarly && !config$1.abortPipeEarly) dataset = item["~run"](dataset, config$1);
1511
- }
1512
- return dataset;
1622
+ ]
1513
1623
  }
1514
- });
1515
- }
1624
+ }
1625
+ ];
1516
1626
 
1517
- // packages/ai/agent/createAgentSchema.ts
1518
- var PROVIDER_REASONING_EFFORT_VALUES = {
1519
- openai: ["none", "minimal", "low", "medium", "high", "xhigh", "max"],
1520
- deepseek: ["low", "high", "max"],
1521
- // nolo (Ollama Cloud) 支持 DeepSeek/Kimi/GLM 等 thinking 模型,
1522
- // reasoning_effort 通过 OpenAI 兼容端点透传到 Ollama Cloud。
1523
- nolo: ["low", "high", "max"],
1524
- xai: ["low", "medium", "high"],
1525
- grok: ["low", "medium", "high"],
1526
- // none:关闭思考;必须保留,否则上游 clamp 会把 none 抬成 low,
1527
- // kimi-code proxy 的 none/off → thinking.disabled 分支永远接不到。
1528
- kimi: ["none", "low", "high", "max"],
1529
- moonshot: ["none", "low", "high", "max"],
1530
- // Qwen 用 enable_thinking (bool) 而非 reasoning_effort → 隐藏下拉
1531
- qwen: [],
1532
- // MiniMax M3: 接受这些值但所有非 none 效果相同
1533
- minimax: ["none", "low", "medium", "high"],
1534
- // Cursor: 推理强度在模型名后缀 (如 -high),不走独立参数
1535
- cursor: [],
1536
- // MiMo: 保守默认
1537
- mimo: ["low", "medium", "high"],
1538
- // CommandCode Provider API 透传 reasoning_effort(low/medium/high/xhigh/max),
1539
- // 端点按各模型支持的子集自动 clamp(见 commandcode.ai/docs/provider-api)。
1540
- commandcode: ["low", "medium", "high", "xhigh", "max"]
1627
+ // packages/ai/llm/deepinfra.ts
1628
+ var DEEPINFRA_CLAUDE_HAIKU_PRICE = {
1629
+ input: 1 * 9,
1630
+ output: 5 * 9
1541
1631
  };
1542
- var greetingMenuItemSchema = object({
1543
- id: pipe(string(), minLength(1)),
1544
- label: pipe(string(), minLength(1)),
1545
- userMessage: optional(string())
1546
- });
1547
- var greetingConfigSchema = object({
1548
- text: optional(pipe(string(), trim())),
1549
- menu: optional(array(greetingMenuItemSchema))
1550
- });
1551
- var runtimeToolPolicySchema = looseObject({
1552
- version: optional(literal(1)),
1553
- agentTools: optional(array(string())),
1554
- runtimeTools: optional(array(string())),
1555
- workspace: optional(
1556
- object({
1557
- mode: optional(picklist(["none", "current", "lease"])),
1558
- writableRoots: optional(array(string())),
1559
- cwd: optional(string())
1560
- })
1561
- ),
1562
- shell: optional(record(string(), string())),
1563
- isolation: optional(record(string(), string())),
1564
- git: optional(record(string(), string())),
1565
- budget: optional(record(string(), string())),
1566
- audit: optional(record(string(), string()))
1567
- });
1568
- var referenceItemSchema = pipe(
1569
- object({
1570
- dbKey: string(),
1571
- title: string(),
1572
- type: picklist(["knowledge", "instruction", "page"])
1573
- }),
1574
- transform((data) => ({
1575
- ...data,
1576
- type: data.type === "page" ? "knowledge" : data.type
1577
- }))
1578
- );
1632
+ var DEEPINFRA_CLAUDE_SONNET_PRICE = {
1633
+ input: 3 * 9,
1634
+ output: 15 * 9
1635
+ };
1636
+ var DEEPINFRA_CLAUDE_OPUS_PRICE = {
1637
+ input: 5 * 9,
1638
+ output: 25 * 9
1639
+ };
1640
+ var DEEPINFRA_CLAUDE_FABLE_PRICE = {
1641
+ input: 10 * 9,
1642
+ output: 50 * 9
1643
+ };
1644
+ var deepinfraModels = [
1645
+ {
1646
+ name: "anthropic/claude-haiku-4-5",
1647
+ displayName: "Anthropic: Claude Haiku 4.5",
1648
+ hasVision: true,
1649
+ price: { ...DEEPINFRA_CLAUDE_HAIKU_PRICE },
1650
+ contextWindow: 195e3,
1651
+ maxOutputTokens: 4092,
1652
+ supportsTool: false
1653
+ },
1654
+ {
1655
+ name: "anthropic/claude-sonnet-5",
1656
+ displayName: "Anthropic: Claude Sonnet 5",
1657
+ hasVision: true,
1658
+ price: { ...DEEPINFRA_CLAUDE_SONNET_PRICE },
1659
+ contextWindow: 976e3,
1660
+ maxOutputTokens: 4092,
1661
+ supportsTool: false
1662
+ },
1663
+ {
1664
+ name: "anthropic/claude-opus-5",
1665
+ displayName: "Anthropic: Claude Opus 5",
1666
+ hasVision: true,
1667
+ price: { ...DEEPINFRA_CLAUDE_OPUS_PRICE },
1668
+ contextWindow: 976e3,
1669
+ maxOutputTokens: 4092,
1670
+ supportsTool: false
1671
+ },
1672
+ {
1673
+ name: "anthropic/claude-fable-5",
1674
+ displayName: "Anthropic: Claude Fable 5",
1675
+ hasVision: true,
1676
+ price: { ...DEEPINFRA_CLAUDE_FABLE_PRICE },
1677
+ contextWindow: 976e3,
1678
+ maxOutputTokens: 4092,
1679
+ supportsTool: false
1680
+ }
1681
+ ];
1682
+
1683
+ // packages/ai/llm/baseten.ts
1684
+ var BASETEN_GLM_53_FLASH_MODEL = "zai-org/GLM-5.3-Flash";
1685
+ var BASETEN_GLM_53_FLASH_PRICE = {
1686
+ input: 1.2,
1687
+ inputCacheHit: 0.24,
1688
+ output: 4
1689
+ };
1690
+ var basetenModels = [
1691
+ {
1692
+ name: BASETEN_GLM_53_FLASH_MODEL,
1693
+ displayName: "GLM 5.3 Flash",
1694
+ hasVision: true,
1695
+ price: { ...BASETEN_GLM_53_FLASH_PRICE },
1696
+ maxOutputTokens: 131072,
1697
+ contextWindow: 1048576,
1698
+ supportsTool: true,
1699
+ supportsReasoningEffort: true
1700
+ }
1701
+ ];
1702
+
1703
+ // packages/ai/llm/runinfra.ts
1704
+ var RUNINFRA_GLM_53_FLASH_MODEL = "glm-5-3-flash";
1705
+ var RUNINFRA_GLM_53_FLASH_PRICE = {
1706
+ input: 0.8,
1707
+ inputCacheHit: 0.08,
1708
+ output: 3.2
1709
+ };
1710
+ var runinfraModels = [
1711
+ {
1712
+ name: RUNINFRA_GLM_53_FLASH_MODEL,
1713
+ displayName: "GLM 5.3 Flash",
1714
+ hasVision: true,
1715
+ price: { ...RUNINFRA_GLM_53_FLASH_PRICE },
1716
+ maxOutputTokens: 1048576,
1717
+ contextWindow: 1048576,
1718
+ supportsTool: true,
1719
+ supportsReasoningEffort: true
1720
+ }
1721
+ ];
1722
+
1723
+ // packages/integrations/xai/models.ts
1724
+ var xaiModels = [
1725
+ {
1726
+ name: "grok-4.6",
1727
+ displayName: "Grok 4.6",
1728
+ hasVision: true,
1729
+ contextWindow: 5e5,
1730
+ price: { input: 16, output: 48, inputCacheHit: 4 },
1731
+ pricingStrategy: {
1732
+ type: "tiered_context",
1733
+ tiers: [
1734
+ {
1735
+ minContext: 200001,
1736
+ price: { input: 32, output: 96, inputCacheHit: 8 }
1737
+ }
1738
+ ]
1739
+ },
1740
+ fnCall: true,
1741
+ jsonOutput: true
1742
+ }
1743
+ ];
1744
+
1745
+ // packages/ai/llm/fireworks.ts
1746
+ var fireworksModels = [
1747
+ {
1748
+ name: "accounts/fireworks/models/minimax-m3",
1749
+ displayName: "MiniMax: MiniMax M3",
1750
+ hasVision: true,
1751
+ price: {
1752
+ input: 2.4,
1753
+ output: 9.6,
1754
+ cachingRead: 0.48
1755
+ },
1756
+ contextWindow: 512e3,
1757
+ supportsTool: true
1758
+ }
1759
+ ];
1579
1760
 
1580
1761
  // packages/ai/llm/reasoningModels.ts
1581
1762
  var REASONING_MODEL_NAMES = /* @__PURE__ */ new Set([
@@ -1591,6 +1772,7 @@ var REASONING_MODEL_NAMES = /* @__PURE__ */ new Set([
1591
1772
  "gemini-3.1-pro-preview",
1592
1773
  "gpt-5.5-pro",
1593
1774
  "gpt-6-astra",
1775
+ "gpt-6-luna",
1594
1776
  "gpt-5.6-sol",
1595
1777
  "gpt-5.6-terra",
1596
1778
  "gpt-5.6-luna",
@@ -1664,8 +1846,17 @@ function clampReasoningEffort(effort, provider) {
1664
1846
  }
1665
1847
 
1666
1848
  // packages/ai/llm/providers.ts
1849
+ var stepfunAllModels = [...stepfunModels, ...stepfunStepPlanModels];
1667
1850
  var moonshotAllModels = [...moonshotModels, ...kimiCodeModels];
1668
1851
  var qwenAllModels = [...qwenModels, ...qwenTokenPlanModels];
1852
+ var devinModels = [
1853
+ { name: "swe-2-max", displayName: "SWE-2 Max", hasVision: true, contextWindow: 262e3, price: { input: 0, output: 0 } },
1854
+ { name: "swe-2-high", displayName: "SWE-2 High", hasVision: true, contextWindow: 262e3, price: { input: 0, output: 0 } },
1855
+ { name: "swe-2-medium", displayName: "SWE-2 Medium", hasVision: true, contextWindow: 262e3, price: { input: 0, output: 0 } },
1856
+ { name: "swe-1-7", displayName: "SWE-1.7 Max", hasVision: true, contextWindow: 262e3, price: { input: 0, output: 0 } },
1857
+ { name: "swe-1-7-lightning", displayName: "SWE-1.7 Lightning Max", hasVision: true, contextWindow: 202752, price: { input: 0, output: 0 } },
1858
+ { name: "swe-1-6-fast", displayName: "SWE-1.6 Fast", hasVision: true, contextWindow: 2e5, price: { input: 0, output: 0 } }
1859
+ ];
1669
1860
  var MODEL_MAP = {
1670
1861
  // anthropic: anthropicModels,
1671
1862
  google: googleModels,
@@ -1680,10 +1871,12 @@ var MODEL_MAP = {
1680
1871
  gmi: gmiModels,
1681
1872
  zai: zaiModels,
1682
1873
  qwen: qwenAllModels,
1683
- moonshot: moonshotAllModels
1874
+ moonshot: moonshotAllModels,
1875
+ stepfun: stepfunAllModels
1684
1876
  };
1685
1877
  var MODEL_LOOKUP_MAP = {
1686
1878
  anthropic: [...anthropicModels, ...anthropicOAuthModels],
1879
+ devin: devinModels,
1687
1880
  xai: xaiModels,
1688
1881
  "opencode-go": opencodeGoModels,
1689
1882
  opencode: opencodeGoModels,
@@ -1818,6 +2011,10 @@ var API_ENDPOINTS = {
1818
2011
  moonshot: {
1819
2012
  // Moonshot AI(月之暗面)开放平台 OpenAI 兼容模式(按量计费)
1820
2013
  default: "https://api.moonshot.cn/v1/chat/completions"
2014
+ },
2015
+ stepfun: {
2016
+ // 阶跃星辰(StepFun)开放平台 OpenAI 兼容模式
2017
+ default: "https://api.stepfun.com/v1/chat/completions"
1821
2018
  }
1822
2019
  };
1823
2020
  function getModelConfig(provider, name) {
@@ -1901,6 +2098,14 @@ function getApiEndpoint(agent) {
1901
2098
 
1902
2099
  export {
1903
2100
  isAdaptiveThinkingModelId,
2101
+ qwenModels,
2102
+ qwenTokenPlanModels,
2103
+ moonshotModels,
2104
+ kimiCodeModels,
2105
+ stepfunModels,
2106
+ stepfunStepPlanModels,
2107
+ opencodeGoModels,
2108
+ DEFAULT_REASONING_EFFORT,
1904
2109
  isModelSupportReasoningEffort,
1905
2110
  clampReasoningEffort,
1906
2111
  MODEL_LOOKUP_MAP,