nolo-cli 0.79.0-alpha.1 → 0.79.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 (152) hide show
  1. package/README.md +2 -2
  2. package/{_executeModel-T3FPYFVF.js → _executeModel-U5V7LOJX.js} +46 -46
  3. package/{action-D22U6CTH.js → action-EXQVY3UO.js} +11 -11
  4. package/{addContentAction-XAPUTGL4.js → addContentAction-6IXQSRD2.js} +9 -9
  5. package/{addDialogAgentAction-M7VLLBZM.js → addDialogAgentAction-FZOB4BYM.js} +8 -8
  6. package/{agentDeleteCommand-2TYFURBN.js → agentDeleteCommand-4MIJFQQB.js} +30 -28
  7. package/{agentEmailCommands-7P35ZMUA.js → agentEmailCommands-JUXT36BY.js} +62 -60
  8. package/{agentGrantCommands-R3VQEZJR.js → agentGrantCommands-YW6PQAQ2.js} +2 -2
  9. package/{agentListCommands-IFUOWXP3.js → agentListCommands-MUVKMMZ5.js} +38 -30
  10. package/{agentMachineCommands-G46ZZ2ZQ.js → agentMachineCommands-56FTZLYV.js} +30 -28
  11. package/{agentProviderCommands-65ZC2WB4.js → agentProviderCommands-TOMVKJOV.js} +87 -0
  12. package/{agentPullCommand-N7L2CT7L.js → agentPullCommand-GLOOXJ2E.js} +3 -3
  13. package/{agentRecordCommands-R74LTQEQ.js → agentRecordCommands-FST3KAKG.js} +59 -57
  14. package/{agentRunCommand-IRSZYCEU.js → agentRunCommand-UMUEVIY2.js} +60 -58
  15. package/{agentRunControl-T44MESII.js → agentRunControl-XLGD3UZ5.js} +1 -1
  16. package/{agentRuntimeLocal-PUZINLWJ.js → agentRuntimeLocal-NH6GSGAJ.js} +28 -26
  17. package/{agentSlice-EACXUOWW.js → agentSlice-YZK6KG73.js} +10 -10
  18. package/{appDeleteCommands-U4NTEJYQ.js → appDeleteCommands-U45KXYX7.js} +30 -28
  19. package/{appDeployCommands-FXF45Q7F.js → appDeployCommands-LWQIQCFX.js} +30 -28
  20. package/{appDeployStatusCommands-KONVRM53.js → appDeployStatusCommands-LZO33PGD.js} +30 -28
  21. package/{appGetCommands-3VOGIZ7T.js → appGetCommands-OJSO6BCF.js} +30 -28
  22. package/{appListCommands-A6ROBW7P.js → appListCommands-NE56V7DI.js} +30 -28
  23. package/{authCommand-EVGFLAHO.js → authCommand-U5LA6H4Y.js} +164 -24
  24. package/{authCommands-ILTBI6JV.js → authCommands-RGOGCPP6.js} +4 -5
  25. package/builtinSkillRegistry-4NB7PCOF.js +33 -0
  26. package/{chatQueueReduxAdapter-XEIJO5WR.js → chatQueueReduxAdapter-FRMSYX7N.js} +24 -24
  27. package/{chunk-C3FZR5EC.js → chunk-2F7RJC6L.js} +1 -1
  28. package/{chunk-U6LKJRJB.js → chunk-377KM42Z.js} +42 -26
  29. package/{chunk-HQUORJTM.js → chunk-3BMYXEUW.js} +1 -1
  30. package/{chunk-AFIWC5NH.js → chunk-3XMOAYRC.js} +1 -1
  31. package/{chunk-UJ63UXGE.js → chunk-4CAPEGHN.js} +1077 -752
  32. package/{chunk-DWPNOYMB.js → chunk-4JBZUECA.js} +1 -1
  33. package/{chunk-NG4UT4K4.js → chunk-4QKBQHPQ.js} +1 -1
  34. package/{chunk-UZ6XXCVR.js → chunk-546FPOW3.js} +15 -2
  35. package/{chunk-5XTOKQLW.js → chunk-5UTFL4QJ.js} +6 -2
  36. package/chunk-5ZUL4CUO.js +10 -0
  37. package/{chunk-E6RGHPDR.js → chunk-6D6VBVEW.js} +4 -6
  38. package/{chunk-G3NT6BM3.js → chunk-7IBK6MYW.js} +142 -59
  39. package/{chunk-BYEJ7K2Z.js → chunk-7S4YWN7P.js} +1 -1
  40. package/{chunk-SREASRV5.js → chunk-ABQYVJBJ.js} +1 -1
  41. package/{chunk-H7UKKEIS.js → chunk-AQDH76OK.js} +1 -1
  42. package/{chunk-L2Y24GRM.js → chunk-B4S7MR5S.js} +16 -12
  43. package/{chunk-E36HZARC.js → chunk-BF2K6MRF.js} +3 -3
  44. package/{chunk-MGU5ADIQ.js → chunk-BKP7CFUD.js} +10 -10
  45. package/{chunk-2KDR4CWE.js → chunk-BYMV6QZG.js} +24 -1
  46. package/{chunk-AFIKMMGC.js → chunk-COM7GG76.js} +1 -1
  47. package/{chunk-HH65VA5U.js → chunk-CPH3W5A7.js} +15 -3
  48. package/{chunk-XWNRAIUL.js → chunk-DM4UNXPK.js} +6 -16
  49. package/{chunk-ZLPA7K55.js → chunk-DSX6K7C2.js} +29 -10
  50. package/{chunk-QA6YKM3H.js → chunk-E2NP7ZQU.js} +32 -4
  51. package/{chunk-FSFQ3A7S.js → chunk-E3VQ6S3A.js} +10 -10
  52. package/{chunk-YFADVSZE.js → chunk-F3UTRUDO.js} +6 -6
  53. package/{chunk-KIS76A2P.js → chunk-G5X57NDE.js} +38 -4
  54. package/{chunk-BJIRLHJR.js → chunk-GII32WZW.js} +1 -0
  55. package/{chunk-DSRXPQWA.js → chunk-GRDSMV4V.js} +43 -43
  56. package/{chunk-733J6D44.js → chunk-HGRDL36J.js} +6 -6
  57. package/{chunk-OZX2IPKM.js → chunk-HQCSU3DI.js} +1 -1
  58. package/{chunk-3JQ2NRYU.js → chunk-HVURBGF3.js} +4 -4
  59. package/{chunk-QC5LGHYP.js → chunk-HWZAXNO7.js} +10 -5
  60. package/{chunk-Q6FF2MCK.js → chunk-IIKPWSPX.js} +1 -1
  61. package/{chunk-KC5FAHVS.js → chunk-JEDZAO7L.js} +1 -1
  62. package/{chunk-6XIE5ZGI.js → chunk-JPGCXHNM.js} +1 -1
  63. package/{chunk-AJHEFRGJ.js → chunk-JTYPAMGP.js} +155 -1
  64. package/{chunk-UDQWGU7F.js → chunk-KR3YI36B.js} +1 -1
  65. package/{chunk-RXX4GDIH.js → chunk-LS2ZANRJ.js} +1 -1
  66. package/{chunk-SZLVDREM.js → chunk-LSSBA2TN.js} +3 -3
  67. package/{chunk-CMH2SYHX.js → chunk-MBEEYLGL.js} +2 -2
  68. package/{chunk-EVBFYPDC.js → chunk-MC4XLIJ7.js} +6 -2
  69. package/{chunk-PGSKWZCB.js → chunk-NKIH4Q7W.js} +1 -1
  70. package/{chunk-FPTQQSS6.js → chunk-OH7H6LPC.js} +26 -5
  71. package/{chunk-5J7W2VWW.js → chunk-OOLWKQSM.js} +6 -265
  72. package/{chunk-AETZ7AD6.js → chunk-Q554LLSI.js} +1 -1
  73. package/chunk-Q5FJJ6XI.js +103 -0
  74. package/{chunk-JYYZCK2Z.js → chunk-QFMFJZLO.js} +1 -1
  75. package/{chunk-P7FA2HMM.js → chunk-QMASIHYZ.js} +13 -15
  76. package/{chunk-ZY4K4CZR.js → chunk-R2YY6MWV.js} +909 -304
  77. package/chunk-RLEWGSM5.js +677 -0
  78. package/{chunk-PYXL2CJL.js → chunk-RZYQMSQA.js} +1 -1
  79. package/{chunk-XEEHSS64.js → chunk-S3UI4IUJ.js} +1200 -52
  80. package/{chunk-SPAQ4PVV.js → chunk-SAFZABH7.js} +1 -1
  81. package/{chunk-QRBAZ5PW.js → chunk-SASGLNUD.js} +3 -3
  82. package/{chunk-D74EWXL4.js → chunk-SUERPXJZ.js} +390 -47
  83. package/{chunk-3QPYFHAH.js → chunk-TMAZ3VHN.js} +1 -1
  84. package/{chunk-BJCWNHVU.js → chunk-U47DH2WO.js} +2 -2
  85. package/{chunk-MEVSATIF.js → chunk-UBNV6CS6.js} +66 -792
  86. package/{chunk-EXMHJN7C.js → chunk-UDEFS2PV.js} +4 -3
  87. package/{chunk-NHRQCXIQ.js → chunk-VMFTFOWF.js} +13 -3
  88. package/{chunk-4EJ5QYB5.js → chunk-VOOTT7HA.js} +1 -1
  89. package/{chunk-PZM3EENV.js → chunk-W2E6HIIK.js} +1 -1
  90. package/chunk-WKEUHK57.js +1625 -0
  91. package/{chunk-GBPZKFYK.js → chunk-WON762L4.js} +4 -4
  92. package/{chunk-X7Z7U4Z6.js → chunk-WP6BC7OF.js} +15 -15
  93. package/{chunk-QUH3XHL5.js → chunk-X2ZTVRXP.js} +7 -7
  94. package/{chunk-MYU3MJCF.js → chunk-XAQAF25W.js} +175 -7
  95. package/chunk-XGJAR4T5.js +283 -0
  96. package/{chunk-ZZCJUXUI.js → chunk-XLGHBHGP.js} +2 -2
  97. package/{chunk-V3ZKNK5D.js → chunk-YOXYA2GU.js} +10 -10
  98. package/{chunk-ALGK6TIE.js → chunk-YPYMGGPJ.js} +3 -3
  99. package/{chunk-K7AG465Q.js → chunk-ZHUTWJ3N.js} +4 -2
  100. package/{chunk-CDVGNZDA.js → chunk-ZKMYGRO7.js} +11 -173
  101. package/{contentThunks-3SPROFG5.js → contentThunks-TC3AENBY.js} +25 -25
  102. package/{createAgentAutomationAction-EIP2EG3O.js → createAgentAutomationAction-67EOD3WK.js} +25 -25
  103. package/{createDialogAction-RLUSTN4D.js → createDialogAction-4OCQC5MW.js} +28 -28
  104. package/{createPageAction-4Y52G7WG.js → createPageAction-JLGVP57B.js} +26 -26
  105. package/{dbSlice-GKGGFNOB.js → dbSlice-RDGCE5MU.js} +8 -8
  106. package/{deleteFile-LWSR674W.js → deleteFile-YG6QMJLU.js} +3 -3
  107. package/{dialogCommands-G223U5WU.js → dialogCommands-JHSDKCR5.js} +32 -30
  108. package/{dialogSlice-THY45JWM.js → dialogSlice-I2DK32ZT.js} +24 -24
  109. package/{docCreateCommands-2P47IJDK.js → docCreateCommands-QUL6VWK2.js} +31 -29
  110. package/{docDeleteCommands-N3EGDOIC.js → docDeleteCommands-DMQ2MU6I.js} +32 -30
  111. package/{docReadCommands-6BFV2HI7.js → docReadCommands-FVHENBU6.js} +31 -29
  112. package/{docStore-ZQ3ECOPY.js → docStore-OLC6MD7B.js} +9 -9
  113. package/{docUpdateCommands-ZTMPXHC5.js → docUpdateCommands-VA6V5C6L.js} +31 -29
  114. package/{fetchMessages-DRABNDPZ.js → fetchMessages-EIU7UFFK.js} +3 -4
  115. package/{getPricing-HRMSOF3E.js → getPricing-YYXTEPBP.js} +4 -4
  116. package/{handleSendMessageAction-CE4M5XIE.js → handleSendMessageAction-GRDIRXAK.js} +24 -24
  117. package/index.js +88 -80
  118. package/{localDialogRead-PUQKFI73.js → localDialogRead-BTFJ4V2I.js} +2 -2
  119. package/{localRuntimeDb-P37ZTX55.js → localRuntimeDb-SYQGUF4U.js} +1 -1
  120. package/{machineCommands-4OT7KVCD.js → machineCommands-IJJ66MYU.js} +59 -57
  121. package/{machineWsRunDispatch-TR3EYESP.js → machineWsRunDispatch-PP2ZBS6D.js} +57 -55
  122. package/{memberThunks-KATHH3F4.js → memberThunks-WQGQWYYT.js} +9 -9
  123. package/{models-GS72DVJS.js → models-UN7YGMPM.js} +2 -2
  124. package/{offlineMarxistsAgentCommand-GEH6SNNA.js → offlineMarxistsAgentCommand-JEWCIAWM.js} +1 -1
  125. package/package.json +1 -1
  126. package/providerPresetApply-NO73BG45.js +214 -0
  127. package/providerRegistry-OVY4VKNN.js +31 -0
  128. package/{read-LC6HVYBN.js → read-S4WC2OUK.js} +5 -4
  129. package/{readDocTool-N3ERJHHF.js → readDocTool-PQNM63KV.js} +1 -1
  130. package/{readlineWorkspace-GSL5CYNJ.js → readlineWorkspace-ASJECDJD.js} +196 -111
  131. package/{removeDialogAgentAction-F5GPTALR.js → removeDialogAgentAction-YJZ6XJV6.js} +11 -11
  132. package/{runAgentClientLoop-NE5EHXSS.js → runAgentClientLoop-KIOQSDRC.js} +45 -45
  133. package/{runtimeDoctorCommands-CROTMULY.js → runtimeDoctorCommands-X6WDBEQX.js} +2 -2
  134. package/{setDialogExtraReferencesAction-AY4ZCF3A.js → setDialogExtraReferencesAction-E6A3WL4E.js} +9 -9
  135. package/{setPrimaryDialogAgentAction-HPMG7V3R.js → setPrimaryDialogAgentAction-WBLIVICQ.js} +11 -11
  136. package/{settingSlice-OEJA4NQO.js → settingSlice-JR6S7TRD.js} +10 -10
  137. package/{spaceCommands-MRP5U3C3.js → spaceCommands-WDUNCAK5.js} +29 -27
  138. package/{streamAgentChatTurn-A6L6O22P.js → streamAgentChatTurn-EGQDPMAO.js} +57 -56
  139. package/{switchDialogAgentAction-HMDZTZ4I.js → switchDialogAgentAction-DTR36ZY2.js} +8 -8
  140. package/{tableCommands-SUNTHAYX.js → tableCommands-O6NWHFKV.js} +1 -1
  141. package/{toolApiClient-VGYUB4P5.js → toolApiClient-7PSIFQPJ.js} +2 -2
  142. package/{tools-JS475NYO.js → tools-AOVE5LKM.js} +41 -39
  143. package/tuiSummaryLlmCaller-XRQCSNYQ.js +127 -0
  144. package/{updateCommands-Y363MC3L.js → updateCommands-2M74UL7P.js} +2 -2
  145. package/{updateDialogTitleAction-GMZUT6RP.js → updateDialogTitleAction-T66TXHIR.js} +45 -28
  146. package/chunk-3IT2PFHL.js +0 -611
  147. package/chunk-I42VC5KR.js +0 -15
  148. package/codingSkills-E6KSDNSJ.js +0 -48
  149. package/tuiSummaryLlmCaller-3Z24VUWM.js +0 -116
  150. package/{chunk-3RAG2NAD.js → chunk-UKWGR5SS.js} +3 -3
  151. package/{db-VQSAOWAO.js → db-WK5MDZVN.js} +1 -1
  152. package/{localRuntimeAuthority-R5UBODT3.js → localRuntimeAuthority-6IR6BBXE.js} +3 -3
