nolo-cli 0.107.0-alpha.4 → 0.107.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 (209) hide show
  1. package/README.md +1 -1
  2. package/{_executeModel-UDCSOTD2.js → _executeModel-C4EH5TZG.js} +77 -69
  3. package/action-GVA5ARSJ.js +20 -0
  4. package/{addContentAction-MB2HHMDZ.js → addContentAction-M2WOWZCL.js} +13 -12
  5. package/{addDialogAgentAction-MCEABSBA.js → addDialogAgentAction-QMAQ5Z6N.js} +19 -20
  6. package/{agentDeleteCommand-OWYHN6D6.js → agentDeleteCommand-D3RICSHX.js} +118 -43
  7. package/{agentEmailCommands-AU5I4M4W.js → agentEmailCommands-YC2A4USQ.js} +99 -89
  8. package/agentListCommands-UDJELMYP.js +741 -0
  9. package/{agentMachineCommands-YMNME2L6.js → agentMachineCommands-XH4IBGTO.js} +48 -44
  10. package/{agentProviderCommands-GNPTL5XR.js → agentProviderCommands-CMVTBY5X.js} +97 -2
  11. package/{agentPullCommand-O5MPVJ5E.js → agentPullCommand-B4T2DJ5H.js} +1 -1
  12. package/agentRecordCommands-3EOC2QMN.js +138 -0
  13. package/agentRunCommand-BTHYOVVS.js +167 -0
  14. package/{agentRunControl-AVJR4JW4.js → agentRunControl-3HWA2LLQ.js} +2 -2
  15. package/{agentRuntimeLocal-KCMC2TBD.js → agentRuntimeLocal-N4YGKL7M.js} +44 -40
  16. package/{agentSlice-R7PR6KYM.js → agentSlice-NIN4T6CF.js} +15 -14
  17. package/{appDeleteCommands-JEPA3EWE.js → appDeleteCommands-7DAF33AM.js} +46 -42
  18. package/{appDeployCommands-UTB76XFM.js → appDeployCommands-ZPZSMFGZ.js} +46 -42
  19. package/{appDeployStatusCommands-LGHF2SBD.js → appDeployStatusCommands-FWBDSSS5.js} +46 -42
  20. package/{appGetCommands-PX2BFHOB.js → appGetCommands-SZZOHGEP.js} +46 -42
  21. package/{appListCommands-BSMPTWKC.js → appListCommands-FPMUBDPM.js} +46 -42
  22. package/{authCommand-YW42YZA4.js → authCommand-VL3G26NQ.js} +119 -25
  23. package/{authCommands-RGOGCPP6.js → authCommands-5RTUDYZW.js} +7 -5
  24. package/{builtinSkillRegistry-FUAVTRVZ.js → builtinSkillRegistry-ZK4K67Y5.js} +11 -9
  25. package/{chromeCommands-FZYAU75D.js → chromeCommands-AU5ZJXBG.js} +289 -37
  26. package/{chromeOpsCommands-62P2Q2YB.js → chromeOpsCommands-ZYTCMNHG.js} +156 -22
  27. package/{chunk-JDPFV2JV.js → chunk-2NNRWRM5.js} +20 -11
  28. package/{chunk-JEDZAO7L.js → chunk-2SYTUTLI.js} +257 -37
  29. package/{chunk-HVURBGF3.js → chunk-2U3NHADM.js} +6 -6
  30. package/{chunk-UVA7OYO3.js → chunk-2ZHBFX5R.js} +29 -9
  31. package/{chunk-QTGQ2LTL.js → chunk-3DQY5IFB.js} +6 -10
  32. package/chunk-4LCOCOR5.js +50 -0
  33. package/{chunk-JPGCXHNM.js → chunk-4LKMZ3RR.js} +1 -1
  34. package/{chunk-2GRGFCF6.js → chunk-4VJAC32I.js} +2 -1
  35. package/{chunk-6D6VBVEW.js → chunk-4W24JM32.js} +80 -14
  36. package/{chunk-MC4XLIJ7.js → chunk-523DITKR.js} +1 -1
  37. package/{chunk-E4MARS3Q.js → chunk-5GVBDNTO.js} +1 -1
  38. package/chunk-5MMAK75Q.js +15 -0
  39. package/{chunk-7S4YWN7P.js → chunk-5UUIGN6I.js} +4 -4
  40. package/{chunk-42V6BK2E.js → chunk-62IL3KQV.js} +4 -34
  41. package/{chunk-IBOOZVVD.js → chunk-6IJDSYUA.js} +849 -279
  42. package/{chunk-4MK3I7Y4.js → chunk-6MAW4XOF.js} +5 -5
  43. package/chunk-76HO2DP6.js +15 -0
  44. package/chunk-7AY2H3GA.js +13692 -0
  45. package/{chunk-4CR5I7BD.js → chunk-7HYOPBUW.js} +47 -67
  46. package/{chunk-VLTIYV3X.js → chunk-7I25CBT5.js} +34 -8
  47. package/chunk-AGIM7IMJ.js +147 -0
  48. package/{chunk-5UTFL4QJ.js → chunk-AOTBKDRK.js} +7 -0
  49. package/{chunk-6OZ36FXI.js → chunk-BIPGGSJS.js} +22 -4
  50. package/{chunk-EYAQT56M.js → chunk-BNQMNUKZ.js} +9 -6
  51. package/{chunk-62CATUYY.js → chunk-CBUMFIFE.js} +834 -962
  52. package/{chunk-OIVSQH2O.js → chunk-CDEEFJXN.js} +308 -11
  53. package/chunk-CHOZJMJS.js +78 -0
  54. package/{chunk-ETI2NYVF.js → chunk-CIP3AAMT.js} +4 -4
  55. package/{chunk-GBRG75BQ.js → chunk-D2MDMY2M.js} +1 -0
  56. package/{chunk-IBOZNTG2.js → chunk-DGEUP3DK.js} +23 -28
  57. package/{chunk-Q554LLSI.js → chunk-DMXLXZKL.js} +1 -1
  58. package/{chunk-3VNWWVKB.js → chunk-E3YWHWCR.js} +50 -18
  59. package/{chunk-HKNXJGEC.js → chunk-ECFHBYUW.js} +85 -50
  60. package/{chunk-ACTMNVHM.js → chunk-EHSYSKXV.js} +1 -1
  61. package/{chunk-WV42OMV7.js → chunk-ELUDRSRD.js} +8 -8
  62. package/{chunk-ABQYVJBJ.js → chunk-EV235ILT.js} +5 -5
  63. package/{chunk-TRV2MIDW.js → chunk-EXAJ6DCR.js} +1 -0
  64. package/{chunk-BFDFRLLQ.js → chunk-EZ4VZHAG.js} +5 -5
  65. package/{chunk-GO3Z72MT.js → chunk-FHLMQIU7.js} +65 -95
  66. package/{chunk-2F7RJC6L.js → chunk-FOXQ7BAB.js} +1 -1
  67. package/{chunk-SH43IESU.js → chunk-GGC55Q32.js} +199 -29
  68. package/chunk-GMZLP5DV.js +82 -0
  69. package/{chunk-FDTR4QJ6.js → chunk-H6A6X4EK.js} +32 -1
  70. package/{chunk-DVINR3PL.js → chunk-HDLLCBRF.js} +1 -1
  71. package/{chunk-QOKAKDPE.js → chunk-HIM3FCLF.js} +0 -1
  72. package/{chunk-ONXOABJR.js → chunk-HNGRBWYF.js} +3 -0
  73. package/{chunk-BNGW5ASC.js → chunk-I2RGRVQ7.js} +22 -2
  74. package/{chunk-O6OSWFZQ.js → chunk-IHPDK6UD.js} +6 -0
  75. package/{chunk-QDSINZM3.js → chunk-IXH3HKY2.js} +1 -22
  76. package/{chunk-GQBOR3G6.js → chunk-JBKHQOYK.js} +8 -4
  77. package/{chunk-XD2MJFUG.js → chunk-JEFXP73H.js} +1 -1
  78. package/{chunk-PBA4UJBK.js → chunk-JIXGJTBU.js} +4 -4
  79. package/{chunk-AEOE4Z6Q.js → chunk-K6L5PNXK.js} +39 -15
  80. package/{chunk-Z77CRGTW.js → chunk-KA5O5KQL.js} +1 -1
  81. package/{chunk-GPCZ7UXG.js → chunk-KD6D6BLA.js} +1 -1
  82. package/{chunk-UZGQNTVW.js → chunk-KHKTDMYG.js} +8 -6
  83. package/{chunk-MRIHM22T.js → chunk-LBFL6RZG.js} +58 -9
  84. package/{chunk-C3M4465B.js → chunk-LKIVH2I2.js} +403 -658
  85. package/{chunk-LS2ZANRJ.js → chunk-LOCNXNOU.js} +1 -1
  86. package/{chunk-DHDMC6FO.js → chunk-LUBFABMJ.js} +15 -14
  87. package/{chunk-NA35QHCF.js → chunk-LVBFKW65.js} +1 -1
  88. package/chunk-LWLNLZC5.js +265 -0
  89. package/{chunk-EEGDMATE.js → chunk-M3NMHYRB.js} +86 -81
  90. package/chunk-N4NGJDT6.js +929 -0
  91. package/{chunk-GL3EHUR4.js → chunk-N7NLLRQQ.js} +68 -46
  92. package/{chunk-BFU6C242.js → chunk-NMFV26UG.js} +1 -1
  93. package/{chunk-FZGV4FGK.js → chunk-NUHHBEJC.js} +378 -187
  94. package/chunk-NWENLDMM.js +42 -0
  95. package/chunk-O7SVKKLY.js +875 -0
  96. package/chunk-OCZKATRC.js +129 -0
  97. package/{chunk-6Z7MY3V7.js → chunk-OEJLGVBL.js} +5 -5
  98. package/{chunk-VMFTFOWF.js → chunk-OKGVNZTL.js} +35 -8
  99. package/{chunk-GEPUP7OO.js → chunk-OR2UWD6X.js} +3 -3
  100. package/{chunk-KQHGZWSV.js → chunk-OXME3PEE.js} +1 -1
  101. package/{chunk-J4MOO56S.js → chunk-PNXHPLRU.js} +10 -2
  102. package/{chunk-3BMYXEUW.js → chunk-R5AJODNI.js} +1 -1
  103. package/{chunk-P5EVSOPA.js → chunk-R6EBQEQE.js} +22 -29
  104. package/{chunk-NOF3HDSN.js → chunk-RLSF5CSE.js} +11 -9
  105. package/chunk-RQ6CTX2E.js +164 -0
  106. package/{chunk-3UZPUAES.js → chunk-RSB4PWX4.js} +1 -1
  107. package/{chunk-KQ4ONNQD.js → chunk-RXA3HAVW.js} +190 -8
  108. package/{chunk-IIVGDG4I.js → chunk-SJKULPGX.js} +13 -7
  109. package/chunk-SQHMSDDU.js +8004 -0
  110. package/{chunk-Q67DOFOO.js → chunk-SZC4REES.js} +212 -105
  111. package/{chunk-JRQFUXY7.js → chunk-TBAXFWOS.js} +99 -22
  112. package/{chunk-PQFHGD77.js → chunk-TBM2RS3U.js} +161 -14
  113. package/{chunk-XT35TTFG.js → chunk-TCYU7L6V.js} +18 -20
  114. package/{chunk-BYMV6QZG.js → chunk-TNIX77YM.js} +4 -0
  115. package/chunk-TY3TIUJK.js +89 -0
  116. package/{chunk-I3TQJXQ7.js → chunk-U3C3IA32.js} +9 -2
  117. package/{chunk-YYLHWIW6.js → chunk-UKZX3NHN.js} +1 -1
  118. package/chunk-UM7TA3K4.js +1008 -0
  119. package/{chunk-6YTOJY35.js → chunk-VBG7GWWR.js} +253 -8
  120. package/chunk-VIWDGTDA.js +8 -0
  121. package/chunk-VJVNU77E.js +83 -0
  122. package/{chunk-W7HLWAQ7.js → chunk-VPLUU4IX.js} +118 -90
  123. package/{chunk-UKWGR5SS.js → chunk-VY6VFGKR.js} +194 -1144
  124. package/chunk-VZLO4XJD.js +17 -0
  125. package/{chunk-AHAHBQMU.js → chunk-WDLSZMTA.js} +2 -2
  126. package/{chunk-53HEEOTT.js → chunk-WF5X57VW.js} +83 -16
  127. package/{chunk-VRTTFDBM.js → chunk-WPHY3VPF.js} +35 -22
  128. package/{chunk-ASIFZ2WY.js → chunk-YKZLFY5J.js} +66 -54
  129. package/chunk-YV25TM3R.js +780 -0
  130. package/{chunk-MS7TSPZR.js → chunk-YXKNBVYW.js} +19 -17
  131. package/chunk-ZRAU6T47.js +56 -0
  132. package/commandRegistry-UU6IOTHI.js +833 -0
  133. package/{contentThunks-IV2T3EJC.js → contentThunks-ARD56LKI.js} +39 -36
  134. package/{cooldownCommands-REAWYVTY.js → cooldownCommands-ZLEPIB4A.js} +2 -2
  135. package/{createAgentAutomationAction-JCOIEYY4.js → createAgentAutomationAction-HWJLU6DD.js} +40 -37
  136. package/createDialogAction-CHYA6PZE.js +70 -0
  137. package/{createPageAction-D2VOOLP3.js → createPageAction-TSCYNFX7.js} +47 -43
  138. package/{chunk-FG3HKPQP.js → cursorProvider-YGGNMVWX.js} +2751 -10185
  139. package/{dbSlice-A6C6H32X.js → dbSlice-TG4MZ5EB.js} +12 -11
  140. package/{deleteFile-YG6QMJLU.js → deleteFile-KESP65GC.js} +7 -6
  141. package/{dialogCommands-H7FPUYUQ.js → dialogCommands-IJYQAQMB.js} +49 -46
  142. package/{dialogSlice-6JZOOTDS.js → dialogSlice-H476I77R.js} +57 -37
  143. package/{dist-VODFSGNG.js → dist-NJC2W7I4.js} +61 -54
  144. package/{docCreateCommands-WRG2JLGM.js → docCreateCommands-AZSK4NAG.js} +48 -44
  145. package/{docDeleteCommands-SHWJIBJS.js → docDeleteCommands-DDJMSMFZ.js} +49 -45
  146. package/{docReadCommands-WJN3WT6O.js → docReadCommands-5F5Q6EBZ.js} +47 -43
  147. package/{docStore-HUPQ2FSS.js → docStore-HW2RDZDM.js} +17 -13
  148. package/{docUpdateCommands-IE32IL6O.js → docUpdateCommands-XPNPVZOC.js} +48 -44
  149. package/{fetchMessages-EIU7UFFK.js → fetchMessages-3PXAHKCR.js} +5 -5
  150. package/{getPricing-LUSEABA6.js → getPricing-DOBBZLOK.js} +4 -4
  151. package/{handleSendMessageAction-DFPMQ7YM.js → handleSendMessageAction-IOXE7ILC.js} +109 -42
  152. package/index.js +87 -884
  153. package/{lib-FRRS27KN.js → lib-PU2G2MSO.js} +523 -191
  154. package/{localDialogRead-BTFJ4V2I.js → localDialogRead-UYCKO7YZ.js} +2 -2
  155. package/{localRuntimeAuthority-6IR6BBXE.js → localRuntimeAuthority-TU6OBC76.js} +9 -6
  156. package/{localRuntimeDb-SYQGUF4U.js → localRuntimeDb-VKWVOPPI.js} +1 -1
  157. package/{machineCommands-M2T2I5NF.js → machineCommands-Q7TDGM6P.js} +96 -86
  158. package/machineWsRunDispatch-T5VFOQ3R.js +154 -0
  159. package/{memberThunks-P2ECUJ56.js → memberThunks-5S5D3N4U.js} +20 -18
  160. package/{models-T3SG6MJ5.js → models-PQU25T6Q.js} +2 -2
  161. package/oauthTokenStore-ITEB663N.js +23 -0
  162. package/package.json +1 -1
  163. package/processSpawn-SOAV3FEV.js +11 -0
  164. package/profileConfig-ZGOFORWV.js +43 -0
  165. package/{providerPresetApply-FG6NZ57W.js → providerPresetApply-HAQWVAQX.js} +7 -7
  166. package/{providerRegistry-757OWH3O.js → providerRegistry-5FGWB3X5.js} +11 -7
  167. package/{read-COE3ZYR6.js → read-LSYFLSIM.js} +8 -7
  168. package/{readDocTool-5USN4A6V.js → readDocTool-XWRXV3DR.js} +5 -3
  169. package/{readlineWorkspace-XQRDGWRZ.js → readlineWorkspace-25U6P3DG.js} +2595 -2031
  170. package/{removeDialogAgentAction-J6X5QMTA.js → removeDialogAgentAction-4TEFC3VL.js} +22 -26
  171. package/{runAgentClientLoop-5ZA62FBA.js → runAgentClientLoop-CZOYWHDN.js} +78 -71
  172. package/{runtimeDoctorCommands-X6WDBEQX.js → runtimeDoctorCommands-PIVSBZRZ.js} +4 -4
  173. package/runtimeModeArgs-2Y7BALTO.js +31 -0
  174. package/{setDialogExtraReferencesAction-WX5VTY6O.js → setDialogExtraReferencesAction-LSEN44OY.js} +16 -14
  175. package/{setPrimaryDialogAgentAction-FN22THHT.js → setPrimaryDialogAgentAction-SR366X5A.js} +23 -27
  176. package/{chunk-GP5LKBUZ.js → settingThunks-CTVPPGIN.js} +226 -940
  177. package/{skillDiscovery-CYUCJMAG.js → skillDiscovery-ZBU76COE.js} +3 -3
  178. package/{slateUtils-RIZES3PV.js → slateUtils-NGV2NMKM.js} +1 -1
  179. package/{spaceCommands-5GLCWZPO.js → spaceCommands-3UK63WPE.js} +51 -47
  180. package/{streamAgentChatTurn-6UZJMYRB.js → streamAgentChatTurn-LV6ZWUD4.js} +214 -114
  181. package/{switchDialogAgentAction-LVTEV3FR.js → switchDialogAgentAction-M6NAFOOU.js} +19 -20
  182. package/{tableCommands-O6NWHFKV.js → tableCommands-6U4BMLRR.js} +10 -10
  183. package/{toolApiClient-QVJ6HDNN.js → toolApiClient-AD7CXTA4.js} +4 -3
  184. package/tools-UJOV6CQZ.js +117 -0
  185. package/{tuiSummaryLlmCaller-OHHFTHMG.js → tuiSummaryLlmCaller-DEH7ZEM6.js} +25 -23
  186. package/{updateCommands-2M74UL7P.js → updateCommands-4EHDLF5J.js} +3 -3
  187. package/{updateDialogTitleAction-QTKNIURB.js → updateDialogTitleAction-JYXKIBNJ.js} +84 -45
  188. package/action-P4TNFGAD.js +0 -31
  189. package/agentListCommands-B2V4YAC4.js +0 -410
  190. package/agentRecordCommands-G4KK4R7H.js +0 -128
  191. package/agentRunCommand-UTZJA23G.js +0 -156
  192. package/browser-image-compression-MFDTD7K6.js +0 -1763
  193. package/chatQueueReduxAdapter-2P6NFX64.js +0 -186
  194. package/chunk-CQ3WA2NE.js +0 -299
  195. package/chunk-M76ECQRD.js +0 -13658
  196. package/chunk-MEYIRKDN.js +0 -8967
  197. package/chunk-PUOC4YRO.js +0 -394
  198. package/chunk-Q5FJJ6XI.js +0 -103
  199. package/chunk-S7Z2HMCN.js +0 -25
  200. package/chunk-T75QD6AB.js +0 -20923
  201. package/chunk-Y5GCAMGP.js +0 -9
  202. package/chunk-YPREESF4.js +0 -225
  203. package/createDialogAction-NGG7YVNU.js +0 -65
  204. package/machineWsRunDispatch-ISBKOOD7.js +0 -144
  205. package/settingSlice-P4ZW7K5X.js +0 -204
  206. package/syncMapping-N6RGXGBW.js +0 -437
  207. package/tools-KMGFWO43.js +0 -110
  208. package/{chunk-X7HHHIOZ.js → chunk-Y6ROFCZO.js} +0 -0
  209. package/{db-WK5MDZVN.js → db-VQSAOWAO.js} +1 -1
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ANTIGRAVITY_CLOUD_CODE_BASE_URL
3
- } from "./chunk-UZGQNTVW.js";
3
+ } from "./chunk-KHKTDMYG.js";
4
4
  import {
5
5
  kimiCodeModels,
6
6
  moonshotModels,
@@ -9,13 +9,16 @@ import {
9
9
  qwenTokenPlanModels,
10
10
  stepfunModels,
11
11
  stepfunStepPlanModels
12
- } from "./chunk-OIVSQH2O.js";
12
+ } from "./chunk-CDEEFJXN.js";
13
13
  import {
14
14
  PLATFORM_HOSTED_DEEPSEEK_FLASH_OFF_PEAK_PRICE,
15
15
  PLATFORM_HOSTED_DEEPSEEK_FLASH_PEAK_PRICE,
16
16
  PLATFORM_HOSTED_DEEPSEEK_PRO_OFF_PEAK_PRICE,
17
17
  PLATFORM_HOSTED_DEEPSEEK_PRO_PEAK_PRICE
18
- } from "./chunk-Q67DOFOO.js";
18
+ } from "./chunk-SZC4REES.js";
19
+ import {
20
+ asTrimmedLowercaseString
21
+ } from "./chunk-QSJ3HFEF.js";
19
22
 
