nolo-cli 0.33.0-alpha.8 → 0.34.0-alpha.1

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 (158) hide show
  1. package/{_executeModel-RI6DRQTP.js → _executeModel-BUYCXZCQ.js} +65 -65
  2. package/{action-SMLG6OTB.js → action-KMBZ3LCZ.js} +12 -12
  3. package/{addContentAction-SFO244QN.js → addContentAction-KQ44UT2U.js} +10 -10
  4. package/{addDialogAgentAction-W44ZCEHB.js → addDialogAgentAction-ILSDCMYL.js} +9 -9
  5. package/{agentDeleteCommand-F2P4PF6R.js → agentDeleteCommand-WSS2IJVM.js} +40 -39
  6. package/{agentEmailCommands-BW6ZDQ3C.js → agentEmailCommands-SHTPJTSX.js} +75 -75
  7. package/{agentListCommands-IC3GH45S.js → agentListCommands-GV6UYVAF.js} +47 -37
  8. package/{agentMachineCommands-LGYGQX75.js → agentMachineCommands-FLD7TAFH.js} +37 -36
  9. package/agentProviderCommands-65ZC2WB4.js +122 -0
  10. package/{agentPullCommand-YH5GEBK4.js → agentPullCommand-TSWAJPS2.js} +1 -1
  11. package/agentRecordCommands-57W6R7QW.js +113 -0
  12. package/{agentRunCommand-F5L6GPSK.js → agentRunCommand-HJGXSMDN.js} +78 -76
  13. package/{agentRunControl-SCIVRZWX.js → agentRunControl-GXOB47YI.js} +5 -1
  14. package/{agentRuntimeLocal-B7SHOEHJ.js → agentRuntimeLocal-G7ZV55I6.js} +33 -33
  15. package/{agentSlice-GMKJKCPY.js → agentSlice-HFR7SP3B.js} +12 -12
  16. package/agentSuperviseCommands-Q64S5SPG.js +640 -0
  17. package/{appDeleteCommands-63VCZ5CT.js → appDeleteCommands-SHHE56Y2.js} +35 -34
  18. package/{appDeployCommands-YFTG2P3K.js → appDeployCommands-WUMSO2VS.js} +35 -34
  19. package/{appDeployStatusCommands-R5ENU5CQ.js → appDeployStatusCommands-VZSVN6SR.js} +35 -34
  20. package/{appGetCommands-3CH3VMUB.js → appGetCommands-ZJ2C3A5Y.js} +35 -34
  21. package/{appListCommands-Q2HVYG7J.js → appListCommands-W33L6U5X.js} +35 -34
  22. package/{authCommand-6Y5LTMZB.js → authCommand-B2XRHNJH.js} +19 -19
  23. package/{authCommands-EAPFGNHN.js → authCommands-GWABTFMR.js} +6 -6
  24. package/{chatQueueReduxAdapter-ZRFKEKD3.js → chatQueueReduxAdapter-SYIX4ODY.js} +28 -28
  25. package/{chunk-57QJXIB6.js → chunk-23KKIMD5.js} +7 -7
  26. package/{chunk-HUCT7HID.js → chunk-2KO5QQFV.js} +2 -2
  27. package/{chunk-2UECQ7RE.js → chunk-3AOLVADY.js} +1 -1
  28. package/{chunk-PVVAWIUN.js → chunk-3LWZNEGQ.js} +1 -1
  29. package/{chunk-2GKZGZBN.js → chunk-3XZUNRYF.js} +33 -158
  30. package/{chunk-M2YMQOLC.js → chunk-4APLX2RT.js} +75 -10
  31. package/{chunk-ZHYK3N56.js → chunk-4AWH4LQA.js} +3 -1
  32. package/{chunk-3GZXL6FM.js → chunk-4DMPISV6.js} +7 -3
  33. package/chunk-4HOXB6SY.js +297 -0
  34. package/{chunk-OIQPORYI.js → chunk-64KIQZA2.js} +175 -2
  35. package/{chunk-MUCM2MZB.js → chunk-6KYCG5GW.js} +1216 -690
  36. package/chunk-6XG52ZQ6.js +146 -0
  37. package/{chunk-XFV2VK7O.js → chunk-74IQ5RRO.js} +21 -8
  38. package/{chunk-FMEVI5TG.js → chunk-7CH6U3FL.js} +1 -1
  39. package/{chunk-6FNS3SQF.js → chunk-7YDKVLAE.js} +10 -10
  40. package/{chunk-LZC5YX6P.js → chunk-AUH2LTIY.js} +7 -7
  41. package/{chunk-CLP2K7U4.js → chunk-B6H5XCT2.js} +8 -8
  42. package/{chunk-NNWHHCVP.js → chunk-BMB563Y6.js} +10 -4
  43. package/{chunk-DFUPZE6V.js → chunk-C6ELZQ7H.js} +249 -34
  44. package/{chunk-XL7BR2GE.js → chunk-DX6BP4K7.js} +285 -251
  45. package/{chunk-6HYVJV7B.js → chunk-ESHYE7WU.js} +2 -1
  46. package/{chunk-JZPBVBIY.js → chunk-FD36SCCD.js} +19 -8
  47. package/{chunk-W7J5HZI7.js → chunk-FDKEDU7R.js} +14 -14
  48. package/{chunk-AOXVOC6D.js → chunk-FGLKRJDI.js} +54 -3
  49. package/{chunk-2QTEYCR7.js → chunk-FTM4KUOZ.js} +17 -17
  50. package/{chunk-U4TRT5V4.js → chunk-GEPHJJW4.js} +1 -1
  51. package/{chunk-7YYHKBJP.js → chunk-GKHV4UH5.js} +1 -1
  52. package/{chunk-2IVEXF7P.js → chunk-GUYMR3JL.js} +6 -33
  53. package/{chunk-YDTYDA5W.js → chunk-GZRMWK5R.js} +6 -4
  54. package/{chunk-KBZCACG7.js → chunk-HDT2RB7T.js} +3 -3
  55. package/{chunk-X664KVEV.js → chunk-HHBXCRJS.js} +204 -123
  56. package/{chunk-37V5LNEQ.js → chunk-IFS5CUEH.js} +1 -1
  57. package/{chunk-WLH5BAKX.js → chunk-IIOHYLIG.js} +9 -4
  58. package/{chunk-ADLYMQB6.js → chunk-IZCHPD7T.js} +52 -3
  59. package/{chunk-ITIA6OAQ.js → chunk-IZNJDUJ4.js} +5 -5
  60. package/{chunk-X2DAEZ3X.js → chunk-J5NMOM35.js} +1 -1
  61. package/{chunk-PREQU5QV.js → chunk-JI2TIPLP.js} +1 -1
  62. package/{chunk-EGRJC4ZN.js → chunk-JIADXJYU.js} +1 -1
  63. package/{chunk-IHEC7VBF.js → chunk-K4KIFRIN.js} +1 -1
  64. package/{chunk-JCGIUBE3.js → chunk-KCBK4MDT.js} +294 -54
  65. package/{chunk-WJSW43QZ.js → chunk-L3JWI7WX.js} +0 -1
  66. package/{chunk-VOBUVWP5.js → chunk-LAUUAYLK.js} +39 -2672
  67. package/{chunk-TFPUAELY.js → chunk-LD6Y6RJY.js} +4 -4
  68. package/{chunk-NKFMFT4W.js → chunk-LQ6PUHW6.js} +4195 -2631
  69. package/chunk-M3JQWYBC.js +387 -0
  70. package/{chunk-GM6PU7B6.js → chunk-MEYIRKDN.js} +0 -1
  71. package/{chunk-JZ5AMMXU.js → chunk-MGIHZ5CJ.js} +4 -4
  72. package/chunk-MI2J67UU.js +43 -0
  73. package/{chunk-JTSGWTYZ.js → chunk-MJWX4JQO.js} +2 -2
  74. package/{chunk-Q5ITEGIN.js → chunk-N4XRDM26.js} +1 -1
  75. package/{chunk-5CS33IBL.js → chunk-NQ4N4IGO.js} +11 -12
  76. package/{chunk-ZZ2MH7LE.js → chunk-O6OSWFZQ.js} +0 -1
  77. package/{chunk-ZURFOV5J.js → chunk-OFZPJ3NT.js} +13 -4
  78. package/{chunk-CHYAYZJH.js → chunk-OSCSEJJR.js} +15 -8
  79. package/{chunk-SCUETSRP.js → chunk-PV734VZX.js} +1 -1
  80. package/{chunk-7E72JMBB.js → chunk-SMPAUSX5.js} +46 -5
  81. package/{chunk-XCCGU6QB.js → chunk-U6QQLXWI.js} +1 -1
  82. package/{chunk-NUO3QFWD.js → chunk-UNHKVD2N.js} +1 -1
  83. package/{chunk-GE6IWA5N.js → chunk-UNZDCI3O.js} +126 -1
  84. package/{chunk-CPYYM4RJ.js → chunk-V5GA74HI.js} +19 -5
  85. package/{chunk-O6W5PZXA.js → chunk-VBD7W4Q6.js} +2057 -212
  86. package/{chunk-RTJWH72P.js → chunk-VD2SO4RG.js} +4 -4
  87. package/{chunk-FXFGNOT2.js → chunk-VFVCYIRQ.js} +1 -1
  88. package/{chunk-7KNERA53.js → chunk-VSA6QAGV.js} +47 -3
  89. package/{chunk-G7E4NWFE.js → chunk-W445DPVT.js} +1 -1
  90. package/{chunk-VH2F7ZB6.js → chunk-WN5AJG5I.js} +1 -1
  91. package/{chunk-KSRFVP36.js → chunk-WRN7L5CS.js} +1 -1
  92. package/{chunk-4C7K5NXX.js → chunk-WRP5TTM6.js} +4 -84
  93. package/chunk-X2K2JSO4.js +163 -0
  94. package/{chunk-OR2HNLVO.js → chunk-X6EN3KJX.js} +279 -477
  95. package/{chunk-IL545V3E.js → chunk-XQES6LXQ.js} +2 -2
  96. package/{chunk-UK5JGQVU.js → chunk-XT73C4VH.js} +26 -21
  97. package/{chunk-RY57GLGW.js → chunk-YPREESF4.js} +42 -5
  98. package/{chunk-YBPAQV37.js → chunk-YRP7LG4R.js} +4527 -4080
  99. package/{chunk-BQXOGBFN.js → chunk-YZ2WE6CW.js} +2 -2
  100. package/{chunk-3WXRAHCG.js → chunk-ZBB3MZR3.js} +3 -3
  101. package/{cliExecutor-DW3PHGEL.js → cliExecutor-BBUVQU4L.js} +2 -2
  102. package/{clipboardy-MMBYVRLF.js → clipboardy-PRUHGPGC.js} +4 -3
  103. package/{codingSkills-DY5MINPG.js → codingSkills-H6N5EKSX.js} +3 -3
  104. package/cooldownCommands-C2SZLEEO.js +90 -0
  105. package/{createAgentAutomationAction-6SE7CQ7F.js → createAgentAutomationAction-BH3D2L2H.js} +28 -30
  106. package/{createDialogAction-AROAXAPM.js → createDialogAction-U4LDV2RW.js} +31 -33
  107. package/{createPageAction-GCO3R6GR.js → createPageAction-Q2ANG535.js} +30 -32
  108. package/{dbSlice-3SD5L5H2.js → dbSlice-PIQGICNM.js} +9 -9
  109. package/{deleteFile-XQXPBFFB.js → deleteFile-NPZ64DFN.js} +4 -4
  110. package/{dialogCommands-N26NNRRD.js → dialogCommands-C556D6WD.js} +37 -36
  111. package/{dialogSlice-JVPBOMFB.js → dialogSlice-P2VSKG2X.js} +27 -27
  112. package/dist-VODFSGNG.js +7442 -0
  113. package/{docCreateCommands-PON6FF4V.js → docCreateCommands-AAVGLQWE.js} +36 -35
  114. package/{docDeleteCommands-WWRFONDS.js → docDeleteCommands-PKMKSQD2.js} +37 -36
  115. package/{docReadCommands-S4Z275LB.js → docReadCommands-2WUH7UXC.js} +36 -35
  116. package/{docStore-WGDO3I76.js → docStore-J5UWRBB4.js} +29 -31
  117. package/{docUpdateCommands-TJQB4IJ7.js → docUpdateCommands-B2N4E5HQ.js} +38 -37
  118. package/{fetchMessages-7QRCCRYK.js → fetchMessages-CUEFN4GQ.js} +4 -4
  119. package/{getPricing-L2ENXWHV.js → getPricing-P3E2WRIH.js} +5 -5
  120. package/{handleSendMessageAction-T7AS7DDY.js → handleSendMessageAction-RRZ53YYH.js} +29 -29
  121. package/index.js +92 -77
  122. package/{localDialogRead-SLMPV5SK.js → localDialogRead-P7CHFMIC.js} +1 -1
  123. package/{localRuntimeAuthority-E3R24J4T.js → localRuntimeAuthority-S77B5QVB.js} +6 -2
  124. package/{localRuntimeDb-DDZCJFQZ.js → localRuntimeDb-N3H3HQ7G.js} +1 -1
  125. package/{machineCommands-C6CPXZRR.js → machineCommands-CWKMJG33.js} +77 -77
  126. package/{machineInfo-M6KB6HZN.js → machineInfo-66ZFUMLE.js} +1 -1
  127. package/{machineWsRunDispatch-27K2P4OP.js → machineWsRunDispatch-UYNVNX4A.js} +69 -69
  128. package/{models-OX2S5C6Q.js → models-L7S2EKPM.js} +2 -2
  129. package/package.json +1 -1
  130. package/{read-6G73BMEY.js → read-6C2XD3YZ.js} +5 -5
  131. package/{readDocTool-DK4EI2GA.js → readDocTool-Y7AB365O.js} +1 -1
  132. package/{readlineWorkspace-LBWKTPJE.js → readlineWorkspace-VYELP22P.js} +2851 -1515
  133. package/{removeDialogAgentAction-E7H557UO.js → removeDialogAgentAction-KG5WMJRZ.js} +13 -13
  134. package/{runAgentClientLoop-D2T2P36H.js → runAgentClientLoop-35GKZDOZ.js} +62 -61
  135. package/{runtimeDoctorCommands-KIKM6BIO.js → runtimeDoctorCommands-HT4O2PXL.js} +6 -6
  136. package/{setDialogExtraReferencesAction-RMMGBR5F.js → setDialogExtraReferencesAction-O2NLXMSM.js} +10 -10
  137. package/{setPrimaryDialogAgentAction-FWBKKLVA.js → setPrimaryDialogAgentAction-FYYUY7PB.js} +13 -13
  138. package/{settingSlice-73PV4KG4.js → settingSlice-GPLI6E3M.js} +11 -11
  139. package/{skillDiscovery-KLLKXPUO.js → skillDiscovery-COX56OBO.js} +3 -3
  140. package/{slateUtils-VO2FU36K.js → slateUtils-RIZES3PV.js} +1 -1
  141. package/{spaceCommands-B6LO4U5R.js → spaceCommands-AAKQM2PM.js} +223 -37
  142. package/{spaceSlice-VUAEZVDS.js → spaceSlice-NSNGR4Y2.js} +28 -30
  143. package/{streamAgentChatTurn-BBPSFMTZ.js → streamAgentChatTurn-D5IDHXMV.js} +116 -129
  144. package/{switchDialogAgentAction-US6QNL3N.js → switchDialogAgentAction-GH5P6Q3Z.js} +9 -9
  145. package/{chunk-IDAU4UFS.js → syncMapping-N6RGXGBW.js} +11 -11
  146. package/{tableCommands-QE47K72R.js → tableCommands-PQUJ55AS.js} +3 -3
  147. package/{tools-NWA3J7KE.js → tools-JQOETZP5.js} +44 -45
  148. package/{tuiSummaryLlmCaller-KC7JCJBB.js → tuiSummaryLlmCaller-LH7F2SP7.js} +18 -18
  149. package/{updateCommands-AK2RDOFR.js → updateCommands-MNDUIKN7.js} +2 -2
  150. package/{updateDialogTitleAction-TDDQ4J4L.js → updateDialogTitleAction-WOTSDSFQ.js} +31 -33
  151. package/agentRecordCommands-FCQ7ZF6C.js +0 -113
  152. package/chunk-5SBK2MTI.js +0 -528
  153. package/chunk-M3JEW6N6.js +0 -193
  154. package/chunk-OOK2ZT5F.js +0 -1800
  155. package/syncMapping-RK2MANUX.js +0 -43
  156. package/{chunk-KMSZPTM6.js → chunk-2WKUUY2E.js} +3 -3
  157. package/{chunk-CWMSB67P.js → chunk-AGGIDPCZ.js} +0 -0
  158. package/{chunk-SAQQLJZ5.js → chunk-JDSUTNYY.js} +3 -3