@@ -0,0 +1,677 @@
1
+ import {
2
+ ANTIGRAVITY_CLOUD_CODE_BASE_URL
3
+ } from "./chunk-NKIH4Q7W.js";
4
+ import {
5
+ kimiCodeModels,
6
+ moonshotModels,
7
+ opencodeGoModels,
8
+ qwenModels,
9
+ qwenTokenPlanModels,
10
+ stepfunModels,
11
+ stepfunStepPlanModels
12
+ } from "./chunk-4CAPEGHN.js";
13
+ import {
14
+ PLATFORM_HOSTED_DEEPSEEK_FLASH_OFF_PEAK_PRICE,
15
+ PLATFORM_HOSTED_DEEPSEEK_FLASH_PEAK_PRICE,
16
+ PLATFORM_HOSTED_DEEPSEEK_PRO_OFF_PEAK_PRICE,
17
+ PLATFORM_HOSTED_DEEPSEEK_PRO_PEAK_PRICE
18
+ } from "./chunk-JTYPAMGP.js";
19
+
20
+ // packages/integrations/commandcode/models.ts
21
+ var commandCodeModels = [
22
+ // ── DeepSeek ──
23
+ {
24
+ name: "deepseek/deepseek-v4-flash",
25
+ displayName: "DeepSeek V4 Flash",
26
+ hasVision: false,
27
+ price: { input: 0, output: 0 },
28
+ provider: "commandcode",
29
+ description: "CommandCode \u5B98\u65B9\u9ED8\u8BA4\u6A21\u578B\uFF0C\u5FEB\u901F\u6DF7\u5408\u6CE8\u610F\u529B\u63A8\u7406\u3002"
30
+ },
31
+ {
32
+ name: "deepseek/deepseek-v4-pro",
33
+ displayName: "DeepSeek V4 Pro",
34
+ hasVision: false,
35
+ price: { input: 0, output: 0 },
36
+ provider: "commandcode",
37
+ description: "\u6DF7\u5408\u6CE8\u610F\u529B\u957F\u4E0A\u4E0B\u6587\u63A8\u7406\u65D7\u8230\u3002"
38
+ },
39
+ {
40
+ name: "deepseek/deepseek-v4.1-flash",
41
+ displayName: "DeepSeek V4.1 Flash",
42
+ hasVision: true,
43
+ price: { input: 0, output: 0 },
44
+ provider: "commandcode",
45
+ description: "V4.1 \u6DF7\u5408\u6CE8\u610F\u529B\u63A8\u7406\uFF0C\u5E26\u89C6\u89C9\u3002"
46
+ },
47
+ // ── Moonshot ──
48
+ {
49
+ name: "moonshotai/Kimi-K3",
50
+ displayName: "Kimi K3",
51
+ hasVision: false,
52
+ price: { input: 0, output: 0 },
53
+ provider: "commandcode",
54
+ description: "Kimi K3\uFF0C\u6708\u4E4B\u6697\u9762\u65D7\u8230\u3002"
55
+ },
56
+ {
57
+ name: "moonshotai/Kimi-K2.7-Code",
58
+ displayName: "Kimi K2.7 Code",
59
+ hasVision: false,
60
+ price: { input: 0, output: 0 },
61
+ provider: "commandcode",
62
+ description: "Kimi K2.7 Code\uFF0C\u7F16\u7A0B\u7279\u5316\u3002"
63
+ },
64
+ // ── Qwen ──
65
+ {
66
+ name: "Qwen/Qwen3.8-Max",
67
+ displayName: "Qwen 3.8 Max",
68
+ hasVision: true,
69
+ price: { input: 0, output: 0 },
70
+ provider: "commandcode",
71
+ description: "\u81EA\u4E3B\u957F\u7A0B\u7F16\u7A0B\u4E0E\u4E13\u4E1A\u5DE5\u4F5C\u3002"
72
+ },
73
+ // ── Z AI ──
74
+ {
75
+ name: "zai-org/GLM-5.3",
76
+ displayName: "GLM 5.3",
77
+ hasVision: false,
78
+ price: { input: 0, output: 0 },
79
+ provider: "commandcode",
80
+ description: "\u524D\u6CBF\u7F16\u7A0B\u6A21\u578B\uFF0C1M \u4E0A\u4E0B\u6587\u3002"
81
+ },
82
+ {
83
+ name: "z-ai/glm-5.3-flash",
84
+ displayName: "GLM 5.3 Flash",
85
+ hasVision: true,
86
+ price: { input: 0, output: 0 },
87
+ provider: "commandcode",
88
+ description: "\u5FEB\u901F\u5B9E\u60E0\u7684 GLM \u7F16\u7A0B\u6A21\u578B\uFF0C1M \u4E0A\u4E0B\u6587\u3002"
89
+ },
90
+ // ── Xiaomi ──
91
+ {
92
+ name: "xiaomi/mimo-v2.5-pro",
93
+ displayName: "MiMo V2.5 Pro",
94
+ hasVision: false,
95
+ price: { input: 0, output: 0 },
96
+ provider: "commandcode",
97
+ description: "\u9AD8\u80FD\u529B\u957F\u4E0A\u4E0B\u6587 agentic \u7F16\u7A0B\u3002"
98
+ },
99
+ // ── MiniMax ──
100
+ {
101
+ name: "MiniMaxAI/MiniMax-M3",
102
+ displayName: "MiniMax M3",
103
+ hasVision: false,
104
+ price: { input: 0, output: 0 },
105
+ provider: "commandcode",
106
+ description: "MiniMax M3 \u63A8\u7406\u6A21\u578B\u3002"
107
+ },
108
+ // ── xAI ──
109
+ {
110
+ name: "xai/grok-4.6",
111
+ displayName: "Grok 4.6",
112
+ hasVision: true,
113
+ price: { input: 0, output: 0 },
114
+ provider: "commandcode",
115
+ description: "\u7F16\u7A0B\u3001\u77E5\u8BC6\u4E0E STEM \u524D\u6CBF\u8868\u73B0\u3002"
116
+ },
117
+ {
118
+ name: "xai/grok-4.5",
119
+ displayName: "Grok 4.5",
120
+ hasVision: true,
121
+ price: { input: 0, output: 0 },
122
+ provider: "commandcode",
123
+ description: "\u7F16\u7A0B\u4E0E agentic \u4EFB\u52A1\u667A\u80FD\u4E4B\u9009\u3002"
124
+ },
125
+ // ── Anthropic ──
126
+ {
127
+ name: "claude-sonnet-5",
128
+ displayName: "Claude Sonnet 5",
129
+ hasVision: false,
130
+ price: { input: 0, output: 0 },
131
+ provider: "commandcode",
132
+ description: "\u901F\u5EA6\u4E0E\u667A\u80FD\u7684\u6700\u4F73\u5E73\u8861\uFF08\u5B98\u65B9\u63A8\u8350\uFF09\u3002"
133
+ },
134
+ {
135
+ name: "claude-opus-5",
136
+ displayName: "Claude Opus 5",
137
+ hasVision: false,
138
+ price: { input: 0, output: 0 },
139
+ provider: "commandcode",
140
+ description: "\u6700\u667A\u80FD\u7684 Opus\uFF0Cagent \u4E0E\u7F16\u7A0B\u3002"
141
+ },
142
+ // ── OpenAI ──
143
+ {
144
+ name: "gpt-5.6-sol",
145
+ displayName: "GPT-5.6 Sol",
146
+ hasVision: false,
147
+ price: { input: 0, output: 0 },
148
+ provider: "commandcode",
149
+ description: "OpenAI GPT-5.6 Sol\u3002"
150
+ },
151
+ {
152
+ name: "gpt-6-astra",
153
+ displayName: "GPT-6 Astra",
154
+ hasVision: false,
155
+ price: { input: 0, output: 0 },
156
+ provider: "commandcode",
157
+ description: "OpenAI GPT-6 Astra \u65D7\u8230\u3002"
158
+ },
159
+ // ── Google ──
160
+ {
161
+ name: "google/gemini-3.8-flash",
162
+ displayName: "Gemini 3.8 Flash",
163
+ hasVision: true,
164
+ price: { input: 0, output: 0 },
165
+ provider: "commandcode",
166
+ description: "Gemini 3.8 Flash\uFF0C\u591A\u6A21\u6001\u3002"
167
+ }
168
+ ];
169
+
170
+ // packages/integrations/deepseek/models.ts
171
+ var deepseekModels = [
172
+ // ── 旗舰 ──
173
+ {
174
+ name: "deepseek-v4-pro",
175
+ displayName: "DeepSeek V4 Pro",
176
+ hasVision: false,
177
+ contextWindow: 1e6,
178
+ jsonOutput: true,
179
+ fnCall: true,
180
+ supportsTool: true,
181
+ supportsReasoningEffort: true,
182
+ price: { ...PLATFORM_HOSTED_DEEPSEEK_PRO_PEAK_PRICE },
183
+ peakPrice: { ...PLATFORM_HOSTED_DEEPSEEK_PRO_PEAK_PRICE },
184
+ offPeakPrice: { ...PLATFORM_HOSTED_DEEPSEEK_PRO_OFF_PEAK_PRICE },
185
+ provider: "deepseek",
186
+ description: "DeepSeek \u65D7\u8230\u63A8\u7406\u6A21\u578B\uFF0C1M \u4E0A\u4E0B\u6587\uFF0C\u601D\u8003\u6A21\u5F0F + \u5DE5\u5177\u8C03\u7528\uFF1B\u7EAF\u6587\u672C\u6A21\u578B\uFF0C\u4E0D\u652F\u6301\u56FE\u7247\u8F93\u5165\u3002"
187
+ },
188
+ // ── 高性价比 ──
189
+ {
190
+ name: "deepseek-flash",
191
+ displayName: "DeepSeek Flash",
192
+ hasVision: true,
193
+ contextWindow: 1e6,
194
+ jsonOutput: true,
195
+ fnCall: true,
196
+ supportsTool: true,
197
+ supportsReasoningEffort: true,
198
+ price: { ...PLATFORM_HOSTED_DEEPSEEK_FLASH_PEAK_PRICE },
199
+ peakPrice: { ...PLATFORM_HOSTED_DEEPSEEK_FLASH_PEAK_PRICE },
200
+ offPeakPrice: { ...PLATFORM_HOSTED_DEEPSEEK_FLASH_OFF_PEAK_PRICE },
201
+ provider: "deepseek",
202
+ description: "DeepSeek \u9AD8\u6027\u4EF7\u6BD4\u6A21\u578B\uFF0C1M \u4E0A\u4E0B\u6587\uFF0C\u652F\u6301\u89C6\u89C9\u8F93\u5165\u4E0E\u601D\u8003\u6A21\u5F0F\uFF0C\u957F\u7A0B\u7F16\u7A0B\u4E0E\u65E5\u5E38\u95EE\u7B54\u517C\u987E\u3002"
203
+ }
204
+ ];
205
+
206
+ // packages/ai/agent/providerRegistry.ts
207
+ var QWEN_MODEL_OPTIONS = qwenModels.map((m, i) => ({
208
+ id: m.name,
209
+ label: m.displayName ?? m.name,
210
+ hasVision: m.hasVision,
211
+ ...i === 0 ? { recommended: true } : {}
212
+ }));
213
+ var QWEN_TOKEN_PLAN_MODEL_OPTIONS = qwenTokenPlanModels.map((m, i) => ({
214
+ id: m.name,
215
+ label: m.displayName ?? m.name,
216
+ hasVision: m.hasVision,
217
+ ...i === 0 ? { recommended: true } : {}
218
+ }));
219
+ var MOONSHOT_MODEL_OPTIONS = moonshotModels.map((m, i) => ({
220
+ id: m.name,
221
+ label: m.displayName ?? m.name,
222
+ hasVision: m.hasVision,
223
+ ...i === 0 ? { recommended: true } : {}
224
+ }));
225
+ var KIMI_CODE_MODEL_OPTIONS = kimiCodeModels.map((m, i) => ({
226
+ id: m.name,
227
+ label: m.displayName ?? m.name,
228
+ hasVision: m.hasVision,
229
+ ...i === 0 ? { recommended: true } : {}
230
+ }));
231
+ var OPENCODE_GO_MODEL_OPTIONS = opencodeGoModels.map((m, i) => ({
232
+ id: m.name,
233
+ label: m.displayName ?? m.name,
234
+ hasVision: m.hasVision,
235
+ ...i === 0 ? { recommended: true } : {}
236
+ }));
237
+ var COMMAND_CODE_MODEL_OPTIONS = commandCodeModels.map((m, i) => ({
238
+ id: m.name,
239
+ label: m.displayName ?? m.name,
240
+ hasVision: m.hasVision,
241
+ ...i === 0 ? { recommended: true } : {}
242
+ }));
243
+ var DEEPSEEK_MODEL_OPTIONS = deepseekModels.map((m, i) => ({
244
+ id: m.name,
245
+ label: m.displayName ?? m.name,
246
+ hasVision: m.hasVision,
247
+ ...i === 0 ? { recommended: true } : {}
248
+ }));
249
+ var STEPFUN_MODEL_OPTIONS = stepfunModels.map((m, i) => ({
250
+ id: m.name,
251
+ label: m.displayName ?? m.name,
252
+ hasVision: m.hasVision,
253
+ ...i === 0 ? { recommended: true } : {}
254
+ }));
255
+ var MIMO_MODEL_OPTIONS = [
256
+ { id: "mimo-v2.6-flash", label: "MiMo V2.6 Flash", hasVision: true, recommended: true },
257
+ { id: "mimo-v2.6-pro", label: "MiMo V2.6 Pro", hasVision: true },
258
+ {
259
+ id: "mimo-v2.6-pro-ultraspeed",
260
+ label: "MiMo V2.6 Pro Ultraspeed",
261
+ hasVision: true
262
+ }
263
+ ];
264
+ var STEPFUN_STEP_PLAN_MODEL_OPTIONS = stepfunStepPlanModels.map((m, i) => ({
265
+ id: m.name,
266
+ label: m.displayName ?? m.name,
267
+ hasVision: m.hasVision,
268
+ ...i === 0 ? { recommended: true } : {}
269
+ }));
270
+ var SUBSCRIPTION_OAUTH_PROVIDERS = [
271
+ {
272
+ kind: "oauth",
273
+ id: "chatgpt",
274
+ label: "ChatGPT Plus/Pro",
275
+ description: "Codex Subscription",
276
+ apiKeyRef: "chatgpt",
277
+ provider: "openai",
278
+ defaultModel: "gpt-6-astra",
279
+ defaultReasoningEffort: "medium",
280
+ modelOptions: [
281
+ { id: "gpt-6-astra", label: "GPT-6 Astra", hasVision: true, recommended: true },
282
+ { id: "gpt-5.6-sol", label: "GPT-5.6 Sol", hasVision: true },
283
+ { id: "gpt-5.6-terra", label: "GPT-5.6 Terra", hasVision: true },
284
+ { id: "gpt-5.6-luna", label: "GPT-5.6 Luna", hasVision: true }
285
+ ]
286
+ },
287
+ {
288
+ kind: "oauth",
289
+ id: "xai-oauth",
290
+ label: "xAI Grok OAuth",
291
+ description: "SuperGrok Subscription",
292
+ apiKeyRef: "xai",
293
+ provider: "xai",
294
+ defaultModel: "grok-4.6",
295
+ defaultReasoningEffort: "high",
296
+ modelOptions: [
297
+ { id: "grok-4.6", label: "Grok 4.6", hasVision: true, recommended: true }
298
+ ]
299
+ },
300
+ {
301
+ kind: "oauth",
302
+ id: "antigravity",
303
+ label: "Antigravity",
304
+ description: "Gemini 3, Claude, GPT-OSS",
305
+ apiKeyRef: "antigravity",
306
+ provider: "google-antigravity",
307
+ defaultModel: "gemini-3.8-flash",
308
+ defaultReasoningEffort: "medium",
309
+ modelOptions: [
310
+ { id: "gemini-3.8-flash", label: "Gemini 3.8 Flash", hasVision: true, recommended: true },
311
+ { id: "gemini-3.7-flash", label: "Gemini 3.7 Flash", hasVision: true },
312
+ { id: "gemini-3.6-flash", label: "Gemini 3.6 Flash", hasVision: true },
313
+ { id: "gemini-3.1-pro", label: "Gemini 3.1 Pro", hasVision: true },
314
+ { id: "gemini-2.5-pro", label: "Gemini 2.5 Pro", hasVision: true },
315
+ { id: "claude-sonnet-5", label: "Claude Sonnet 5", hasVision: true },
316
+ { id: "claude-opus-4-6-thinking", label: "Claude Opus 4.6 Thinking", hasVision: true }
317
+ ],
318
+ cloudCodeBaseUrl: ANTIGRAVITY_CLOUD_CODE_BASE_URL
319
+ },
320
+ {
321
+ kind: "oauth",
322
+ id: "claude-oauth",
323
+ label: "Claude Pro/Max",
324
+ description: "Anthropic Subscription",
325
+ apiKeyRef: "claude",
326
+ provider: "anthropic",
327
+ defaultModel: "claude-sonnet-5",
328
+ defaultReasoningEffort: "high",
329
+ modelOptions: [
330
+ { id: "claude-sonnet-5", label: "Claude Sonnet 5", hasVision: true },
331
+ { id: "claude-opus-5", label: "Claude Opus 5", hasVision: true, recommended: true },
332
+ { id: "claude-opus-4-8", label: "Claude Opus 4.8", hasVision: true },
333
+ { id: "claude-fable-5", label: "Claude Fable 5", hasVision: true }
334
+ ]
335
+ },
336
+ {
337
+ kind: "oauth",
338
+ id: "cursor-oauth",
339
+ label: "Cursor Pro",
340
+ description: "Cursor Subscription",
341
+ apiKeyRef: "cursor",
342
+ provider: "cursor",
343
+ // Wire ids must match GetUsableModels. First-party Grok/Composer draw from
344
+ // the Cursor Models pool; everything else draws from Other Models.
345
+ defaultModel: "cursor-grok-4.5-high",
346
+ // Cursor 的 model id 已带 effort 后缀(-high/-medium/-fast),推理强度隐含在模型选择里;
347
+ // 这里给 medium 作为面板默认,避免与模型 id 里的后缀语义冲突。
348
+ defaultReasoningEffort: "medium",
349
+ modelOptions: [
350
+ { id: "cursor-grok-4.5-high", label: "Grok 4.5", hasVision: true, recommended: true },
351
+ { id: "cursor-grok-4.5-high-fast", label: "Grok 4.5 Fast", hasVision: true },
352
+ { id: "composer-2.5-fast", label: "Composer 2.5 Fast", hasVision: false },
353
+ { id: "composer-2.5", label: "Composer 2.5", hasVision: false },
354
+ { id: "gpt-5.3-codex", label: "GPT-5.3 Codex", hasVision: true },
355
+ { id: "gpt-5.3-codex-high", label: "GPT-5.3 Codex High", hasVision: true },
356
+ { id: "gpt-5.4-medium", label: "GPT-5.4 Medium", hasVision: true },
357
+ { id: "claude-4.6-sonnet-medium", label: "Claude 4.6 Sonnet", hasVision: true },
358
+ { id: "claude-4.6-opus-high", label: "Claude 4.6 Opus", hasVision: true },
359
+ { id: "gemini-3.1-pro", label: "Gemini 3.1 Pro", hasVision: true }
360
+ ]
361
+ },
362
+ {
363
+ kind: "oauth",
364
+ id: "devin-oauth",
365
+ label: "Devin Pro",
366
+ description: "Devin Pro $20/\u6708\uFF1A\u65E5/\u5468 quota \u8986\u76D6 sessions/CLI/Desktop\uFF0C\u8D85\u989D\u6309 API \u4EF7\u8D2D credits\uFF1BSWE-2 \u9650\u65F6\u514D\u8D39\u81F3 2026-10-10",
367
+ apiKeyRef: "devin",
368
+ provider: "devin",
369
+ defaultModel: "swe-2-max",
370
+ defaultReasoningEffort: "high",
371
+ modelOptions: [
372
+ // selector 全部来自上游 live catalog(GetCliModelConfigs)并逐個实测可调。
373
+ // 旧列表 9 个选项里 6 个是上游不存在的死 id(swe-2 / swe-1.7 /
374
+ // claude-3.7-sonnet / gpt-5.2 / gpt-4o / claude-sonnet-4.6 均
375
+ // permission_denied),已替换。注意 catalog selector 是连字符写法,
376
+ // 点号/裸写法上游不接受。
377
+ { id: "swe-2-max", label: "SWE-2 Max", hasVision: true, recommended: true },
378
+ { id: "swe-2-high", label: "SWE-2 High", hasVision: true },
379
+ { id: "swe-2-medium", label: "SWE-2 Medium", hasVision: true },
380
+ { id: "swe-1-7", label: "SWE-1.7 Max", hasVision: true },
381
+ { id: "swe-1-7-lightning", label: "SWE-1.7 Lightning Max", hasVision: true },
382
+ { id: "swe-1-6-fast", label: "SWE-1.6 Fast", hasVision: true },
383
+ // Opus 5.5 全档位于 2026-09-22 随上游 catalog 上线,逐档实测可调。
384
+ { id: "claude-opus-5-5-medium", label: "Claude Opus 5.5 Medium", hasVision: true },
385
+ { id: "claude-opus-5-5-high", label: "Claude Opus 5.5 High", hasVision: true },
386
+ { id: "claude-opus-5-5-low", label: "Claude Opus 5.5 Low", hasVision: true },
387
+ { id: "claude-opus-5-5-xhigh", label: "Claude Opus 5.5 XHigh", hasVision: true },
388
+ { id: "claude-opus-5-medium", label: "Claude Opus 5 Medium", hasVision: true },
389
+ { id: "claude-fable-5-1-medium", label: "Claude Fable 5.1 Medium", hasVision: true },
390
+ { id: "claude-sonnet-5-medium", label: "Claude Sonnet 5 Medium", hasVision: true },
391
+ { id: "claude-sonnet-4-6", label: "Claude Sonnet 4.6", hasVision: true },
392
+ { id: "gpt-6-astra-medium", label: "GPT-6 Astra Medium", hasVision: true },
393
+ { id: "gpt-6-astra-high", label: "GPT-6 Astra High", hasVision: true },
394
+ // GPT-6 Sol/Luna 已随上游上线(medium/high 档实测可调);chatgpt OAuth
395
+ // 的 Codex 后端目前只放出 gpt-6-astra,Sol/Luna 在该通道仍 400。
396
+ { id: "gpt-6-sol-medium", label: "GPT-6 Sol Medium", hasVision: true },
397
+ { id: "gpt-6-sol-high", label: "GPT-6 Sol High", hasVision: true },
398
+ { id: "gpt-6-luna-medium", label: "GPT-6 Luna Medium", hasVision: true },
399
+ { id: "gpt-6-luna-high", label: "GPT-6 Luna High", hasVision: true },
400
+ { id: "gpt-5-6-sol-medium", label: "GPT-5.6 Sol Medium", hasVision: true },
401
+ { id: "gpt-5-6-luna-medium", label: "GPT-5.6 Luna Medium", hasVision: true },
402
+ { id: "MODEL_GPT_5_2_MEDIUM", label: "GPT-5.2 Medium", hasVision: true },
403
+ { id: "gemini-3-8-flash-medium", label: "Gemini 3.8 Flash Medium", hasVision: true },
404
+ { id: "gemini-3-1-pro-high", label: "Gemini 3.1 Pro High", hasVision: true },
405
+ { id: "kimi-k3-high", label: "Kimi K3 High", hasVision: true },
406
+ { id: "glm-5-3-high", label: "GLM-5.3 High", hasVision: false },
407
+ { id: "glm-5-3-flash-high", label: "GLM-5.3 Flash High", hasVision: true }
408
+ ]
409
+ }
410
+ ];
411
+ var CUSTOM_API_KEY_TEMPLATES = [
412
+ {
413
+ kind: "api_key_template",
414
+ id: "token-plan",
415
+ label: "MiMo Token Plan",
416
+ description: "\u5C0F\u7C73 MiMo \u8BA2\u9605\uFF08API Key + Base URL\uFF09",
417
+ provider: "mimo",
418
+ baseUrl: "https://token-plan-cn.xiaomimimo.com/v1",
419
+ defaultModel: "mimo-v2.5-pro",
420
+ commercialKind: "subscription",
421
+ accessVariant: "token_plan_endpoint"
422
+ },
423
+ {
424
+ kind: "api_key_template",
425
+ id: "ollama-cloud",
426
+ label: "Ollama Cloud",
427
+ description: "Ollama Cloud \u8BA2\u9605\uFF08API Key + Base URL\uFF09",
428
+ provider: "ollama-cloud",
429
+ baseUrl: "https://ollama.com/v1",
430
+ keyFormatHint: "Key \u5F62\u5982 xxx.xxx\uFF08\u5728 ollama.com/settings/api-keys \u83B7\u53D6\u5B8C\u6574 Key\uFF0C\u542B\u70B9\u53F7\u540E\u534A\u6BB5\uFF09",
431
+ defaultModel: "deepseek-v4-flash:cloud",
432
+ modelOptions: [
433
+ { id: "glm-5.2:cloud", label: "GLM 5.2" },
434
+ { id: "deepseek-v4-flash:cloud", label: "DeepSeek V4 Flash", recommended: true },
435
+ { id: "deepseek-v4-pro:cloud", label: "DeepSeek V4 Pro" },
436
+ { id: "kimi-k3:cloud", label: "Kimi K3" }
437
+ ],
438
+ commercialKind: "subscription",
439
+ accessVariant: "token_plan_endpoint"
440
+ },
441
+ {
442
+ kind: "api_key_template",
443
+ id: "qwen-token-plan",
444
+ label: "\u5343\u95EE Token Plan",
445
+ description: "\u5343\u95EE Token Plan \u8BA2\u9605\uFF08Key \u987B\u4E3A Token Plan \u4E13\u5C5E\uFF0C\u975E\u6309\u91CF API Key\uFF09",
446
+ provider: "qwen",
447
+ baseUrl: "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
448
+ defaultModel: "qwen3.8-max",
449
+ modelOptions: QWEN_TOKEN_PLAN_MODEL_OPTIONS,
450
+ commercialKind: "subscription",
451
+ accessVariant: "token_plan_endpoint"
452
+ },
453
+ {
454
+ kind: "api_key_template",
455
+ id: "opencode-go",
456
+ label: "OpenCode Go",
457
+ description: "OpenCode Go \u8BA2\u9605\uFF08$5 \u9996\u6708 / $10 \u6708\uFF0C\u805A\u5408 Grok/Kimi/Qwen/GLM/MiMo/MiniMax/DeepSeek\uFF09",
458
+ provider: "opencode-go",
459
+ baseUrl: "https://opencode.ai/zen/go/v1",
460
+ defaultModel: "qwen3.8-max",
461
+ modelOptions: OPENCODE_GO_MODEL_OPTIONS,
462
+ commercialKind: "subscription",
463
+ accessVariant: "token_plan_endpoint"
464
+ },
465
+ {
466
+ kind: "api_key_template",
467
+ id: "step-plan",
468
+ label: "\u9636\u8DC3\u661F\u8FB0 Step Plan",
469
+ description: "\u9636\u8DC3\u661F\u8FB0 Step Plan \u8BA2\u9605\uFF08API Key + Base URL\uFF0C\u6708\u6C60 Credit \u989D\u5EA6\uFF09",
470
+ provider: "stepfun",
471
+ baseUrl: "https://api.stepfun.com/step_plan/v1",
472
+ defaultModel: "step-5-preview",
473
+ modelOptions: STEPFUN_STEP_PLAN_MODEL_OPTIONS,
474
+ keyFormatHint: "\u5728 platform.stepfun.com Step Plan \u63A7\u5236\u53F0\u521B\u5EFA\u4E13\u7528 API Key\uFF08\u5F62\u5982 sk-\u2026\uFF09\uFF1B\u4E0E\u5F00\u653E\u5E73\u53F0\u6309\u91CF Key \u72EC\u7ACB\u3002",
475
+ commercialKind: "subscription",
476
+ accessVariant: "token_plan_endpoint"
477
+ },
478
+ {
479
+ kind: "api_key_template",
480
+ id: "kimi-code-key",
481
+ label: "Kimi Code",
482
+ description: "Kimi \u4F1A\u5458\u8BA2\u9605\uFF08Kimi Code \u63A7\u5236\u53F0 API Key\uFF0C\u6700\u591A 5 \u4E2A\uFF09",
483
+ provider: "kimi-code",
484
+ baseUrl: "https://api.kimi.com/coding/v1",
485
+ defaultModel: "kimi-for-coding",
486
+ modelOptions: KIMI_CODE_MODEL_OPTIONS,
487
+ commercialKind: "subscription",
488
+ accessVariant: "token_plan_endpoint"
489
+ },
490
+ {
491
+ kind: "api_key_template",
492
+ id: "commandcode",
493
+ label: "CommandCode",
494
+ description: "CommandCode \u8BA2\u9605\uFF08Studio \u751F\u6210 API Key\uFF0CGOAT/Pro/Max/Team \u53EF\u7528\uFF0C\u805A\u5408 DeepSeek/Kimi/Qwen/GLM/Claude/GPT/Gemini\uFF09",
495
+ provider: "commandcode",
496
+ baseUrl: "https://api.commandcode.ai/provider/v1",
497
+ defaultModel: "deepseek/deepseek-v4-flash",
498
+ modelOptions: COMMAND_CODE_MODEL_OPTIONS,
499
+ commercialKind: "subscription",
500
+ accessVariant: "token_plan_endpoint"
501
+ },
502
+ {
503
+ kind: "api_key_template",
504
+ id: "zai-coding-plan",
505
+ label: "Z.AI GLM Coding Plan",
506
+ description: "\u667A\u8C31\u56FD\u9645\u7248\u8BA2\u9605\uFF08z.ai \u63A7\u5236\u53F0 API Key\uFF0CLite/Pro/Max \u6863\uFF09",
507
+ provider: "zai",
508
+ baseUrl: "https://api.z.ai/api/coding/paas/v4",
509
+ defaultModel: "glm-5.3-flash",
510
+ modelOptions: [
511
+ { id: "glm-5.3-flash", label: "GLM 5.3 Flash", hasVision: true, recommended: true },
512
+ { id: "glm-5.3", label: "GLM 5.3", hasVision: true },
513
+ { id: "glm-5-turbo", label: "GLM 5 Turbo" },
514
+ { id: "glm-4.7", label: "GLM 4.7" }
515
+ ],
516
+ commercialKind: "subscription",
517
+ accessVariant: "token_plan_endpoint"
518
+ },
519
+ {
520
+ kind: "api_key_template",
521
+ id: "bigmodel-coding-plan",
522
+ label: "\u667A\u8C31 BigModel Coding Plan",
523
+ description: "\u667A\u8C31\u56FD\u5185\u7248\u8BA2\u9605\uFF08bigmodel.cn \u63A7\u5236\u53F0 API Key\uFF0C\u4E0E\u56FD\u9645\u7248 Key \u4E0D\u901A\u7528\uFF09",
524
+ provider: "bigmodel",
525
+ baseUrl: "https://open.bigmodel.cn/api/coding/paas/v4",
526
+ defaultModel: "glm-5.3",
527
+ modelOptions: [
528
+ { id: "glm-5.3", label: "GLM 5.3", hasVision: true, recommended: true },
529
+ { id: "glm-5.3-flash", label: "GLM 5.3 Flash", hasVision: true },
530
+ { id: "glm-5-turbo", label: "GLM 5 Turbo" },
531
+ { id: "glm-4.7", label: "GLM 4.7" }
532
+ ],
533
+ commercialKind: "subscription",
534
+ accessVariant: "token_plan_endpoint"
535
+ },
536
+ {
537
+ kind: "api_key_template",
538
+ id: "openai-api",
539
+ label: "OpenAI API",
540
+ provider: "openai",
541
+ baseUrl: "https://api.openai.com/v1",
542
+ defaultModel: "gpt-6-astra",
543
+ commercialKind: "api",
544
+ accessVariant: "metered_key"
545
+ },
546
+ {
547
+ kind: "api_key_template",
548
+ id: "anthropic-api",
549
+ label: "Anthropic API",
550
+ provider: "anthropic",
551
+ baseUrl: "https://api.anthropic.com",
552
+ defaultModel: "claude-sonnet-5",
553
+ apiKeyHeader: "x-api-key",
554
+ commercialKind: "api",
555
+ accessVariant: "metered_key"
556
+ },
557
+ {
558
+ kind: "api_key_template",
559
+ id: "gemini-api",
560
+ label: "Gemini API",
561
+ provider: "google",
562
+ baseUrl: "https://generativelanguage.googleapis.com/v1beta",
563
+ defaultModel: "gemini-3.8-flash",
564
+ apiKeyHeader: "x-goog-api-key",
565
+ commercialKind: "api",
566
+ accessVariant: "metered_key"
567
+ },
568
+ {
569
+ kind: "api_key_template",
570
+ id: "xai-api",
571
+ label: "xAI API",
572
+ provider: "xai",
573
+ baseUrl: "https://api.x.ai/v1",
574
+ defaultModel: "grok-4.6",
575
+ commercialKind: "api",
576
+ accessVariant: "metered_key"
577
+ },
578
+ // DeepSeek 模型统一改走 nolo provider(Ollama Cloud,thinking=max 快 28-49%)。
579
+ // 现按用户选择回归:自带 Key 的 metered 通道与平台托管通道并存,互不影响。
580
+ {
581
+ kind: "api_key_template",
582
+ id: "deepseek-api",
583
+ label: "DeepSeek API \u7528\u91CF\u8BA1\u8D39",
584
+ description: "DeepSeek \u5B98\u65B9 API\uFF08OpenAI \u517C\u5BB9\uFF0C\u6309\u91CF\u8BA1\u8D39\uFF09",
585
+ provider: "deepseek",
586
+ baseUrl: "https://api.deepseek.com/v1",
587
+ defaultModel: "deepseek-v4-pro",
588
+ modelOptions: DEEPSEEK_MODEL_OPTIONS,
589
+ commercialKind: "api",
590
+ accessVariant: "metered_key"
591
+ },
592
+ {
593
+ kind: "api_key_template",
594
+ id: "qwen-api",
595
+ label: "\u5343\u95EE API \u7528\u91CF\u8BA1\u8D39",
596
+ description: "Qwen / DashScope\uFF08OpenAI \u517C\u5BB9\uFF0C\u6309\u91CF\u8BA1\u8D39\uFF09",
597
+ provider: "qwen",
598
+ baseUrl: "https://dashscope.aliyuncs.com/compatible-mode/v1",
599
+ defaultModel: "qwen3-max",
600
+ modelOptions: QWEN_MODEL_OPTIONS,
601
+ commercialKind: "api",
602
+ accessVariant: "metered_key"
603
+ },
604
+ // 小米 MiMo 官方按量计费 API(api.xiaomimimo.com):与上面的「MiMo Token Plan」
605
+ // 订阅模板是两条不同的通道(key 不通用);本条是用户自带 Key 的 metered 通道,
606
+ // 与平台托管(provider=nolo + mimo-v2.6-*,平台积分计费)并存、互不影响。
607
+ {
608
+ kind: "api_key_template",
609
+ id: "mimo-api",
610
+ label: "MiMo API \u7528\u91CF\u8BA1\u8D39",
611
+ description: "\u5C0F\u7C73 MiMo \u5B98\u65B9 API\uFF08OpenAI \u517C\u5BB9\uFF0C\u6309\u91CF\u8BA1\u8D39\uFF1BKey \u987B\u4E3A\u6309\u91CF\u8BA1\u8D39 Key\uFF0C\u975E Token Plan \u8BA2\u9605 Key\uFF09",
612
+ provider: "mimo",
613
+ baseUrl: "https://api.xiaomimimo.com/v1",
614
+ defaultModel: "mimo-v2.6-flash",
615
+ modelOptions: MIMO_MODEL_OPTIONS,
616
+ commercialKind: "api",
617
+ accessVariant: "metered_key"
618
+ },
619
+ {
620
+ kind: "api_key_template",
621
+ id: "kimi-api",
622
+ label: "Kimi API \u7528\u91CF\u8BA1\u8D39",
623
+ description: "Moonshot \u5F00\u653E\u5E73\u53F0\uFF08Key \u987B\u4E3A\u5F00\u653E\u5E73\u53F0\u751F\u6210\uFF0C\u975E Kimi Code \u63A7\u5236\u53F0 key\uFF09",
624
+ provider: "moonshot",
625
+ baseUrl: "https://api.moonshot.cn/v1",
626
+ defaultModel: "kimi-k3",
627
+ modelOptions: MOONSHOT_MODEL_OPTIONS,
628
+ commercialKind: "api",
629
+ accessVariant: "metered_key"
630
+ },
631
+ {
632
+ kind: "api_key_template",
633
+ id: "stepfun-api",
634
+ label: "\u9636\u8DC3\u661F\u8FB0 API \u7528\u91CF\u8BA1\u8D39",
635
+ description: "\u9636\u8DC3\u661F\u8FB0\u5F00\u653E\u5E73\u53F0\uFF08OpenAI \u517C\u5BB9\uFF0C\u6309\u91CF\u8BA1\u8D39\uFF09",
636
+ provider: "stepfun",
637
+ baseUrl: "https://api.stepfun.com/v1",
638
+ defaultModel: "step-5-preview",
639
+ modelOptions: STEPFUN_MODEL_OPTIONS,
640
+ commercialKind: "api",
641
+ accessVariant: "metered_key"
642
+ },
643
+ {
644
+ kind: "api_key_template",
645
+ id: "minimax-api",
646
+ label: "MiniMax API",
647
+ provider: "minimax",
648
+ baseUrl: "https://api.minimaxi.com/v1",
649
+ defaultModel: "MiniMax-Text-01",
650
+ commercialKind: "api",
651
+ accessVariant: "metered_key"
652
+ }
653
+ ];
654
+ var ALL_PROVIDER_REGISTRY = [
655
+ ...SUBSCRIPTION_OAUTH_PROVIDERS,
656
+ ...CUSTOM_API_KEY_TEMPLATES
657
+ ];
658
+ function findProviderById(id) {
659
+ return ALL_PROVIDER_REGISTRY.find((p) => p.id === id);
660
+ }
661
+ function isSubscriptionOAuthProvider(id) {
662
+ if (!id) return false;
663
+ return SUBSCRIPTION_OAUTH_PROVIDERS.some((p) => p.id === id);
664
+ }
665
+ function isCustomApiKeyTemplate(id) {
666
+ if (!id) return false;
667
+ return CUSTOM_API_KEY_TEMPLATES.some((p) => p.id === id);
668
+ }
669
+
670
+ export {
671
+ SUBSCRIPTION_OAUTH_PROVIDERS,
672
+ CUSTOM_API_KEY_TEMPLATES,
673
+ ALL_PROVIDER_REGISTRY,
674
+ findProviderById,
675
+ isSubscriptionOAuthProvider,
676
+ isCustomApiKeyTemplate
677
+ };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  generatePkcePair,
3
3
  startCallbackServer
4
- } from "./chunk-GBPZKFYK.js";
4
+ } from "./chunk-WON762L4.js";
5
5
  import {
6
6
  toErrorMessage
7
7
  } from "./chunk-HNMXYYJR.js";