20
23
  // packages/integrations/commandcode/models.ts
21
24
  var commandCodeModels = [
@@ -203,6 +206,60 @@ var deepseekModels = [
203
206
  }
204
207
  ];
205
208
 
209
+ // packages/integrations/mistral/models.ts
210
+ var mistralModels = [
211
+ // ── Vibe 编码档(订阅主打,Vibe CLI 默认用最新档)──
212
+ {
213
+ name: "mistral-vibe-cli-latest",
214
+ displayName: "Mistral Vibe CLI",
215
+ hasVision: true,
216
+ contextWindow: 262144,
217
+ jsonOutput: true,
218
+ fnCall: true,
219
+ supportsTool: true,
220
+ price: { input: 0, output: 0 },
221
+ provider: "mistral",
222
+ description: "Mistral Vibe \u9ED8\u8BA4\u7F16\u7801\u6A21\u578B\uFF08\u8BA2\u9605\u6C60\u5185\uFF09\uFF0C\u9762\u5411 agentic coding\u3002"
223
+ },
224
+ {
225
+ name: "mistral-vibe-cli-fast",
226
+ displayName: "Mistral Vibe CLI Fast",
227
+ hasVision: true,
228
+ contextWindow: 262144,
229
+ jsonOutput: true,
230
+ fnCall: true,
231
+ supportsTool: true,
232
+ price: { input: 0, output: 0 },
233
+ provider: "mistral",
234
+ description: "Vibe \u7F16\u7801\u6863\u7684\u5FEB\u6863\uFF08\u8BA2\u9605\u6C60\u5185\uFF09\uFF0C\u4E0E latest \u540C\u4E3A 262k \u4E0A\u4E0B\u6587\u7684\u7F16\u7801\u6863\u3002"
235
+ },
236
+ // ── 通用档 ──
237
+ {
238
+ name: "mistral-medium-3.5",
239
+ displayName: "Mistral Medium 3.5",
240
+ hasVision: true,
241
+ contextWindow: 262144,
242
+ jsonOutput: true,
243
+ fnCall: true,
244
+ supportsTool: true,
245
+ price: { input: 0, output: 0 },
246
+ provider: "mistral",
247
+ description: "Mistral \u4E2D\u6863\u901A\u7528\u6A21\u578B\uFF08\u8BA2\u9605\u6C60\u5185\uFF09\uFF0C\u591A\u6A21\u6001\uFF0C\u9002\u5408\u65E5\u5E38\u95EE\u7B54\u4E0E\u8F7B\u91CF\u7F16\u7801\u3002"
248
+ },
249
+ {
250
+ name: "mistral-large-latest",
251
+ displayName: "Mistral Large (latest)",
252
+ hasVision: true,
253
+ contextWindow: 262144,
254
+ jsonOutput: true,
255
+ fnCall: true,
256
+ supportsTool: true,
257
+ price: { input: 0, output: 0 },
258
+ provider: "mistral",
259
+ description: "Mistral \u65D7\u8230\u6863\uFF08\u8BA2\u9605\u6C60\u5185\uFF09\uFF0C\u8BA2\u9605\u989D\u5EA6\u6D88\u8017\u6700\u5FEB\uFF0C\u9002\u5408\u96BE\u9898\u515C\u5E95\u3002"
260
+ }
261
+ ];
262
+
206
263
  // packages/ai/agent/providerRegistry.ts