@@ -2,395 +2,32 @@ import {
2
2
  asTrimmedLowercaseString
3
3
  } from "./chunk-QSJ3HFEF.js";
4
4
 
5
- // packages/ai/agent/liveAudioModel.ts
6
- var DEFAULT_GOOGLE_LIVE_AUDIO_MODEL = "gemini-3.1-flash-live-preview";
7
-
8
- // packages/integrations/google/models.ts
9
- var GOOGLE_IMAGE_ASPECT_RATIOS = [
10
- "1:1",
11
- "2:3",
12
- "3:2",
13
- "3:4",
14
- "4:3",
15
- "4:5",
16
- "5:4",
17
- "9:16",
18
- "16:9",
19
- "21:9"
20
- ];
21
- var GOOGLE_IMAGE_SIZES = ["1K", "2K", "4K"];
22
- var createGoogleImageModel = ({
23
- name,
24
- displayName,
25
- inputPrice,
26
- outputPrice,
27
- imageTokenPricePerMillion,
28
- imageOutputTokenEstimateBySize,
29
- pricePerImage,
30
- maxOutputTokens,
31
- contextWindow,
32
- imageGenerationWaitTimeSeconds,
33
- imageGenerationProfiles
34
- }) => ({
35
- name,
36
- displayName,
37
- provider: "google",
38
- hasVision: true,
39
- hasImageOutput: true,
40
- supportsImageOutput: true,
41
- supportsImageConfig: true,
42
- requiresImageModalities: true,
43
- defaultModalities: ["image", "text"],
44
- supportedAspectRatios: GOOGLE_IMAGE_ASPECT_RATIOS,
45
- supportedImageSizes: GOOGLE_IMAGE_SIZES,
46
- price: {
47
- input: inputPrice,
48
- output: outputPrice
49
- },
50
- imageTokenPricePerMillion,
51
- imageOutputTokenEstimateBySize,
52
- pricePerImage,
53
- maxOutputTokens,
54
- contextWindow,
55
- imageGenerationWaitTimeSeconds,
56
- imageGenerationProfiles,
57
- supportsTool: false
58
- });
59
- var googleModels = [
60
- {
61
- name: DEFAULT_GOOGLE_LIVE_AUDIO_MODEL,
62
- displayName: "Gemini 3.1 Flash Live",
63
- provider: "google",
64
- description: "Gemini Live API model for low-latency real-time voice conversations.",
65
- hasVision: true,
66
- hasAudio: true,
67
- contextWindow: 1048576,
68
- maxOutputTokens: 65500,
69
- supportsTool: true,
70
- price: {
71
- input: 0.5 * 7,
72
- output: 3 * 7,
73
- cachingWrite: 0.05 * 7,
74
- cachingRead: 0.05 * 7
75
- }
76
- },
77
- {
78
- name: "gemini-3.6-flash",
79
- displayName: "Gemini 3.6 Flash",
80
- provider: "google",
81
- description: "Gemini 3.6 Flash model for fast frontier agentic, coding, and multimodal tasks.",
82
- hasVision: true,
83
- hasAudio: true,
84
- contextWindow: 1048576,
85
- maxOutputTokens: 65536,
86
- supportsTool: true,
87
- supportsReasoningEffort: true,
88
- // TODO(pricing): gemini-3.6-flash 官方定价未确认,暂沿用 3.5-flash 费率,确认后更新。
89
- price: {
90
- input: 1.5 * 7,
91
- output: 9 * 7,
92
- cachingWrite: 0.15 * 7,
93
- cachingRead: 0.15 * 7
94
- },
95
- serviceTierPriceMultipliers: {
96
- batch: { inputOutput: 0.5, cache: 0.5 },
97
- flex: { inputOutput: 0.5, cache: 0.08 / 0.15 },
98
- priority: { inputOutput: 1.8, cache: 1.8 }
99
- }
100
- },
101
- {
102
- name: "gemini-3.7-flash",
103
- displayName: "Gemini 3.7 Flash",
104
- provider: "google",
105
- description: "Gemini 3.7 Flash model for fast frontier agentic, coding, and multimodal tasks.",
106
- hasVision: true,
107
- hasAudio: true,
108
- contextWindow: 1048576,
109
- maxOutputTokens: 65536,
110
- supportsTool: true,
111
- supportsReasoningEffort: true,
112
- // Official promo pricing: $0.75/$3.75/$0.075 per 1M through 2026-12-31.
113
- // Antigravity's subscription wire route is tiered; Gemini API uses this logical id.
114
- price: {
115
- input: 0.75 * 7,
116
- output: 3.75 * 7,
117
- cachingWrite: 0.075 * 7,
118
- cachingRead: 0.075 * 7
119
- }
120
- },
121
- createGoogleImageModel({
122
- name: "gemini-3-pro-image-preview",
123
- displayName: "Nano Banana Pro (Gemini 3 Pro Image Preview)",
124
- inputPrice: 2 * 7,
125
- outputPrice: 12 * 7,
126
- imageTokenPricePerMillion: 120 * 7,
127
- imageOutputTokenEstimateBySize: {
128
- "1K": 1120,
129
- "2K": 1120,
130
- "4K": 2e3
131
- },
132
- maxOutputTokens: 8192,
133
- contextWindow: 65536,
134
- imageGenerationWaitTimeSeconds: {
135
- min: 25,
136
- max: 60
137
- },
138
- imageGenerationProfiles: [
139
- {
140
- key: "speed",
141
- label: "\u901F\u5EA6\u4F18\u5148",
142
- imageModel: "gemini-3.1-flash-image-preview",
143
- waitTimeSeconds: {
144
- min: 10,
145
- max: 25
146
- }
147
- },
148
- {
149
- key: "quality",
150
- label: "\u8D28\u91CF\u4F18\u5148",
151
- imageModel: "gemini-3-pro-image-preview",
152
- waitTimeSeconds: {
153
- min: 25,
154
- max: 60
155
- }
156
- }
157
- ]
158
- }),
159
- createGoogleImageModel({
160
- name: "gemini-3.1-flash-image-preview",
161
- displayName: "Nano Banana 2 (Gemini 3.1 Flash Image Preview)",
162
- inputPrice: 0.5 * 7,
163
- outputPrice: 3 * 7,
164
- imageTokenPricePerMillion: 60 * 7,
165
- imageOutputTokenEstimateBySize: {
166
- "1K": 1120,
167
- "2K": 1680,
168
- "4K": 2520
169
- },
170
- maxOutputTokens: 65536,
171
- contextWindow: 65536,
172
- imageGenerationWaitTimeSeconds: {
173
- min: 10,
174
- max: 25
175
- },
176
- imageGenerationProfiles: [
177
- {
178
- key: "speed",
179
- label: "\u901F\u5EA6\u4F18\u5148",
180
- imageModel: "gemini-3.1-flash-image-preview",
181
- waitTimeSeconds: {
182
- min: 10,
183
- max: 25
184
- }
185
- },
186
- {
187
- key: "quality",
188
- label: "\u8D28\u91CF\u4F18\u5148",
189
- imageModel: "gemini-3-pro-image-preview",
190
- waitTimeSeconds: {
191
- min: 25,
192
- max: 60
193
- }
194
- }
195
- ]
196
- }),
197
- createGoogleImageModel({
198
- name: "gemini-3.1-flash-lite-image",
199
- displayName: "Nano Banana 2 Lite (Gemini 3.1 Flash Lite Image)",
200
- inputPrice: 0.25 * 7,
201
- outputPrice: 1.5 * 7,
202
- pricePerImage: 0.034 * 7,
203
- maxOutputTokens: 65536,
204
- contextWindow: 65536,
205
- imageGenerationWaitTimeSeconds: {
206
- min: 4,
207
- max: 10
208
- },
209
- imageGenerationProfiles: [
210
- {
211
- key: "speed",
212
- label: "\u901F\u5EA6\u4F18\u5148",
213
- imageModel: "gemini-3.1-flash-lite-image",
214
- waitTimeSeconds: {
215
- min: 4,
216
- max: 10
217
- }
218
- },
219
- {
220
- key: "quality",
221
- label: "\u8D28\u91CF\u4F18\u5148",
222
- imageModel: "gemini-3-pro-image-preview",
223
- waitTimeSeconds: {
224
- min: 25,
225
- max: 60
226
- }
227
- }
228
- ]
229
- })
230
- ];
231
-
232
- // packages/integrations/openai/models.ts
233
- var GPT_5_5_STANDARD_PRICE = {
234
- input: 5 * 8,
235
- output: 30 * 8,
236
- inputCacheHit: 0.5 * 8
237
- };
238
- var GPT_5_5_LONG_CONTEXT_PRICE = {
239
- input: 10 * 8,
240
- output: 45 * 8,
241
- inputCacheHit: 1 * 8
242
- };
243
- var GPT_5_5_PRO_STANDARD_PRICE = {
244
- input: 30 * 8,
245
- output: 180 * 8,
246
- inputCacheHit: 0
247
- };
248
- var GPT_5_5_PRO_LONG_CONTEXT_PRICE = {
249
- input: 60 * 8,
250
- output: 270 * 8,
251
- inputCacheHit: 0
252
- };
253
- var GPT_5_6_SOL_STANDARD_PRICE = {
254
- input: 5 * 8,
255
- output: 30 * 8,
256
- inputCacheHit: 0.5 * 8
257
- };
258
- var GPT_5_6_SOL_LONG_CONTEXT_PRICE = {
259
- input: 10 * 8,
260
- output: 45 * 8,
261
- inputCacheHit: 1 * 8
262
- };
263
- var GPT_5_6_TERRA_STANDARD_PRICE = {
264
- input: 2 * 8,
265
- output: 12 * 8,
266
- inputCacheHit: 0.2 * 8
267
- };
268
- var GPT_5_6_TERRA_LONG_CONTEXT_PRICE = {
269
- input: 4 * 8,
270
- output: 18 * 8,
271
- inputCacheHit: 0.4 * 8
272
- };
273
- var GPT_5_6_LUNA_PRICE = {
274
- input: 0.2 * 8,
275
- output: 1.2 * 8,
276
- inputCacheHit: 0.02 * 8
277
- };
278
- var openAIModels = [
279
- {
280
- name: "gpt-5.5",
281
- displayName: "GPT-5.5 Standard",
282
- endpointKey: "responses",
283
- hasVision: true,
284
- contextWindow: 1047576,
285
- maxOutputTokens: 128e3,
286
- supportsReasoningEffort: true,
287
- price: GPT_5_5_STANDARD_PRICE,
288
- pricingStrategy: {
289
- type: "tiered_context",
290
- tiers: [
291
- {
292
- minContext: 272001,
293
- price: GPT_5_5_LONG_CONTEXT_PRICE
294
- }
295
- ]
296
- }
297
- },
298
- {
299
- name: "gpt-5.6-sol",
300
- displayName: "GPT-5.6 Sol (Flagship)",
301
- endpointKey: "responses",
302
- hasVision: true,
303
- contextWindow: 105e4,
304
- maxOutputTokens: 128e3,
305
- supportsReasoningEffort: true,
306
- price: GPT_5_6_SOL_STANDARD_PRICE,
307
- pricingStrategy: {
308
- type: "tiered_context",
309
- tiers: [
310
- {
311
- minContext: 272001,
312
- price: GPT_5_6_SOL_LONG_CONTEXT_PRICE
313
- }
314
- ]
315
- }
316
- },
317
- {
318
- name: "gpt-5.6-terra",
319
- displayName: "GPT-5.6 Terra (Balanced)",
320
- endpointKey: "responses",
321
- hasVision: true,
322
- contextWindow: 105e4,
323
- maxOutputTokens: 128e3,
324
- supportsReasoningEffort: true,
325
- price: GPT_5_6_TERRA_STANDARD_PRICE,
326
- pricingStrategy: {
327
- type: "tiered_context",
328
- tiers: [
329
- {
330
- minContext: 272001,
331
- price: GPT_5_6_TERRA_LONG_CONTEXT_PRICE
332
- }
333
- ]
334
- }
335
- },
336
- {
337
- name: "gpt-5.6-luna",
338
- displayName: "GPT-5.6 Luna (Fast)",
339
- endpointKey: "responses",
340
- hasVision: true,
341
- contextWindow: 105e4,
342
- maxOutputTokens: 128e3,
343
- supportsReasoningEffort: true,
344
- price: GPT_5_6_LUNA_PRICE
345
- },
346
- {
347
- name: "gpt-5.5-pro",
348
- displayName: "GPT-5.5 Pro",
349
- endpointKey: "responses",
350
- hasVision: true,
351
- contextWindow: 1047576,
352
- maxOutputTokens: 128e3,
353
- supportsReasoningEffort: true,
354
- price: GPT_5_5_PRO_STANDARD_PRICE,
355
- pricingStrategy: {
356
- type: "tiered_context",
357
- tiers: [
358
- {
359
- minContext: 272001,
360
- price: GPT_5_5_PRO_LONG_CONTEXT_PRICE
361
- }
362
- ]
363
- }
364
- },
365
- {
366
- name: "gpt-image-2",
367
- displayName: "GPT Image 2",
368
- endpointKey: "responses",
369
- hasVision: true,
370
- hasImageOutput: true,
371
- supportsImageOutput: true,
372
- supportsTool: false,
373
- contextWindow: 128e3,
374
- maxOutputTokens: 32768,
375
- price: { input: 5 * 8, output: 0, inputCacheHit: 1.25 * 8 },
376
- pricePerImage: void 0,
377
- // Dynamic cost via imageTokenPricePerMillion and quality/size
378
- imageTokenPricePerMillion: 30 * 8,
379
- // $30.00 per 1M output tokens
380
- // Official GPT Image 2 output estimates from the OpenAI image guide:
381
- // low/medium/high cost by size divided by $30 per 1M output tokens.
382
- imageOutputTokenEstimateBySize: {
383
- "1K": { low: 200, medium: 1766, high: 7033 },
384
- "2K": { low: 166, medium: 1366, high: 5500 },
385
- "4K": { low: 166, medium: 1366, high: 5500 }
386
- }
387
- }
388
- ];
389
-
390
5
  // packages/ai/llm/openrouterModels.ts
391
6
  var OPENROUTER_MODELS = [];
392
7
  var openrouterModels = OPENROUTER_MODELS;
393
8
 
9
+ // packages/ai/llm/kimi.ts
10
+ var PLATFORM_HOSTED_KIMI_K3_MODEL = "kimi-k3";
11
+ var PLATFORM_HOSTED_KIMI_K26_MODEL = "kimi-k2.6";
12
+ var PLATFORM_HOSTED_KIMI_PROVIDER = "nolo";
13
+ var LEGACY_OLLAMA_CLOUD_PROVIDER = "ollama-cloud";
14
+ var isNoloHostedProvider = (provider) => {
15
+ const normalized = asTrimmedLowercaseString(provider);
16
+ return normalized === PLATFORM_HOSTED_KIMI_PROVIDER || normalized === LEGACY_OLLAMA_CLOUD_PROVIDER;
17
+ };
18
+ var FIREWORKS_KIMI_LATEST_MODEL = "accounts/fireworks/models/kimi-latest";
19
+ var FIREWORKS_KIMI_CURRENT_MODEL = "accounts/fireworks/models/kimi-k2p7-code";
20
+ var FIREWORKS_KIMI_K2P6_MODEL = "accounts/fireworks/models/kimi-k2p6";
21
+ var DEEPINFRA_KIMI_FALLBACK_MODEL = "moonshotai/Kimi-K2.6";
22
+ var isFireworksKimiModel = (model) => model === FIREWORKS_KIMI_LATEST_MODEL || model === FIREWORKS_KIMI_CURRENT_MODEL || model === FIREWORKS_KIMI_K2P6_MODEL;
23
+ var isDeepInfraKimiModel = (model) => model === DEEPINFRA_KIMI_FALLBACK_MODEL;
24
+ var resolveFireworksKimiModel = (model) => {
25
+ if (model === FIREWORKS_KIMI_LATEST_MODEL) {
26
+ return FIREWORKS_KIMI_CURRENT_MODEL;
27
+ }
28
+ return model ?? "";
29
+ };
30
+
394
31
  // packages/ai/llm/deepinfra.ts