207
264
  var QWEN_MODEL_OPTIONS = qwenModels.map((m, i) => ({
208
265
  id: m.name,
@@ -267,6 +324,23 @@ var STEPFUN_STEP_PLAN_MODEL_OPTIONS = stepfunStepPlanModels.map((m, i) => ({
267
324
  hasVision: m.hasVision,
268
325
  ...i === 0 ? { recommended: true } : {}
269
326
  }));
327
+ var MISTRAL_MODEL_OPTIONS = mistralModels.map((m, i) => ({
328
+ id: m.name,
329
+ label: m.displayName ?? m.name,
330
+ hasVision: m.hasVision,
331
+ ...i === 0 ? { recommended: true } : {}
332
+ }));
333
+ var TOGETHER_MODEL_OPTIONS = [
334
+ {
335
+ id: "meta-llama/Llama-3.3-70B-Instruct-Turbo",
336
+ label: "Llama 3.3 70B Instruct Turbo",
337
+ recommended: true
338
+ },
339
+ { id: "deepseek-ai/DeepSeek-V4-Pro-0813", label: "DeepSeek V4 Pro" },
340
+ { id: "Qwen/Qwen3.6-Plus", label: "Qwen3.6 Plus" },
341
+ { id: "zai-org/GLM-5.2", label: "GLM-5.2" },
342
+ { id: "openai/gpt-oss-120b", label: "GPT-OSS 120B" }
343
+ ];
270
344
  var SUBSCRIPTION_OAUTH_PROVIDERS = [
271
345
  {
272
346
  kind: "oauth",
@@ -279,6 +353,9 @@ var SUBSCRIPTION_OAUTH_PROVIDERS = [
279
353
  defaultReasoningEffort: "medium",
280
354
  modelOptions: [
281
355
  { id: "gpt-6-astra", label: "GPT-6 Astra", hasVision: true, recommended: true },
356
+ // GPT-6.1 Sol 已列入 Codex 订阅通道选型指南,但按账号灰度("when available
357
+ // to your account and client"),未开通的账号选它会 400,不影响其他选项。
358
+ { id: "gpt-6.1-sol", label: "GPT-6.1 Sol", hasVision: true },
282
359
  { id: "gpt-5.6-sol", label: "GPT-5.6 Sol", hasVision: true },
283
360
  { id: "gpt-5.6-terra", label: "GPT-5.6 Terra", hasVision: true },
284
361
  { id: "gpt-5.6-luna", label: "GPT-5.6 Luna", hasVision: true }
@@ -310,6 +387,10 @@ var SUBSCRIPTION_OAUTH_PROVIDERS = [
310
387
  { id: "gemini-3.8-flash", label: "Gemini 3.8 Flash", hasVision: true, recommended: true },
311
388
  { id: "gemini-3.7-flash", label: "Gemini 3.7 Flash", hasVision: true },
312
389
  { id: "gemini-3.6-flash", label: "Gemini 3.6 Flash", hasVision: true },
390
+ // Gemini 4 Argon 需 Google AI Ultra / 符合条件的企业订阅(官方 2026-10-13 公告);
391
+ // 非 Ultra 账号 discovery 返回 gemini-4-argon-disabled,选中后调用 404。标签明示门槛,
392
+ // 让不具备资格的 Antigravity 用户不会误选;3.1 Pro 保留为所有档位可用的回退。
393
+ { id: "gemini-4-argon", label: "Gemini 4 Argon\uFF08\u9700 Ultra\uFF09", hasVision: true },
313
394
  { id: "gemini-3.1-pro", label: "Gemini 3.1 Pro", hasVision: true },
314
395
  { id: "gemini-2.5-pro", label: "Gemini 2.5 Pro", hasVision: true },
315
396
  { id: "claude-sonnet-5", label: "Claude Sonnet 5", hasVision: true },
@@ -324,11 +405,14 @@ var SUBSCRIPTION_OAUTH_PROVIDERS = [
324
405
  description: "Anthropic Subscription",
325
406
  apiKeyRef: "claude",
326
407
  provider: "anthropic",
327
- defaultModel: "claude-sonnet-5",
408
+ defaultModel: "claude-sonnet-5-5",
328
409
  defaultReasoningEffort: "high",
329
410
  modelOptions: [
411
+ { id: "claude-opus-5-5", label: "Claude Opus 5.5", hasVision: true, recommended: true },
412
+ { id: "claude-sonnet-5-5", label: "Claude Sonnet 5.5", hasVision: true },
413
+ { id: "claude-haiku-5-5", label: "Claude Haiku 5.5", hasVision: true },
330
414
  { id: "claude-sonnet-5", label: "Claude Sonnet 5", hasVision: true },
331
- { id: "claude-opus-5", label: "Claude Opus 5", hasVision: true, recommended: true },
415
+ { id: "claude-opus-5", label: "Claude Opus 5", hasVision: true },
332
416
  { id: "claude-opus-4-8", label: "Claude Opus 4.8", hasVision: true },
333
417
  { id: "claude-fable-5", label: "Claude Fable 5", hasVision: true }
334
418
  ]
@@ -533,13 +617,61 @@ var CUSTOM_API_KEY_TEMPLATES = [
533
617
  commercialKind: "subscription",
534
618
  accessVariant: "token_plan_endpoint"
535
619
  },
620
+ {
621
+ kind: "api_key_template",
622
+ id: "mistral-plan",
623
+ label: "Mistral \u8BA2\u9605 (Vibe/Pro)",
624
+ description: "Mistral \u5B98\u65B9\u8BA2\u9605\uFF08Free $10 / Pro $30 \u6708\u5EA6 API credits\uFF0C\u8DE8 Studio/API/Vibe \u5171\u4EAB\uFF1BKey \u4ECE chat.mistral.ai \u203A Code \u203A Extensions \u751F\u6210\uFF09",
625
+ provider: "mistral",
626
+ baseUrl: "https://api.mistral.ai/v1",
627
+ defaultModel: "mistral-vibe-cli-latest",
628
+ modelOptions: MISTRAL_MODEL_OPTIONS,
629
+ keyFormatHint: "\u5728 chat.mistral.ai \u203A Code \u203A Extensions \u203A Vibe API Key \u751F\u6210\uFF0845 \u4F4D\uFF0C\u5F62\u5982 xxxxx\u2026nb3A\uFF09\uFF1B\u4E5F\u53EF\u7528 Studio \u7684 API Key\u3002\u4E24\u8005\u90FD\u76F4\u63A5\u6709\u6548\u4E8E api.mistral.ai/v1\u3002",
630
+ commercialKind: "subscription",
631
+ accessVariant: "token_plan_endpoint"
632
+ },
633
+ // OpenDesign 聚合网关(open-design.ai):一个 Key 聚合 GPT / Claude / DeepSeek /
634
+ // GLM / Kimi / MiMo,OpenAI 兼容。modelOptions 按「品牌知名度」排序(GPT > Claude >
635
+ // DeepSeek > GLM > Kimi > MiMo,同品牌内按能力/成本排),快照取自 2026-10-11 的
636
+ // GET /v1/models;上游增删模型时以 `nolo agent models --url <baseUrl>`(或 `--preset opendesign`)实测为准,
637
+ // CLI 的 --model 仍可填列表外的 ID。
638
+ {
639
+ kind: "api_key_template",
640
+ id: "opendesign",
641
+ label: "OpenDesign \u805A\u5408\u7F51\u5173",
642
+ description: "open-design.ai \u805A\u5408\u8BA2\u9605\uFF08\u4E00\u4E2A Key \u805A\u5408 GPT/Claude/DeepSeek/GLM/Kimi/MiMo\uFF0COpenAI \u517C\u5BB9\uFF09",
643
+ provider: "opendesign",
644
+ baseUrl: "https://amr-link.open-design.ai/v1",
645
+ defaultModel: "gpt-6-luna",
646
+ modelOptions: [
647
+ { id: "gpt-6-luna", label: "GPT-6 Luna", hasVision: true, recommended: true },
648
+ { id: "claude-haiku-5.5", label: "Claude Haiku 5.5", hasVision: true },
649
+ { id: "deepseek-v4-pro", label: "DeepSeek V4 Pro" },
650
+ { id: "deepseek-v4.1-flash", label: "DeepSeek V4.1 Flash", hasVision: true },
651
+ { id: "deepseek-v4-flash", label: "DeepSeek V4 Flash" },
652
+ { id: "deepseek-v4-flash-vision-exp", label: "DeepSeek V4 Flash Vision Exp", hasVision: true },
653
+ { id: "glm-5.3-flashx", label: "GLM 5.3 FlashX", hasVision: true },
654
+ { id: "glm-5.3-flash", label: "GLM 5.3 Flash", hasVision: true },
655
+ { id: "kimi-k2.7-code", label: "Kimi K2.7 Code", hasVision: true },
656
+ { id: "mimo-v2.6-pro", label: "MiMo V2.6 Pro", hasVision: true },
657
+ { id: "mimo-v2.6-flash", label: "MiMo V2.6 Flash", hasVision: true }
658
+ ],
659
+ keyFormatHint: "\u5728 open-design.ai \u63A7\u5236\u53F0\u83B7\u53D6\uFF08\u7F51\u5173\u81EA\u6709 Key\uFF0C\u975E\u5404\u5BB6\u5B98\u65B9 Key\uFF09\u3002",
660
+ commercialKind: "subscription",
661
+ accessVariant: "token_plan_endpoint"
662
+ },
536
663
  {
537
664
  kind: "api_key_template",
538
665
  id: "openai-api",
539
666
  label: "OpenAI API",
540
667
  provider: "openai",
541
668
  baseUrl: "https://api.openai.com/v1",
542
- defaultModel: "gpt-6-astra",
669
+ defaultModel: "gpt-6.1-sol",
670
+ modelOptions: [
671
+ { id: "gpt-6.1-sol", label: "GPT-6.1 Sol", hasVision: true, recommended: true },
672
+ { id: "gpt-6-astra", label: "GPT-6 Astra", hasVision: true },
673
+ { id: "gpt-6-luna", label: "GPT-6 Luna", hasVision: true }
674
+ ],
543
675
  commercialKind: "api",
544
676
  accessVariant: "metered_key"
545
677
  },
@@ -549,7 +681,7 @@ var CUSTOM_API_KEY_TEMPLATES = [
549
681
  label: "Anthropic API",
550
682
  provider: "anthropic",
551
683
  baseUrl: "https://api.anthropic.com",
552
- defaultModel: "claude-sonnet-5",
684
+ defaultModel: "claude-sonnet-5-5",
553
685
  apiKeyHeader: "x-api-key",
554
686
  commercialKind: "api",
555
687
  accessVariant: "metered_key"
@@ -575,6 +707,19 @@ var CUSTOM_API_KEY_TEMPLATES = [
575
707
  commercialKind: "api",
576
708
  accessVariant: "metered_key"
577
709
  },
710
+ // anthropic/claude-sonnet-5、qwen/qwen3.8-27b),不维护易腐的静态清单。
711
+ {
712
+ kind: "api_key_template",
713
+ id: "openrouter-api",
714
+ label: "OpenRouter API \u7528\u91CF\u8BA1\u8D39",
715
+ description: "OpenRouter \u805A\u5408\u7F51\u5173\uFF08OpenAI \u517C\u5BB9\uFF0C\u4E00\u4E2A Key \u8BBF\u95EE\u591A\u5BB6\u6A21\u578B\uFF0C\u6309\u91CF\u8BA1\u8D39\uFF09",
716
+ provider: "openrouter",
717
+ baseUrl: "https://openrouter.ai/api/v1",
718
+ defaultModel: "anthropic/claude-sonnet-5",
719
+ keyFormatHint: "\u5728 openrouter.ai/keys \u521B\u5EFA\uFF0C\u5F62\u5982 sk-or-\u2026",
720
+ commercialKind: "api",
721
+ accessVariant: "metered_key"
722
+ },
578
723
  // DeepSeek 模型统一改走 nolo provider(Ollama Cloud,thinking=max 快 28-49%)。
579
724
  // 现按用户选择回归:自带 Key 的 metered 通道与平台托管通道并存,互不影响。
580
725
  {
@@ -649,6 +794,21 @@ var CUSTOM_API_KEY_TEMPLATES = [
649
794
  defaultModel: "MiniMax-Text-01",
650
795
  commercialKind: "api",
651
796
  accessVariant: "metered_key"
797
+ },
798
+ // Together AI 平台:用户自带 Key 的 metered 通道(复用 OpenAI-compatible 通道,
799
+ // apiSource:"custom",不扣平台积分)。模型 ID 为 namespaced 全 ID,直传不 remap;
800
+ // OpenAI 兼容 base_url = https://api.together.ai/v1(官方兼容文档在案)。
801
+ {
802
+ kind: "api_key_template",
803
+ id: "together-api",
804
+ label: "Together AI API \u7528\u91CF\u8BA1\u8D39",
805
+ description: "Together AI\uFF08OpenAI \u517C\u5BB9\uFF0C\u6309\u91CF\u8BA1\u8D39\uFF09",
806
+ provider: "together",
807
+ baseUrl: "https://api.together.ai/v1",
808
+ defaultModel: "meta-llama/Llama-3.3-70B-Instruct-Turbo",
809
+ modelOptions: TOGETHER_MODEL_OPTIONS,
810
+ commercialKind: "api",
811
+ accessVariant: "metered_key"
652
812
  }
653
813
  ];
654
814
  var ALL_PROVIDER_REGISTRY = [
@@ -666,6 +826,26 @@ function isCustomApiKeyTemplate(id) {
666
826
  if (!id) return false;
667
827
  return CUSTOM_API_KEY_TEMPLATES.some((p) => p.id === id);
668
828
  }
829
+ function normalizeEndpointUrl(url) {
830
+ return asTrimmedLowercaseString(url).replace(/\/+$/, "");
831
+ }
832
+ var SUBSCRIPTION_ENDPOINT_URLS = new Set(
833
+ CUSTOM_API_KEY_TEMPLATES.filter((t) => t.commercialKind === "subscription").map(
834
+ (t) => normalizeEndpointUrl(t.baseUrl)
835
+ )
836
+ );
837
+ var SUBSCRIPTION_OAUTH_APIKEY_REFS = new Set(
838
+ SUBSCRIPTION_OAUTH_PROVIDERS.map((p) => asTrimmedLowercaseString(p.apiKeyRef))
839
+ );
840
+ function isSubscriptionEndpoint(customProviderUrl) {
841
+ if (typeof customProviderUrl !== "string") return false;
842
+ const normalized = normalizeEndpointUrl(customProviderUrl);
843
+ return normalized.length > 0 && SUBSCRIPTION_ENDPOINT_URLS.has(normalized);
844
+ }
845
+ function isSubscriptionOAuthCredential(apiKeyRef) {
846
+ const ref = asTrimmedLowercaseString(apiKeyRef ?? "");
847
+ return ref.length > 0 && SUBSCRIPTION_OAUTH_APIKEY_REFS.has(ref);
848
+ }
669
849
 
670
850
  export {
671
851
  SUBSCRIPTION_OAUTH_PROVIDERS,
@@ -673,5 +853,7 @@ export {
673
853
  ALL_PROVIDER_REGISTRY,
674
854
  findProviderById,
675
855
  isSubscriptionOAuthProvider,
676
- isCustomApiKeyTemplate
856
+ isCustomApiKeyTemplate,
857
+ isSubscriptionEndpoint,
858
+ isSubscriptionOAuthCredential
677
859
  };
@@ -1,13 +1,6 @@
1
1
  import {
2
2
  asRecordOrEmpty
3
3
  } from "./chunk-KX6YBIHG.js";
4
- import {
5
- asNonEmptyStringArray,
6
- asTrimmedNonEmptyStringArray
7
- } from "./chunk-VMFTFOWF.js";
8
- import {
9
- asOptionalFiniteNumber
10
- } from "./chunk-WWC7I6TA.js";
11
4
  import {
12
5
  isOwnedAgentKey,
13
6
  ownedAgentKey,
@@ -16,6 +9,13 @@ import {
16
9
  import {
17
10
  isRecord
18
11
  } from "./chunk-KUG52IAP.js";
12
+ import {
13
+ asNonEmptyStringArray,
14
+ asTrimmedNonEmptyStringArray
15
+ } from "./chunk-OKGVNZTL.js";
16
+ import {
17
+ asOptionalFiniteNumber
18
+ } from "./chunk-WWC7I6TA.js";
19
19
  import {
20
20
  asOptionalTrimmedString
21
21
  } from "./chunk-G3SUCT4W.js";
@@ -764,12 +764,15 @@ var AGENT_SELECTION_PRIORITY_INSTRUCTIONS = ` - \u4F18\u5148\u7EA7\u5951\u7EA6
764
764
  4. \u516C\u5F00 Agent \u53D1\u73B0\uFF1A\u4EC5\u5F53 preferred \u5217\u8868\u4E2D\u6CA1\u6709\u9002\u5408\u4E14\u53EF\u7528\u7684\u5019\u9009\uFF0C\u6216\u7528\u6237\u660E\u786E\u8981\u6C42\u63A2\u7D22\u516C\u5F00 Agent \u65F6\uFF0C\u624D\u663E\u5F0F\u8C03\u7528 listAgents({ scope: "public" })\u3002\u516C\u5F00 Agent \u53EF\u80FD\u6D88\u8017 platform_credits\uFF0C\u5FC5\u987B\u5728\u83B7\u5F97\u7528\u6237\u660E\u786E\u6263\u8D39\u6388\u6743\u540E\u624D\u80FD\u8C03\u7528\u3002
765
765
  - \u6536\u85CF\u4F18\u5148\u786C\u95E8\uFF08\u7528\u6237\u94A6\u5B9A\uFF0C\u8986\u76D6\u9876\u6863\u6210\u672C\u95E8\uFF09\uFF1A\u5F53\u5B58\u5728\u53EF\u7528\u4E14\u9002\u5408\u4EFB\u52A1\u7684\u6536\u85CF user_subscription / user_api / local Agent \u65F6\uFF0C\u7981\u6B62\u6539\u6D3E platform_credits\u3002favorite + platform_credits \u53EA\u8868\u793A\u7528\u6237\u8868\u8FBE\u8FC7\u504F\u597D\u5E76\u56E0\u6B64\u8FDB\u5165 preferred discovery\uFF0C\u4E0D\u4EE3\u8868\u514D\u8D39\u6216\u514D\u6388\u6743\uFF1B\u4F7F\u7528\u5B83\u4ECD\u987B\u9075\u5B88\u5E73\u53F0\u79EF\u5206\u6263\u8D39\u544A\u77E5/\u6388\u6743\u89C4\u5219\u3002\u4F46\u6CE8\u610F\u533A\u5206\uFF1AbillingSource="owner_subscription" \u7684\u6536\u85CF Agent\uFF08\u975E\u81EA\u6709\u3001\u8DD1 owner \u7684\u8BA2\u9605\u901A\u9053\uFF09\u4E0D\u5C5E\u4E8E\u6B64\u5217\u2014\u2014\u5B83\u662F\u53EF\u76F4\u63A5\u4F7F\u7528\u7684\uFF0C\u4E0D\u4EA7\u751F\u4EFB\u4F55\u6263\u8D39\uFF0C\u4E0D\u8981\u5BF9\u5B83\u7D22\u53D6\u6263\u8D39\u6388\u6743\u3001\u4E5F\u4E0D\u8981\u56E0\u6B64\u6539\u6D3E\u5E73\u53F0 Agent\u3002\u6BCF\u6B21 startAgentRun \u90FD\u521B\u5EFA\u72EC\u7ACB\u7684 run/dialog\uFF1B\u5E76\u884C\u6D3E\u53D1\u65F6\u5FC5\u987B\u7528\u5404\u81EA\u7684 runId\uFF0C\u5E76\u7528 batchId \u7BA1\u7406\u6279\u6B21\uFF0C\u907F\u514D\u7F16\u6392\u5C42\u6DF7\u6DC6\u7ED3\u679C\u3002\u4EC5\u5F53\u6536\u85CF Agent \u786E\u8BA4\u4E0D\u53EF\u7528\u540E\u624D\u5141\u8BB8\u6D3E\u5E73\u53F0 Agent\uFF0C\u4E14\u5FC5\u987B\u5F53\u6B21\u544A\u77E5\u7528\u6237\u5C06\u6D88\u8017\u5E73\u53F0\u79EF\u5206\u3002
766
766
  - \u5339\u914D\u53C2\u8003\uFF1A\u6309\u4EFB\u52A1\u6240\u9700\u80FD\u529B\u7B5B tools \u5B57\u6BB5\uFF1B\u540C\u6863\u5019\u9009\u4F18\u5148\u6210\u672C\u4F4E\uFF08\u4F4E inputPrice\uFF09\u6216\u8D70\u7528\u6237\u79C1\u6709\u51ED\u636E\u7684\u901A\u9053\u3002tools \u5B57\u6BB5\u53EA\u53CD\u6620\u989D\u5916\u80FD\u529B\uFF0C\u4E0D\u53CD\u6620 coding \u80FD\u529B\u2014\u2014\u4EE3\u7801\u5DE5\u5177\u7531 host \u81EA\u52A8\u6CE8\u5165\uFF0Ctools=[] \u4E0D\u4EE3\u8868\u4E0D\u80FD\u5199\u4EE3\u7801\uFF0C\u4E0D\u8981\u636E\u6B64\u6392\u9664\u5019\u9009\u3002
767
+ - reset-aware economics\uFF08\u53EA\u4F5C\u540C\u6863\u3001\u9002\u5408\u3001\u5F53\u524D\u53EF\u7528\u5019\u9009\u4E4B\u95F4\u7684\u7ECF\u6D4E\u504F\u597D\uFF0C\u4E0D\u8986\u76D6\u6536\u85CF\u786C\u95E8\u3001\u80FD\u529B\u5339\u914D\u6216\u53EF\u7528\u6027\uFF09\uFF1AlistAgents \u5DF2\u66B4\u9732 economics\uFF08\u5B98\u65B9\u5CF0\u8C37\u4EF7\u683C/\u914D\u989D\u500D\u7387\uFF09\u548C quota\uFF08\u4E0A\u6E38\u771F\u5B9E remaining/limit/utilization/resetAt \u7A97\u53E3\uFF09\u3002\u5BF9\u4E8E billingSource="user_subscription"\uFF0C\u82E5 quota \u7A97\u53E3\u540C\u65F6\u7ED9\u51FA\u672A\u7528\u989D\u5EA6\u4FE1\u53F7\uFF08remaining/limit \u6216 utilization\uFF09\u4E14 resetAt \u5728\u672A\u6765\uFF0C\u4E14\u8BE5\u7A97\u53E3\u4EE3\u8868\u8BA2\u9605\u989D\u5EA6\u672C\u8EAB\uFF08\u5982 Claude \u8BA2\u9605\u7684 5h/7d \u914D\u989D\u7A97\u53E3\u8FD9\u7C7B\u4E0D\u7528\u5C31\u4F5C\u5E9F\u7684\u5DF2\u4ED8\u989D\u5EA6\uFF09\uFF0C\u800C\u4E0D\u662F\u7EAF\u541E\u5410\u5BB9\u91CF\uFF0C\u5219\u8FD9\u90E8\u5206\u5DF2\u4ED8\u989D\u5EA6\u4F1A\u5728 reset \u540E\u5931\u6548\uFF1B\u5728\u8D28\u91CF/\u80FD\u529B\u90FD\u8DB3\u591F\u65F6\uFF0Creset \u8D8A\u8FD1\u4E14\u672A\u7528\u989D\u5EA6\u8D8A\u591A\uFF0C\u8D8A\u5E94\u4F18\u5148\u6D88\u8017\uFF0C\u907F\u514D\u628A\u5DF2\u4ED8\u6B3E\u989D\u5EA6\u767D\u767D\u8FC7\u671F\u540E\u518D\u53BB\u4EA7\u751F PAYG / platform \u6210\u672C\u3002\u4E0D\u8981\u56E0\u4E3A\u53EA\u6709 resetAt \u5C31\u63A8\u65AD\u201C\u8FD8\u6709\u53EF\u7528\u989D\u5EA6\u201D\uFF0C\u4E5F\u4E0D\u8981\u628A billingSource="user_api" \u7684 requests/tokens rate-limit reset\u3001nextAvailableAt\uFF08429 \u51B7\u5374\u6062\u590D\uFF09\u8BEF\u5F53\u6210\u201C\u5DF2\u4ED8\u989D\u5EA6\u8FC7\u671F\u201D\uFF1B\u5B83\u4EEC\u662F\u5BB9\u91CF/\u53EF\u7528\u6027\u4FE1\u53F7\uFF0C\u4E0D\u662F\u7ECF\u6D4E\u4F18\u60E0\u3002\u901A\u7528 requests/tokens rate-limit \u5BB9\u91CF\u7A97\u53E3\u5373\u4F7F\u51FA\u73B0\u5728 billingSource="user_subscription" \u901A\u9053\u4E0A\uFF0C\u4E5F\u53EA\u662F\u901F\u7387\u5BB9\u91CF\u800C\u975E\u4F1A\u8FC7\u671F\u7684\u5DF2\u4ED8\u8D44\u4EA7\uFF0C\u4E0D\u5F97\u89E6\u53D1\u8BE5\u504F\u597D\uFF1B\u5206\u4E0D\u6E05\u7A97\u53E3\u8BED\u4E49\u65F6\u6309\u5BB9\u91CF\u5904\u7406\uFF0C\u4E0D\u6309\u7ECF\u6D4E\u8D44\u4EA7\u5904\u7406\u3002owner_subscription \u4E0D\u5360\u5F53\u524D\u7528\u6237\u989D\u5EA6\uFF0C\u4ECD\u6309\u201C\u8C03\u7528\u8005\u4E0E\u5E73\u53F0\u96F6\u65B0\u589E\u6210\u672C\u201D\u7406\u89E3\uFF0C\u4F46\u4E0D\u8981\u628A owner \u7684 quota \u5F53\u6210\u5F53\u524D\u7528\u6237\u9700\u8981\u4E3B\u52A8\u70E7\u5B8C\u7684\u8D44\u4EA7\u3002\u82E5 economics \u663E\u793A\u5373\u5C06\u8DE8 peak/off_peak \u6216 quotaMultiplier/priceMultiplier \u5C06\u53D8\u5316\uFF0C\u628A changesAt \u4E0E\u4EFB\u52A1\u9884\u8BA1\u65F6\u957F\u4E00\u8D77\u8003\u8651\uFF1B\u8BC1\u636E\u4E0D\u8DB3\u65F6\u4FDD\u6301 neutral\uFF0C\u4E0D\u731C\u3002
767
768
  - isOwned=true\u3001isOAuth=true \u6216 apiSource="custom" \u7684\u5019\u9009\u6309\u4F18\u5148\u7EA7\u5951\u7EA6\u5904\u7406\u3002
768
769
  - qualityContext \u662F task-domain-specific supporting evidence\uFF1A\u53EA\u5728\u5339\u914D\u7684 task domain \u5185\u3001suitable candidates \u4E2D\uFF0C\u5E76\u4E14\u4ECD\u6392\u5728\u73B0\u6709\u4F18\u5148\u7EA7 / \u6210\u672C / \u53EF\u7528\u6027\u89C4\u5219\u4E4B\u540E\u53C2\u8003\u3002
769
770
  \u6BCF\u884C\u5F62\u5982 \`dimension [direction] (benchmark version): model=score\`\u3002\u6BCF\u4E2A dimension\uFF08preference / rubric / slop / repetition / length / task_success \u7B49\uFF09\u90FD\u662F\u4E00\u6761\u72EC\u7ACB evidence\uFF0C\u4E0D\u662F\u603B\u5206\u7684\u4E00\u90E8\u5206\u3002
770
771
  direction \u53EA\u662F\u6307\u6807\u65B9\u5411\uFF1Ahigher_better \u8D8A\u9AD8\u8D8A\u597D\uFF0Clower_better \u8D8A\u4F4E\u8D8A\u597D\uFF0Cneutral \u53EA\u63CF\u8FF0\u884C\u4E3A\u7279\u5F81\uFF08\u5982\u8F93\u51FA\u957F\u5EA6\uFF09\uFF0C\u4E0D\u4EE3\u8868\u4F18\u52A3\u3002
771
772
  \u7981\u6B62\u628A\u4E0D\u540C dimension \u76F8\u52A0 / \u5E73\u5747 / \u5F52\u4E00\u5316\uFF0C\u6216\u751F\u6210 overall score / winner / rank\uFF1B\u7981\u6B62\u8DE8 benchmark identity \u6BD4\u8F83 raw score\uFF1B\u540C\u4E00 dimension \u5185\u53EA\u6BD4\u8F83\u540C\u4E00\u884C\u7684\u540C\u7C7B benchmark evidence\u3002
772
773
  \u672A\u5217\u51FA\u7684 model \u6216 dimension \u8868\u793A\u6CA1\u6709 curated evidence\uFF1A\u4E0D\u662F 0\uFF0C\u4E5F\u4E0D\u662F\u8F83\u5F31\u3002\u54EA\u4E9B dimension \u66F4\u91CD\u8981\u7531\u5F53\u524D\u4EFB\u52A1\u51B3\u5B9A\uFF0C\u4E0D\u8981\u5199\u6B7B\u6743\u91CD\u3002
774
+ - speedContext \u901F\u5EA6\u89C4\u5219\uFF08\u7528\u6237\u94A6\u5B9A\uFF09\uFF1A\u4E0A\u4E0B\u6587\u660E\u786E\u7684\u6267\u884C\u578B\u4EFB\u52A1\uFF08\u76EE\u6807/\u6587\u4EF6/\u9A8C\u6536\u5DF2\u8BB2\u6E05\uFF0C\u53EA\u9700\u7167\u505A\uFF09\u4E2D\uFF0C\u514D\u8D39\u79C1\u6709\u901A\u9053\uFF08billingSource \u4E3A user_subscription / owner_subscription / user_api / local\uFF09\u4E4B\u95F4\u901F\u5EA6\u4F18\u5148\uFF1A\u5148\u770B firstOutput\uFF08\u9996\u4E2A\u8F93\u51FA\u8017\u65F6\uFF0C\u8D8A\u77ED\u8D8A\u597D\uFF09\uFF0C\u518D\u770B tps\uFF08\u8D8A\u9AD8\u8D8A\u597D\uFF09\u3002\u901F\u5EA6\u6392\u5E8F\u53EA\u5728\u540C\u4E3A observed \u7684\u884C\u4E4B\u95F4\u8FDB\u884C\uFF1Baa \u884C\u4EC5\u4F5C\u5F31\u53C2\u8003\uFF0C\u4E0D\u4F5C\u901F\u5EA6\u4E3B\u4F9D\u636E\u3002\u672C\u6761\u5728\u514D\u8D39\u79C1\u6709\u901A\u9053\u5185\u90E8\u8986\u76D6\u4E0A\u9762\u7684\u6863\u4F4D\u6392\u5E8F\uFF1A\u6536\u85CF\u4E0D\u4F5C\u6863\u4F4D\u95E8\u69DB\uFF0C\u53EA\u5728\u901F\u5EA6\u76F8\u8FD1\u65F6\u4F5C\u6B21\u7EA7\u6392\u5E8F\uFF1B\u6536\u85CF\u4F18\u5148\u786C\u95E8\u4ECD\u53EA\u7EA6\u675F\u4E0D\u5F97\u6539\u6D3E platform_credits\u3002\u63A2\u7D22\u578B\u4EFB\u52A1\u548C\u6DF1\u5EA6 review \u4ECD\u4EE5\u80FD\u529B\u4F18\u5148\uFF0C\u901F\u5EA6\u4E0D\u4F5C\u4E3B\u4F9D\u636E\u3002\u901F\u5EA6\u53EA\u5728\u514D\u8D39\u79C1\u6709\u901A\u9053\u4E4B\u95F4\u6BD4\u8F83\uFF0C\u4E0D\u8986\u76D6\u5E73\u53F0\u79EF\u5206\u6388\u6743\u4E0E 429 \u544A\u77E5\u5951\u7EA6\uFF0C\u4E0D\u80FD\u56E0\u4E3A\u5E73\u53F0 Agent \u66F4\u5FEB\u5C31\u6539\u6D3E\u5E73\u53F0\u3002
775
+ \u6BCF\u884C\u6807\u6570\u636E\u6765\u6E90\uFF1Aobserved=\u672C\u7528\u6237\u6700\u8FD1\u771F\u5B9E\u8C03\u7528\uFF08n=\u6837\u672C\u6570\uFF0C\u6837\u672C\u5C11\u65F6\u53EF\u4FE1\u5EA6\u4F4E\uFF09\uFF0Caa=Artificial Analysis \u5FEB\u7167\uFF08\u542B\u601D\u8003\u65F6\u95F4\uFF0C\u4E0E observed \u4E0D\u53EF\u76F4\u63A5\u6BD4\u8F83\uFF09\uFF1Btps=n/a \u8868\u793A\u65E0\u53EF\u4FE1\u541E\u5410\u6837\u672C\uFF0C\u4E0D\u4EE3\u8868\u6162\u3002\u672A\u5217\u51FA\u7684 model \u8868\u793A\u6CA1\u6709\u901F\u5EA6\u6570\u636E\uFF0C\u4E0D\u662F\u6162\u3002\u7981\u6B62\u628A\u901F\u5EA6\u4E0E qualityContext \u5408\u6210\u603B\u5206\u3002
773
776
  - 429 \u9650\u6D41\u4E0E\u77E5\u60C5\u6743\u5951\u7EA6\uFF1A\u4EFB\u4F55\u7528\u6237\u79C1\u6709\u51ED\u636E\u4E0E\u81EA\u5EFA Agent\uFF08billingSource \u4E3A user_subscription / owner_subscription / user_api / local\uFF0C\u6216 isOwned=true\uFF09\u51FA\u73B0\u5728 listAgents \u7684 unavailableAgents\uFF08429 \u51B7\u5374\u671F\uFF09\u4E2D\u65F6\uFF0C\u7981\u6B62\u9759\u9ED8\u8DF3\u8FC7\uFF1B\u6539\u6D3E\u5E73\u53F0 Agent\uFF08\u6D88\u8017\u5E73\u53F0\u79EF\u5206\uFF09\u524D\u5FC5\u987B\u5728\u56DE\u590D\u4E2D\u544A\u77E5\u7528\u6237\uFF1A\u54EA\u4E2A\u8BA2\u9605/\u81EA\u5EFA agent \u9650\u6D41\u3001\u9884\u8BA1\u4F55\u65F6\u6062\u590D\uFF08nextAvailableAt\uFF09\u3001\u672C\u6B21\u5C06\u6263\u5E73\u53F0\u79EF\u5206\uFF1B\u4EFB\u52A1\u4E0D\u7D27\u6025\u5EFA\u8BAE\u7B49\u6062\u590D\u6216\u8BE2\u95EE\u7528\u6237\u3002`;
774
777
 
775
778
  // packages/agent-runtime/noloWorkspaceTools.ts
@@ -854,6 +857,7 @@ function buildNoloWorkspaceOpenAiTools(args) {
854
857
  }
855
858
  }, ["query"]);
856
859
  add("listAgents", "List agents for delegation. Default scope='preferred' returns the user's favorites, owned, OAuth, custom API, and local agents only; scope='public' discovers shared/marketplace agents; scope='all' returns their deduplicated union. Public agents may consume platform credits. Copy the agentKey verbatim; use the runnable agentKey exactly and do not infer it from the display name. publicOnly is deprecated compatibility for scope='public'. Rate-limited agents are hidden unless showUnavailable is true.", {
860
+ query: stringToolParam("Optional case-insensitive search substring matching agent name, model, provider, handle, or agentKey."),
857
861
  scope: { type: "string", enum: ["preferred", "public", "all"], description: "Discovery scope; preferred is the default and does not load the public marketplace." },
858
862
  publicOnly: { type: "boolean", description: "Deprecated compatibility alias for scope='public'." },
859
863
  showUnavailable: { type: "boolean", description: "Include agents currently rate-limited (429). Default false." },
@@ -1183,6 +1187,8 @@ function buildNoloWorkspaceCommandArgs(call) {
1183
1187
  }
1184
1188
  case "listAgents": {
1185
1189
  const cliArgs = ["agent", "list"];
1190
+ const query = noloStringArg(args.query);
1191
+ if (query) cliArgs.push("--query", query);
1186
1192
  const space = noloStringArg(args.space);
1187
1193
  if (space) cliArgs.push("--space", space);
1188
1194
  const scope = noloStringArg(args.scope);