395
32
  var DEEPINFRA_CLAUDE_HAIKU_PRICE = {
396
33
  input: 1 * 9,
@@ -401,12 +38,12 @@ var DEEPINFRA_CLAUDE_SONNET_PRICE = {
401
38
  output: 15 * 9
402
39
  };
403
40
  var DEEPINFRA_CLAUDE_OPUS_PRICE = {
404
- input: 5 * 8,
405
- output: 25 * 8
41
+ input: 5 * 9,
42
+ output: 25 * 9
406
43
  };
407
44
  var DEEPINFRA_CLAUDE_FABLE_PRICE = {
408
- input: 10 * 8,
409
- output: 50 * 8
45
+ input: 10 * 9,
46
+ output: 50 * 9
410
47
  };
411
48
  var deepinfraModels = [
412
49
  {
@@ -447,58 +84,6 @@ var deepinfraModels = [
447
84
  }
448
85
  ];
449
86
 
450
- // packages/integrations/xai/models.ts
451
- var xaiModels = [
452
- {
453
- name: "grok-4.6",
454
- displayName: "Grok 4.6",
455
- hasVision: true,
456
- contextWindow: 5e5,
457
- // 价格沿用 grok-4.5 报价($2/$6 ×7),换代后待 live 验证再校准。
458
- price: { input: 2 * 7, output: 6 * 7 },
459
- fnCall: true,
460
- jsonOutput: true
461
- }
462
- ];
463
-
464
- // packages/ai/llm/fireworks.ts
465
- var fireworksModels = [
466
- {
467
- name: "accounts/fireworks/models/minimax-m3",
468
- displayName: "MiniMax: MiniMax M3",
469
- hasVision: true,
470
- price: {
471
- input: 0.3 * 8,
472
- output: 1.2 * 8,
473
- cachingRead: 0.06 * 8
474
- },
475
- contextWindow: 512e3,
476
- supportsTool: true
477
- }
478
- ];
479
-
480
- // packages/ai/llm/kimi.ts
481
- var PLATFORM_HOSTED_KIMI_K3_MODEL = "kimi-k3";
482
- var PLATFORM_HOSTED_KIMI_K26_MODEL = "kimi-k2.6";
483
- var PLATFORM_HOSTED_KIMI_PROVIDER = "nolo";
484
- var LEGACY_OLLAMA_CLOUD_PROVIDER = "ollama-cloud";
485
- var isNoloHostedProvider = (provider) => {
486
- const normalized = asTrimmedLowercaseString(provider);
487
- return normalized === PLATFORM_HOSTED_KIMI_PROVIDER || normalized === LEGACY_OLLAMA_CLOUD_PROVIDER;
488
- };
489
- var FIREWORKS_KIMI_LATEST_MODEL = "accounts/fireworks/models/kimi-latest";
490
- var FIREWORKS_KIMI_CURRENT_MODEL = "accounts/fireworks/models/kimi-k2p7-code";
491
- var FIREWORKS_KIMI_K2P6_MODEL = "accounts/fireworks/models/kimi-k2p6";
492
- var DEEPINFRA_KIMI_FALLBACK_MODEL = "moonshotai/Kimi-K2.6";
493
- var isFireworksKimiModel = (model) => model === FIREWORKS_KIMI_LATEST_MODEL || model === FIREWORKS_KIMI_CURRENT_MODEL || model === FIREWORKS_KIMI_K2P6_MODEL;
494
- var isDeepInfraKimiModel = (model) => model === DEEPINFRA_KIMI_FALLBACK_MODEL;
495
- var resolveFireworksKimiModel = (model) => {
496
- if (model === FIREWORKS_KIMI_LATEST_MODEL) {
497
- return FIREWORKS_KIMI_CURRENT_MODEL;
498
- }
499
- return model ?? "";
500
- };
501
-
502
87
  // packages/ai/llm/platformHosted.ts
503
88
  var PLATFORM_HOSTED_CLAUDE_SONNET_5_MODEL = "anthropic/claude-sonnet-5";
504
89
  var PLATFORM_HOSTED_CLAUDE_OPUS_5_MODEL = "anthropic/claude-opus-5";
@@ -513,6 +98,8 @@ var isPlatformHostedClaudeModel = (model) => PLATFORM_HOSTED_CLAUDE_MODELS.some(
513
98
  );
514
99
  var PLATFORM_CREDITS_PER_USD = 8;
515
100
  var toPlatformCredits = (usdPerMillion) => Number((usdPerMillion * PLATFORM_CREDITS_PER_USD).toFixed(6));
101
+ var CNY_UPSTREAM_MULTIPLIER = 1.2;
102
+ var toCnyCredits = (cnyPerMillion) => Number((cnyPerMillion * CNY_UPSTREAM_MULTIPLIER).toFixed(6));
516
103
  var PLATFORM_HOSTED_GROK_4_6_MODEL = "grok-4.6";
517
104
  var isPlatformHostedGrokModel = (model) => asTrimmedLowercaseString(model) === PLATFORM_HOSTED_GROK_4_6_MODEL;
518
105
  var PLATFORM_HOSTED_GROK_PRICE = {
@@ -531,15 +118,12 @@ var PLATFORM_HOSTED_KIMI_PRICE = {
531
118
  inputCacheHit: toPlatformCredits(0.04),
532
119
  // 0.32 credits
533
120
  output: toPlatformCredits(3)
534
- // 24.0 credits (3 * 8 = 24)
121
+ // 24.0 credits (24 = 24)
535
122
  };
536
123
  var PLATFORM_HOSTED_KIMI_K3_PRICE = {
537
124
  input: 16,
538
- // crof $2 × 8
539
125
  inputCacheHit: 2,
540
- // crof $0.25 × 8
541
126
  output: 64
542
- // crof $8 × 8
543
127
  };
544
128
  var PLATFORM_HOSTED_GLM_53_MODEL = "glm-5.3";
545
129
  var PLATFORM_HOSTED_GLM_52_MODEL = "glm-5.2";
@@ -548,53 +132,132 @@ var isPlatformHostedGlmModel = (model) => {
548
132
  return m === PLATFORM_HOSTED_GLM_53_MODEL || m === PLATFORM_HOSTED_GLM_52_MODEL;
549
133
  };
550
134
  var PLATFORM_HOSTED_GLM_PRICE = {
551
- input: toPlatformCredits(1.4),
135
+ input: 7.84,
552
136
  // 11.2 credits
553
- inputCacheHit: toPlatformCredits(0.26),
137
+ inputCacheHit: 1.456,
554
138
  // 2.08 credits
555
- output: toPlatformCredits(4.4)
556
- // 35.2 credits (4.4 * 8 = 35.2)
139
+ output: 24.64
140
+ // 35.2 credits (35.2 = 35.2)
141
+ };
142
+ var PLATFORM_HOSTED_GLM_53_FLASH_MODEL = "glm-5-3-flash";
143
+ var PLATFORM_HOSTED_GLM_53_FLASH_PRICE = {
144
+ input: toPlatformCredits(0.1),
145
+ // 0.8 credits
146
+ inputCacheHit: toPlatformCredits(0.01),
147
+ // 0.08 credits
148
+ output: toPlatformCredits(0.4)
149
+ // 3.2 credits
150
+ };
151
+ var isPlatformHostedGlm53FlashModel = (model) => {
152
+ const m = asTrimmedLowercaseString(model);
153
+ return m === PLATFORM_HOSTED_GLM_53_FLASH_MODEL || m === "glm-5.3-flash";
557
154
  };
558
155
  var PLATFORM_HOSTED_GEMINI_37_FLASH_MODEL = "gemini-3.7-flash";
559
156
  var PLATFORM_HOSTED_GEMINI_37_FLASH_PRICE = {
560
- input: toPlatformCredits(0.75),
157
+ input: 4.2,
561
158
  // 6.0 credits
562
- output: toPlatformCredits(3.75),
159
+ output: 21,
563
160
  // 30.0 credits
564
- cachingWrite: toPlatformCredits(0.075),
161
+ cachingWrite: 0.42,
565
162
  // 0.6 credits
566
- cachingRead: toPlatformCredits(0.075)
163
+ cachingRead: 0.42
567
164
  // 0.6 credits
568
165
  };
569
166
  var isPlatformHostedGeminiModel = (model) => asTrimmedLowercaseString(model) === PLATFORM_HOSTED_GEMINI_37_FLASH_MODEL;
570
- var PLATFORM_HOSTED_QWEN_37_FLASH_MODEL = "qwen3.7-flash";
571
- var isPlatformHostedQwen37FlashModel = (model) => asTrimmedLowercaseString(model) === PLATFORM_HOSTED_QWEN_37_FLASH_MODEL;
167
+ var PLATFORM_HOSTED_OPENAI_IMAGE_MODEL = "gpt-image-2";
168
+ var isPlatformHostedOpenAIImageModel = (model) => asTrimmedLowercaseString(model) === PLATFORM_HOSTED_OPENAI_IMAGE_MODEL;
169
+ var PLATFORM_HOSTED_GEMINI_FLASH_LITE_IMAGE_MODEL = "gemini-3.1-flash-lite-image";
170
+ var PLATFORM_HOSTED_GEMINI_FLASH_IMAGE_MODEL = "gemini-3.1-flash-image-preview";
171
+ var PLATFORM_HOSTED_GEMINI_PRO_IMAGE_MODEL = "gemini-3-pro-image-preview";
172
+ var PLATFORM_HOSTED_GEMINI_IMAGE_MODELS = [
173
+ PLATFORM_HOSTED_GEMINI_FLASH_LITE_IMAGE_MODEL,
174
+ PLATFORM_HOSTED_GEMINI_FLASH_IMAGE_MODEL,
175
+ PLATFORM_HOSTED_GEMINI_PRO_IMAGE_MODEL
176
+ ];
177
+ var isPlatformHostedGeminiImageModel = (model) => PLATFORM_HOSTED_GEMINI_IMAGE_MODELS.some(
178
+ (m) => asTrimmedLowercaseString(model) === m
179
+ );
180
+ var isPlatformHostedImageModel = (model) => isPlatformHostedOpenAIImageModel(model) || isPlatformHostedGeminiImageModel(model);
181
+ var PLATFORM_HOSTED_IMAGE_ASPECT_RATIOS = ["1:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "21:9"];
182
+ var PLATFORM_HOSTED_IMAGE_SIZES = ["1K", "2K", "4K"];
183
+ var createPlatformHostedGeminiImageModel = ({
184
+ name,
185
+ displayName,
186
+ inputPrice,
187
+ outputPrice,
188
+ imageTokenPricePerMillion,
189
+ imageOutputTokenEstimateBySize,
190
+ pricePerImage,
191
+ maxOutputTokens,
192
+ contextWindow,
193
+ imageGenerationWaitTimeSeconds,
194
+ imageGenerationProfiles
195
+ }) => ({
196
+ name,
197
+ displayName,
198
+ hasVision: true,
199
+ hasImageOutput: true,
200
+ supportsImageOutput: true,
201
+ supportsImageConfig: true,
202
+ requiresImageModalities: true,
203
+ defaultModalities: ["image", "text"],
204
+ supportedAspectRatios: PLATFORM_HOSTED_IMAGE_ASPECT_RATIOS,
205
+ supportedImageSizes: PLATFORM_HOSTED_IMAGE_SIZES,
206
+ price: {
207
+ input: inputPrice,
208
+ output: outputPrice
209
+ },
210
+ imageTokenPricePerMillion,
211
+ imageOutputTokenEstimateBySize,
212
+ pricePerImage,
213
+ maxOutputTokens,
214
+ contextWindow,
215
+ imageGenerationWaitTimeSeconds,
216
+ imageGenerationProfiles,
217
+ supportsTool: false
218
+ });
572
219
  var PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL = "deepseek-v4-flash";
573
220
  var PLATFORM_HOSTED_DEEPSEEK_FLASH_VISION_EXP_MODEL = "deepseek-v4-flash-vision-exp";
574
221
  var PLATFORM_HOSTED_DEEPSEEK_PRO_MODEL = "deepseek-v4-pro";
575
222
  var PLATFORM_HOSTED_DEEPSEEK_FLASH_PEAK_PRICE = {
576
- input: 3,
577
- inputCacheHit: 0.1,
578
- output: 9
223
+ input: toCnyCredits(3),
224
+ // ¥3
225
+ inputCacheHit: toCnyCredits(0.1),
226
+ // ¥0.1
227
+ output: toCnyCredits(9)
228
+ // ¥9
579
229
  };
580
230
  var PLATFORM_HOSTED_DEEPSEEK_PRO_PEAK_PRICE = {
581
- input: 9,
582
- inputCacheHit: 0.3,
583
- output: 27
231
+ input: toCnyCredits(9),
232
+ // ¥9
233
+ inputCacheHit: toCnyCredits(0.3),
234
+ // ¥0.3
235
+ output: toCnyCredits(27)
236
+ // ¥27
584
237
  };
585
238
  var PLATFORM_HOSTED_DEEPSEEK_FLASH_OFF_PEAK_PRICE = {
586
- input: 1.5,
587
- inputCacheHit: 0.05,
588
- output: 4.5
239
+ input: toCnyCredits(1.5),
240
+ // ¥1.5
241
+ inputCacheHit: toCnyCredits(0.05),
242
+ // ¥0.05
243
+ output: toCnyCredits(4.5)
244
+ // ¥4.5
589
245
  };
590
246
  var PLATFORM_HOSTED_DEEPSEEK_PRO_OFF_PEAK_PRICE = {
591
- input: 4.5,
592
- inputCacheHit: 0.15,
593
- output: 13.5
247
+ input: toCnyCredits(4.5),
248
+ // ¥4.5
249
+ inputCacheHit: toCnyCredits(0.15),
250
+ // ¥0.15
251
+ output: toCnyCredits(13.5)
252
+ // ¥13.5
594
253
  };
595
254
  var isDeepSeekOffPeakBeijingTime = (nowMs = Date.now()) => {
596
- const beijingHour = (new Date(nowMs).getUTCHours() + 8 + 24) % 24;
597
- return beijingHour >= 0 && beijingHour < 8;
255
+ const beijing = new Date(nowMs + 8 * 60 * 60 * 1e3);
256
+ const beijingDay = beijing.getUTCDay();
257
+ const beijingHour = beijing.getUTCHours();
258
+ if (beijingDay === 0 || beijingDay === 6) return true;
259
+ const isPeakWindow = beijingHour >= 9 && beijingHour < 12 || beijingHour >= 14 && beijingHour < 18;
260
+ return !isPeakWindow;
598
261
  };
599
262
  var getPlatformHostedDeepSeekV4Price = (model, nowMs = Date.now()) => {
600
263
  const isOffPeak = isDeepSeekOffPeakBeijingTime(nowMs);
@@ -628,7 +291,7 @@ var platformHostedModels = [
628
291
  {
629
292
  name: PLATFORM_HOSTED_GLM_53_MODEL,
630
293
  displayName: "GLM 5.3",
631
- hasVision: false,
294
+ hasVision: true,
632
295
  price: { ...PLATFORM_HOSTED_GLM_PRICE },
633
296
  maxOutputTokens: 131072,
634
297
  contextWindow: 105e4,
@@ -681,6 +344,16 @@ var platformHostedModels = [
681
344
  supportsTool: true,
682
345
  supportsReasoningEffort: true
683
346
  },
347
+ {
348
+ name: PLATFORM_HOSTED_GLM_53_FLASH_MODEL,
349
+ displayName: "GLM 5.3 Flash",
350
+ hasVision: true,
351
+ price: { ...PLATFORM_HOSTED_GLM_53_FLASH_PRICE },
352
+ maxOutputTokens: 98304,
353
+ contextWindow: 1048576,
354
+ supportsTool: true,
355
+ supportsReasoningEffort: false
356
+ },
684
357
  {
685
358
  name: PLATFORM_HOSTED_CLAUDE_SONNET_5_MODEL,
686
359
  displayName: "Claude Sonnet 5",
@@ -716,7 +389,137 @@ var platformHostedModels = [
716
389
  maxOutputTokens: 1e5,
717
390
  contextWindow: 5e5,
718
391
  supportsTool: true
719
- }
392
+ },
393
+ {
394
+ name: PLATFORM_HOSTED_OPENAI_IMAGE_MODEL,
395
+ displayName: "GPT Image 2",
396
+ endpointKey: "responses",
397
+ hasVision: true,
398
+ hasImageOutput: true,
399
+ supportsImageOutput: true,
400
+ supportsTool: false,
401
+ contextWindow: 128e3,
402
+ maxOutputTokens: 32768,
403
+ price: { input: 40, output: 0, inputCacheHit: 10 },
404
+ pricePerImage: void 0,
405
+ // Dynamic cost via imageTokenPricePerMillion and quality/size
406
+ imageTokenPricePerMillion: 240,
407
+ // Official GPT Image 2 output estimates from the OpenAI image guide:
408
+ imageOutputTokenEstimateBySize: {
409
+ "1K": { low: 200, medium: 1766, high: 7033 },
410
+ "2K": { low: 166, medium: 1366, high: 5500 },
411
+ "4K": { low: 166, medium: 1366, high: 5500 }
412
+ }
413
+ },
414
+ createPlatformHostedGeminiImageModel({
415
+ name: PLATFORM_HOSTED_GEMINI_PRO_IMAGE_MODEL,
416
+ displayName: "Nano Banana Pro (Gemini 3 Pro Image Preview)",
417
+ inputPrice: 16,
418
+ outputPrice: 96,
419
+ imageTokenPricePerMillion: 960,
420
+ imageOutputTokenEstimateBySize: {
421
+ "1K": 1120,
422
+ "2K": 1120,
423
+ "4K": 2e3
424
+ },
425
+ maxOutputTokens: 8192,
426
+ contextWindow: 65536,
427
+ imageGenerationWaitTimeSeconds: {
428
+ min: 25,
429
+ max: 60
430
+ },
431
+ imageGenerationProfiles: [
432
+ {
433
+ key: "speed",
434
+ label: "\u901F\u5EA6\u4F18\u5148",
435
+ imageModel: "gemini-3.1-flash-image-preview",
436
+ waitTimeSeconds: {
437
+ min: 10,
438
+ max: 25
439
+ }
440
+ },
441
+ {
442
+ key: "quality",
443
+ label: "\u8D28\u91CF\u4F18\u5148",
444
+ imageModel: "gemini-3-pro-image-preview",
445
+ waitTimeSeconds: {
446
+ min: 25,
447
+ max: 60
448
+ }
449
+ }
450
+ ]
451
+ }),
452
+ createPlatformHostedGeminiImageModel({
453
+ name: PLATFORM_HOSTED_GEMINI_FLASH_IMAGE_MODEL,
454
+ displayName: "Nano Banana 2 (Gemini 3.1 Flash Image Preview)",
455
+ inputPrice: 4,
456
+ outputPrice: 24,
457
+ imageTokenPricePerMillion: 480,
458
+ imageOutputTokenEstimateBySize: {
459
+ "1K": 1120,
460
+ "2K": 1680,
461
+ "4K": 2520
462
+ },
463
+ maxOutputTokens: 65536,
464
+ contextWindow: 65536,
465
+ imageGenerationWaitTimeSeconds: {
466
+ min: 10,
467
+ max: 25
468
+ },
469
+ imageGenerationProfiles: [
470
+ {
471
+ key: "speed",
472
+ label: "\u901F\u5EA6\u4F18\u5148",
473
+ imageModel: "gemini-3.1-flash-image-preview",
474
+ waitTimeSeconds: {
475
+ min: 10,
476
+ max: 25
477
+ }
478
+ },
479
+ {
480
+ key: "quality",
481
+ label: "\u8D28\u91CF\u4F18\u5148",
482
+ imageModel: "gemini-3-pro-image-preview",
483
+ waitTimeSeconds: {
484
+ min: 25,
485
+ max: 60
486
+ }
487
+ }
488
+ ]
489
+ }),
490
+ createPlatformHostedGeminiImageModel({
491
+ name: PLATFORM_HOSTED_GEMINI_FLASH_LITE_IMAGE_MODEL,
492
+ displayName: "Nano Banana 2 Lite (Gemini 3.1 Flash Lite Image)",
493
+ inputPrice: 2,
494
+ outputPrice: 12,
495
+ pricePerImage: 0.272,
496
+ maxOutputTokens: 65536,
497
+ contextWindow: 65536,
498
+ imageGenerationWaitTimeSeconds: {
499
+ min: 4,
500
+ max: 10
501
+ },
502
+ imageGenerationProfiles: [
503
+ {
504
+ key: "speed",
505
+ label: "\u901F\u5EA6\u4F18\u5148",
506
+ imageModel: "gemini-3.1-flash-lite-image",
507
+ waitTimeSeconds: {
508
+ min: 4,
509
+ max: 10
510
+ }
511
+ },
512
+ {
513
+ key: "quality",
514
+ label: "\u8D28\u91CF\u4F18\u5148",
515
+ imageModel: "gemini-3-pro-image-preview",
516
+ waitTimeSeconds: {
517
+ min: 25,
518
+ max: 60
519
+ }
520
+ }
521
+ ]
522
+ })
720
523
  ];
721
524
 
722
525
  // packages/ai/llm/cloudflare.ts
@@ -738,12 +541,8 @@ var gmiModels = [];
738
541
  var zaiModels = [];
739
542
 
740
543
  export {
741
- googleModels,
742
- openAIModels,
743
544
  openrouterModels,
744
545
  deepinfraModels,
745
- xaiModels,
746
- fireworksModels,
747
546
  PLATFORM_HOSTED_KIMI_K3_MODEL,
748
547
  PLATFORM_HOSTED_KIMI_PROVIDER,
749
548
  isNoloHostedProvider,
@@ -751,12 +550,15 @@ export {
751
550
  isDeepInfraKimiModel,
752
551
  resolveFireworksKimiModel,
753
552
  isPlatformHostedClaudeModel,
553
+ toCnyCredits,
754
554
  isPlatformHostedGrokModel,
755
555
  isPlatformHostedKimiK26Model,
756
556
  isPlatformHostedGlmModel,
557
+ isPlatformHostedGlm53FlashModel,
757
558
  isPlatformHostedGeminiModel,
758
- PLATFORM_HOSTED_QWEN_37_FLASH_MODEL,
759
- isPlatformHostedQwen37FlashModel,
559
+ isPlatformHostedOpenAIImageModel,
560
+ isPlatformHostedGeminiImageModel,
561
+ isPlatformHostedImageModel,
760
562
  PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL,
761
563
  PLATFORM_HOSTED_DEEPSEEK_FLASH_VISION_EXP_MODEL,
762
564
  PLATFORM_HOSTED_DEEPSEEK_FLASH_PEAK_PRICE,