nolo-cli 0.98.0-alpha.3 → 0.98.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 (205) hide show
  1. package/README.md +1 -1
  2. package/{_executeModel-MA3D2J4W.js → _executeModel-GJK4ZVU6.js} +74 -67
  3. package/action-PNPQLJHG.js +20 -0
  4. package/{addContentAction-O7R66HEX.js → addContentAction-RBOUD7SJ.js} +12 -11
  5. package/{addDialogAgentAction-74OA7KYP.js → addDialogAgentAction-IODCR6TB.js} +18 -19
  6. package/{agentDeleteCommand-FHUJH5X4.js → agentDeleteCommand-GHRF6CH5.js} +47 -42
  7. package/{agentEmailCommands-KNYBWNMA.js → agentEmailCommands-O5BTHYZK.js} +97 -87
  8. package/agentListCommands-3REEM63V.js +742 -0
  9. package/{agentMachineCommands-N62I3D5Q.js → agentMachineCommands-2GW3CV7Q.js} +48 -43
  10. package/{agentProviderCommands-GNPTL5XR.js → agentProviderCommands-IRNZXVGE.js} +1 -1
  11. package/{agentPullCommand-O5MPVJ5E.js → agentPullCommand-B4T2DJ5H.js} +1 -1
  12. package/agentRecordCommands-WYQODWZE.js +138 -0
  13. package/agentRunCommand-KAN65WPY.js +167 -0
  14. package/{agentRunControl-AVJR4JW4.js → agentRunControl-3HWA2LLQ.js} +2 -2
  15. package/{agentRuntimeLocal-VXZSDIGT.js → agentRuntimeLocal-IOFBNVIL.js} +48 -39
  16. package/{agentSlice-65ETD734.js → agentSlice-I45M32KO.js} +14 -13
  17. package/{appDeleteCommands-PDZ7HQYH.js → appDeleteCommands-SFS6IZEM.js} +46 -41
  18. package/{appDeployCommands-KLLW32YA.js → appDeployCommands-YZQESVRQ.js} +46 -41
  19. package/{appDeployStatusCommands-IPNJ445T.js → appDeployStatusCommands-FKUUDCKP.js} +46 -41
  20. package/{appGetCommands-QA57XGXS.js → appGetCommands-QUE7OQZC.js} +46 -41
  21. package/{appListCommands-YBTAUFZS.js → appListCommands-QEETFKMH.js} +46 -41
  22. package/{authCommand-F4EFRRX6.js → authCommand-NHDLY3IB.js} +118 -24
  23. package/{authCommands-RGOGCPP6.js → authCommands-UDBJVSZU.js} +7 -5
  24. package/{builtinSkillRegistry-FUAVTRVZ.js → builtinSkillRegistry-MAR5LPAC.js} +10 -8
  25. package/{chromeCommands-FZYAU75D.js → chromeCommands-K27J4OVZ.js} +124 -28
  26. package/{chromeOpsCommands-62P2Q2YB.js → chromeOpsCommands-IXRLN57H.js} +4 -3
  27. package/{chunk-6OZ36FXI.js → chunk-27ONFIEY.js} +22 -4
  28. package/{chunk-JEDZAO7L.js → chunk-2SYTUTLI.js} +257 -37
  29. package/{chunk-53HEEOTT.js → chunk-2WJ57RJA.js} +83 -16
  30. package/{chunk-OIVSQH2O.js → chunk-3BXNTXYI.js} +299 -5
  31. package/{chunk-ABQYVJBJ.js → chunk-46Y5D2BZ.js} +5 -5
  32. package/{chunk-EYAQT56M.js → chunk-4DPP773Q.js} +2 -2
  33. package/{chunk-H62HCIUP.js → chunk-4FFUDT6D.js} +24 -21
  34. package/chunk-4LCOCOR5.js +50 -0
  35. package/{chunk-2GRGFCF6.js → chunk-4VJAC32I.js} +2 -1
  36. package/{chunk-IIVGDG4I.js → chunk-4YSOUKUR.js} +13 -7
  37. package/{chunk-MC4XLIJ7.js → chunk-523DITKR.js} +1 -1
  38. package/{chunk-FSX24MR3.js → chunk-5AUJB66Z.js} +550 -515
  39. package/{chunk-E4MARS3Q.js → chunk-5GVBDNTO.js} +1 -1
  40. package/chunk-5J3PYNUP.js +255 -0
  41. package/chunk-5MMAK75Q.js +15 -0
  42. package/{chunk-JPGCXHNM.js → chunk-5OA5HMTL.js} +1 -1
  43. package/{chunk-42V6BK2E.js → chunk-62IL3KQV.js} +4 -34
  44. package/{chunk-3BMYXEUW.js → chunk-6O4IK4V2.js} +1 -1
  45. package/{chunk-D2QT5FW4.js → chunk-6XDD7N7P.js} +47 -67
  46. package/{chunk-GQBOR3G6.js → chunk-7KVZ5LDQ.js} +2 -2
  47. package/{chunk-DNCEALKX.js → chunk-7MMSLEPA.js} +22 -29
  48. package/chunk-A4SQRTZ6.js +15 -0
  49. package/{chunk-7S4YWN7P.js → chunk-ADBZWMFB.js} +4 -4
  50. package/chunk-AGIM7IMJ.js +147 -0
  51. package/{chunk-5UTFL4QJ.js → chunk-AOTBKDRK.js} +7 -0
  52. package/{chunk-Q554LLSI.js → chunk-AUDNYVRC.js} +1 -1
  53. package/{chunk-GZBATRJA.js → chunk-B2DEZY6J.js} +20 -11
  54. package/chunk-BMQ2MJUK.js +153 -0
  55. package/{chunk-6YTOJY35.js → chunk-BZ7NPA6G.js} +35 -2
  56. package/chunk-C4DVDM72.js +13536 -0
  57. package/chunk-CHOZJMJS.js +78 -0
  58. package/{chunk-ACTMNVHM.js → chunk-CYSYR67N.js} +1 -1
  59. package/{chunk-GBRG75BQ.js → chunk-D2MDMY2M.js} +1 -0
  60. package/chunk-DZ7R5V3Y.js +164 -0
  61. package/{chunk-3VNWWVKB.js → chunk-E3YWHWCR.js} +50 -18
  62. package/{chunk-V4MJDUSR.js → chunk-E73ON47R.js} +2 -2
  63. package/{chunk-UY2NBS4V.js → chunk-EIFYNGU4.js} +24 -5
  64. package/{chunk-KQ4ONNQD.js → chunk-EKPKW6RM.js} +155 -8
  65. package/{chunk-TRV2MIDW.js → chunk-EXAJ6DCR.js} +1 -0
  66. package/{chunk-HJUYAD4A.js → chunk-FJ5BGMNM.js} +5 -5
  67. package/{chunk-2F7RJC6L.js → chunk-FOXQ7BAB.js} +1 -1
  68. package/{chunk-TDRTS7QW.js → chunk-FY7DCYW7.js} +88 -17
  69. package/{chunk-J4MOO56S.js → chunk-GARACBQB.js} +10 -2
  70. package/{chunk-6VFARHZW.js → chunk-GDFA73QZ.js} +934 -1091
  71. package/chunk-GMZLP5DV.js +82 -0
  72. package/{chunk-FDTR4QJ6.js → chunk-H6A6X4EK.js} +32 -1
  73. package/{chunk-DVINR3PL.js → chunk-HDLLCBRF.js} +1 -1
  74. package/{chunk-QOKAKDPE.js → chunk-HIM3FCLF.js} +0 -1
  75. package/{chunk-ONXOABJR.js → chunk-HNGRBWYF.js} +3 -0
  76. package/{chunk-VLTIYV3X.js → chunk-HP57OUJO.js} +4 -4
  77. package/{chunk-AD2L6YCC.js → chunk-I76SDF7A.js} +10 -10
  78. package/{chunk-PELKTR62.js → chunk-I7BCBNWZ.js} +24 -77
  79. package/{chunk-GPCZ7UXG.js → chunk-K6U4NKFJ.js} +1 -1
  80. package/{chunk-4OEFYTWL.js → chunk-LDCAFLXD.js} +64 -48
  81. package/{chunk-SNPMM7H3.js → chunk-LNVJHIGA.js} +18 -20
  82. package/{chunk-LS2ZANRJ.js → chunk-LOCNXNOU.js} +1 -1
  83. package/{chunk-5H7KJX7J.js → chunk-LQ4PDQCI.js} +5 -5
  84. package/{chunk-GABFWSOQ.js → chunk-M33GWZIZ.js} +67 -45
  85. package/{chunk-PUOC4YRO.js → chunk-M7VLQGQP.js} +11 -0
  86. package/chunk-NHDMQZJM.js +7881 -0
  87. package/{chunk-BFU6C242.js → chunk-NMFV26UG.js} +1 -1
  88. package/{chunk-L5UXH3B2.js → chunk-NNCYNBYV.js} +22 -6
  89. package/{chunk-FZGV4FGK.js → chunk-NUHHBEJC.js} +378 -187
  90. package/chunk-NWENLDMM.js +42 -0
  91. package/{chunk-76WEAXJB.js → chunk-NZWAO6LH.js} +20 -17
  92. package/chunk-OCZKATRC.js +129 -0
  93. package/{chunk-N2WELJE7.js → chunk-OU36O6OR.js} +23 -28
  94. package/chunk-OW4APERY.js +870 -0
  95. package/{chunk-KQHGZWSV.js → chunk-OXME3PEE.js} +1 -1
  96. package/{chunk-TVYSVSA2.js → chunk-P5L7VVMT.js} +11 -9
  97. package/{chunk-TOP2VXOR.js → chunk-PCF3QU5Q.js} +5 -5
  98. package/{chunk-WV42OMV7.js → chunk-PTDYOADJ.js} +8 -8
  99. package/{chunk-6D6VBVEW.js → chunk-SNMQMOD2.js} +80 -14
  100. package/{chunk-BYMV6QZG.js → chunk-TNIX77YM.js} +4 -0
  101. package/{chunk-Z77CRGTW.js → chunk-TVCAR26G.js} +1 -1
  102. package/chunk-TY3TIUJK.js +89 -0
  103. package/{chunk-I3TQJXQ7.js → chunk-U3C3IA32.js} +9 -2
  104. package/{chunk-RG6JBBX5.js → chunk-U7XXEI5R.js} +166 -13
  105. package/{chunk-UZGQNTVW.js → chunk-UA324D4O.js} +8 -6
  106. package/chunk-UJXNKP5V.js +760 -0
  107. package/{chunk-UKZDAFYT.js → chunk-UM4PH574.js} +6 -10
  108. package/{chunk-BLJWCTRL.js → chunk-UVKDJUTL.js} +3 -3
  109. package/{chunk-ZCYXJSTU.js → chunk-V5OWQOJZ.js} +19 -88
  110. package/{chunk-YQTQQX2H.js → chunk-V7Y6KRAH.js} +1 -1
  111. package/{chunk-3DII57IT.js → chunk-VCAQFMVN.js} +1 -1
  112. package/{chunk-JRQFUXY7.js → chunk-VEYL5MO5.js} +99 -22
  113. package/chunk-VIWDGTDA.js +8 -0
  114. package/chunk-VJVNU77E.js +83 -0
  115. package/{chunk-UKWGR5SS.js → chunk-VY6VFGKR.js} +194 -1144
  116. package/{chunk-2FA3ITSX.js → chunk-W3RFFFFF.js} +873 -227
  117. package/{chunk-BP4XNZRM.js → chunk-W72ISAKC.js} +4 -4
  118. package/{chunk-DHDMC6FO.js → chunk-WCGC6S77.js} +14 -9
  119. package/{chunk-QDSINZM3.js → chunk-WJ3B6FX6.js} +1 -14
  120. package/{chunk-V4I3A7DR.js → chunk-WXHAOL7Y.js} +19 -17
  121. package/{chunk-FUUHG5LT.js → chunk-X2B2C4XD.js} +1 -1
  122. package/{chunk-HVURBGF3.js → chunk-XFUBXRVI.js} +6 -6
  123. package/{chunk-O6OSWFZQ.js → chunk-XUWRURDF.js} +6 -0
  124. package/{chunk-Q67DOFOO.js → chunk-Y3PMXGLH.js} +2 -0
  125. package/{chunk-QIAVMDHY.js → chunk-YPOPJAKN.js} +4 -4
  126. package/{chunk-SH43IESU.js → chunk-YUNJN43V.js} +44 -9
  127. package/chunk-YV25TM3R.js +780 -0
  128. package/chunk-ZRAU6T47.js +56 -0
  129. package/commandRegistry-RZNZ37BN.js +833 -0
  130. package/{contentThunks-Y6FA2TCW.js → contentThunks-DF7ZNCAG.js} +36 -34
  131. package/{cooldownCommands-REAWYVTY.js → cooldownCommands-ZLEPIB4A.js} +2 -2
  132. package/{createAgentAutomationAction-JXAFQO5V.js → createAgentAutomationAction-KPMOZ53Y.js} +38 -36
  133. package/createDialogAction-I2UDVAXN.js +69 -0
  134. package/{createPageAction-GUQDPKO5.js → createPageAction-IF5JXNKV.js} +45 -42
  135. package/{chunk-ZMD2CQFC.js → cursorProvider-YGGNMVWX.js} +2496 -9897
  136. package/{dbSlice-XVWBAGYN.js → dbSlice-Q25STFGJ.js} +11 -10
  137. package/{deleteFile-YG6QMJLU.js → deleteFile-AJ2EZMHT.js} +7 -6
  138. package/{dialogCommands-JJDASFIL.js → dialogCommands-LWHIIUQD.js} +49 -45
  139. package/{dialogSlice-J2YJNE6E.js → dialogSlice-74DFPFRV.js} +40 -33
  140. package/{dist-VODFSGNG.js → dist-NJC2W7I4.js} +61 -54
  141. package/{docCreateCommands-OB3X3EQM.js → docCreateCommands-LVXQ6TNZ.js} +48 -43
  142. package/{docDeleteCommands-WMHRGF22.js → docDeleteCommands-7TVIGCLP.js} +49 -44
  143. package/{docReadCommands-NWGGLIAZ.js → docReadCommands-KYAXFLQ5.js} +47 -42
  144. package/{docStore-6KKYKAGQ.js → docStore-2JDRAYXJ.js} +16 -12
  145. package/{docUpdateCommands-3DDSOLPS.js → docUpdateCommands-TVC5KWPK.js} +48 -43
  146. package/{fetchMessages-EIU7UFFK.js → fetchMessages-I5ICDDHM.js} +5 -5
  147. package/{getPricing-LUSEABA6.js → getPricing-NMMFT3YI.js} +4 -4
  148. package/{handleSendMessageAction-A4XLEEPU.js → handleSendMessageAction-54GY3XOH.js} +110 -86
  149. package/index.js +87 -884
  150. package/{localDialogRead-BTFJ4V2I.js → localDialogRead-ZHZ3KXDM.js} +2 -2
  151. package/{localRuntimeAuthority-6IR6BBXE.js → localRuntimeAuthority-TU6OBC76.js} +9 -6
  152. package/{localRuntimeDb-SYQGUF4U.js → localRuntimeDb-VKWVOPPI.js} +1 -1
  153. package/{machineCommands-Y64KAIRW.js → machineCommands-54RNLVJE.js} +91 -81
  154. package/machineWsRunDispatch-WE3VTD57.js +154 -0
  155. package/{memberThunks-QGFLFVCI.js → memberThunks-R75S3RWP.js} +20 -18
  156. package/{models-T3SG6MJ5.js → models-ZPU5EDF4.js} +2 -2
  157. package/oauthTokenStore-ITEB663N.js +23 -0
  158. package/package.json +1 -1
  159. package/pdf-U6KSUEZZ.js +26435 -0
  160. package/processSpawn-SOAV3FEV.js +11 -0
  161. package/profileConfig-ZGOFORWV.js +43 -0
  162. package/{providerPresetApply-FG6NZ57W.js → providerPresetApply-TEBH7FDX.js} +7 -7
  163. package/{providerRegistry-757OWH3O.js → providerRegistry-CBJLNCET.js} +11 -7
  164. package/{read-COE3ZYR6.js → read-SRQMNO26.js} +7 -6
  165. package/{readDocTool-5USN4A6V.js → readDocTool-RC3JUNJ2.js} +5 -3
  166. package/{readlineWorkspace-45XNHFXU.js → readlineWorkspace-UK5M5CJI.js} +2704 -2060
  167. package/{removeDialogAgentAction-IX3MN2ZO.js → removeDialogAgentAction-46XQV5Q7.js} +21 -25
  168. package/{runAgentClientLoop-ADZRHNG6.js → runAgentClientLoop-MTI5OU2W.js} +75 -69
  169. package/{runtimeDoctorCommands-X6WDBEQX.js → runtimeDoctorCommands-PIVSBZRZ.js} +4 -4
  170. package/runtimeModeArgs-2Y7BALTO.js +31 -0
  171. package/{setDialogExtraReferencesAction-X4HCPNZL.js → setDialogExtraReferencesAction-J4V5ADQF.js} +15 -13
  172. package/{setPrimaryDialogAgentAction-4GMIQLOD.js → setPrimaryDialogAgentAction-UHHV2QZW.js} +22 -26
  173. package/{chunk-AFUORTY4.js → settingThunks-PPZZZOWN.js} +226 -940
  174. package/{skillDiscovery-CYUCJMAG.js → skillDiscovery-ZBU76COE.js} +3 -3
  175. package/{slateUtils-RIZES3PV.js → slateUtils-NGV2NMKM.js} +1 -1
  176. package/{spaceCommands-E7MQ4VU2.js → spaceCommands-446WWA73.js} +51 -46
  177. package/{streamAgentChatTurn-TUP7YO3H.js → streamAgentChatTurn-IANOWAKR.js} +199 -104
  178. package/{switchDialogAgentAction-N52LRPA3.js → switchDialogAgentAction-A2TMVGAE.js} +18 -19
  179. package/{tableCommands-O6NWHFKV.js → tableCommands-6U4BMLRR.js} +10 -10
  180. package/{toolApiClient-QVJ6HDNN.js → toolApiClient-EJT6TMFG.js} +3 -3
  181. package/tools-WZZYTUNF.js +116 -0
  182. package/{tuiSummaryLlmCaller-WFRWERGK.js → tuiSummaryLlmCaller-Q65IBDGO.js} +24 -21
  183. package/{updateCommands-2M74UL7P.js → updateCommands-4EHDLF5J.js} +3 -3
  184. package/{updateDialogTitleAction-KSWXWWFT.js → updateDialogTitleAction-Z2JTYLXD.js} +82 -44
  185. package/action-YVYQEAAV.js +0 -31
  186. package/agentListCommands-GATRXEMT.js +0 -406
  187. package/agentRecordCommands-GOC5K27T.js +0 -128
  188. package/agentRunCommand-JP2U3MQF.js +0 -155
  189. package/browser-image-compression-MFDTD7K6.js +0 -1763
  190. package/chatQueueReduxAdapter-5QOW43T4.js +0 -186
  191. package/chunk-DHDVZFNC.js +0 -18885
  192. package/chunk-M76ECQRD.js +0 -13658
  193. package/chunk-MEYIRKDN.js +0 -8967
  194. package/chunk-Q5FJJ6XI.js +0 -103
  195. package/chunk-S7Z2HMCN.js +0 -25
  196. package/chunk-Y5GCAMGP.js +0 -9
  197. package/chunk-YPREESF4.js +0 -225
  198. package/createDialogAction-O2QABXZF.js +0 -65
  199. package/machineWsRunDispatch-M366L2LJ.js +0 -144
  200. package/settingSlice-ZQZVUPKK.js +0 -204
  201. package/syncMapping-N6RGXGBW.js +0 -437
  202. package/tools-2VDNDFET.js +0 -110
  203. package/{chunk-VMFTFOWF.js → chunk-3AH7LNUB.js} +7 -7
  204. package/{chunk-X7HHHIOZ.js → chunk-Y6ROFCZO.js} +0 -0
  205. 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-UA324D4O.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-3BXNTXYI.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-Y3PMXGLH.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 }
@@ -324,11 +401,13 @@ var SUBSCRIPTION_OAUTH_PROVIDERS = [
324
401
  description: "Anthropic Subscription",
325
402
  apiKeyRef: "claude",
326
403
  provider: "anthropic",
327
- defaultModel: "claude-sonnet-5",
404
+ defaultModel: "claude-sonnet-5-5",
328
405
  defaultReasoningEffort: "high",
329
406
  modelOptions: [
407
+ { id: "claude-opus-5-5", label: "Claude Opus 5.5", hasVision: true, recommended: true },
408
+ { id: "claude-sonnet-5-5", label: "Claude Sonnet 5.5", hasVision: true },
330
409
  { id: "claude-sonnet-5", label: "Claude Sonnet 5", hasVision: true },
331
- { id: "claude-opus-5", label: "Claude Opus 5", hasVision: true, recommended: true },
410
+ { id: "claude-opus-5", label: "Claude Opus 5", hasVision: true },
332
411
  { id: "claude-opus-4-8", label: "Claude Opus 4.8", hasVision: true },
333
412
  { id: "claude-fable-5", label: "Claude Fable 5", hasVision: true }
334
413
  ]
@@ -533,13 +612,31 @@ var CUSTOM_API_KEY_TEMPLATES = [
533
612
  commercialKind: "subscription",
534
613
  accessVariant: "token_plan_endpoint"
535
614
  },
615
+ {
616
+ kind: "api_key_template",
617
+ id: "mistral-plan",
618
+ label: "Mistral \u8BA2\u9605 (Vibe/Pro)",
619
+ 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",
620
+ provider: "mistral",
621
+ baseUrl: "https://api.mistral.ai/v1",
622
+ defaultModel: "mistral-vibe-cli-latest",
623
+ modelOptions: MISTRAL_MODEL_OPTIONS,
624
+ 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",
625
+ commercialKind: "subscription",
626
+ accessVariant: "token_plan_endpoint"
627
+ },
536
628
  {
537
629
  kind: "api_key_template",
538
630
  id: "openai-api",
539
631
  label: "OpenAI API",
540
632
  provider: "openai",
541
633
  baseUrl: "https://api.openai.com/v1",
542
- defaultModel: "gpt-6-astra",
634
+ defaultModel: "gpt-6.1-sol",
635
+ modelOptions: [
636
+ { id: "gpt-6.1-sol", label: "GPT-6.1 Sol", hasVision: true, recommended: true },
637
+ { id: "gpt-6-astra", label: "GPT-6 Astra", hasVision: true },
638
+ { id: "gpt-6-luna", label: "GPT-6 Luna", hasVision: true }
639
+ ],
543
640
  commercialKind: "api",
544
641
  accessVariant: "metered_key"
545
642
  },
@@ -549,7 +646,7 @@ var CUSTOM_API_KEY_TEMPLATES = [
549
646
  label: "Anthropic API",
550
647
  provider: "anthropic",
551
648
  baseUrl: "https://api.anthropic.com",
552
- defaultModel: "claude-sonnet-5",
649
+ defaultModel: "claude-sonnet-5-5",
553
650
  apiKeyHeader: "x-api-key",
554
651
  commercialKind: "api",
555
652
  accessVariant: "metered_key"
@@ -575,6 +672,19 @@ var CUSTOM_API_KEY_TEMPLATES = [
575
672
  commercialKind: "api",
576
673
  accessVariant: "metered_key"
577
674
  },
675
+ // anthropic/claude-sonnet-5、qwen/qwen3.8-27b),不维护易腐的静态清单。
676
+ {
677
+ kind: "api_key_template",
678
+ id: "openrouter-api",
679
+ label: "OpenRouter API \u7528\u91CF\u8BA1\u8D39",
680
+ 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",
681
+ provider: "openrouter",
682
+ baseUrl: "https://openrouter.ai/api/v1",
683
+ defaultModel: "anthropic/claude-sonnet-5",
684
+ keyFormatHint: "\u5728 openrouter.ai/keys \u521B\u5EFA\uFF0C\u5F62\u5982 sk-or-\u2026",
685
+ commercialKind: "api",
686
+ accessVariant: "metered_key"
687
+ },
578
688
  // DeepSeek 模型统一改走 nolo provider(Ollama Cloud,thinking=max 快 28-49%)。
579
689
  // 现按用户选择回归:自带 Key 的 metered 通道与平台托管通道并存,互不影响。
580
690
  {
@@ -649,6 +759,21 @@ var CUSTOM_API_KEY_TEMPLATES = [
649
759
  defaultModel: "MiniMax-Text-01",
650
760
  commercialKind: "api",
651
761
  accessVariant: "metered_key"
762
+ },
763
+ // Together AI 平台:用户自带 Key 的 metered 通道(复用 OpenAI-compatible 通道,
764
+ // apiSource:"custom",不扣平台积分)。模型 ID 为 namespaced 全 ID,直传不 remap;
765
+ // OpenAI 兼容 base_url = https://api.together.ai/v1(官方兼容文档在案)。
766
+ {
767
+ kind: "api_key_template",
768
+ id: "together-api",
769
+ label: "Together AI API \u7528\u91CF\u8BA1\u8D39",
770
+ description: "Together AI\uFF08OpenAI \u517C\u5BB9\uFF0C\u6309\u91CF\u8BA1\u8D39\uFF09",
771
+ provider: "together",
772
+ baseUrl: "https://api.together.ai/v1",
773
+ defaultModel: "meta-llama/Llama-3.3-70B-Instruct-Turbo",
774
+ modelOptions: TOGETHER_MODEL_OPTIONS,
775
+ commercialKind: "api",
776
+ accessVariant: "metered_key"
652
777
  }
653
778
  ];
654
779
  var ALL_PROVIDER_REGISTRY = [
@@ -666,6 +791,26 @@ function isCustomApiKeyTemplate(id) {
666
791
  if (!id) return false;
667
792
  return CUSTOM_API_KEY_TEMPLATES.some((p) => p.id === id);
668
793
  }
794
+ function normalizeEndpointUrl(url) {
795
+ return asTrimmedLowercaseString(url).replace(/\/+$/, "");
796
+ }
797
+ var SUBSCRIPTION_ENDPOINT_URLS = new Set(
798
+ CUSTOM_API_KEY_TEMPLATES.filter((t) => t.commercialKind === "subscription").map(
799
+ (t) => normalizeEndpointUrl(t.baseUrl)
800
+ )
801
+ );
802
+ var SUBSCRIPTION_OAUTH_APIKEY_REFS = new Set(
803
+ SUBSCRIPTION_OAUTH_PROVIDERS.map((p) => asTrimmedLowercaseString(p.apiKeyRef))
804
+ );
805
+ function isSubscriptionEndpoint(customProviderUrl) {
806
+ if (typeof customProviderUrl !== "string") return false;
807
+ const normalized = normalizeEndpointUrl(customProviderUrl);
808
+ return normalized.length > 0 && SUBSCRIPTION_ENDPOINT_URLS.has(normalized);
809
+ }
810
+ function isSubscriptionOAuthCredential(apiKeyRef) {
811
+ const ref = asTrimmedLowercaseString(apiKeyRef ?? "");
812
+ return ref.length > 0 && SUBSCRIPTION_OAUTH_APIKEY_REFS.has(ref);
813
+ }
669
814
 
670
815
  export {
671
816
  SUBSCRIPTION_OAUTH_PROVIDERS,
@@ -673,5 +818,7 @@ export {
673
818
  ALL_PROVIDER_REGISTRY,
674
819
  findProviderById,
675
820
  isSubscriptionOAuthProvider,
676
- isCustomApiKeyTemplate
821
+ isCustomApiKeyTemplate,
822
+ isSubscriptionEndpoint,
823
+ isSubscriptionOAuthCredential
677
824
  };
@@ -91,6 +91,7 @@ function createCliAuthorityBrokerSocketInvoker(options) {
91
91
  const timeout = setTimeout(() => {
92
92
  finish(() => {
93
93
  socket.destroy();
94
+ socket.unref?.();
94
95
  reject(new CliAuthorityBrokerTimeoutError(options.endpoint, timeoutMs));
95
96
  });
96
97
  }, timeoutMs);
@@ -7,18 +7,18 @@ import {
7
7
  } from "./chunk-UAD2WT54.js";
8
8
  import {
9
9
  toTimestampMs
10
- } from "./chunk-H62HCIUP.js";
10
+ } from "./chunk-4FFUDT6D.js";
11
+ import {
12
+ isTombstoneRecord
13
+ } from "./chunk-D2MDMY2M.js";
11
14
  import {
12
15
  fetchFromServer,
13
16
  getAllServers
14
- } from "./chunk-QOKAKDPE.js";
17
+ } from "./chunk-HIM3FCLF.js";
15
18
  import {
16
19
  selectIdentityToken,
17
20
  selectIdentityUserId
18
21
  } from "./chunk-SEJ5OS6F.js";
19
- import {
20
- isTombstoneRecord
21
- } from "./chunk-GBRG75BQ.js";
22
22
  import {
23
23
  __toESM
24
24
  } from "./chunk-4VNS5WPM.js";
@@ -14,7 +14,7 @@ function buildCliLocalRuntimeDbEnv(env = process.env) {
14
14
  };
15
15
  }
16
16
  async function getDefaultCliLocalRuntimeDb(options = {}) {
17
- const { getDefaultCliLocalRuntimeDb: getAuthorityBackedDb } = await import("./localRuntimeAuthority-6IR6BBXE.js");
17
+ const { getDefaultCliLocalRuntimeDb: getAuthorityBackedDb } = await import("./localRuntimeAuthority-TU6OBC76.js");
18
18
  return getAuthorityBackedDb(options);
19
19
  }
20
20
 
@@ -1,17 +1,15 @@
1
1
  import {
2
2
  listUserRecordsFromServers,
3
3
  readLiveDbRecordAfterTombstoneMerge
4
- } from "./chunk-BLJWCTRL.js";
4
+ } from "./chunk-UVKDJUTL.js";
5
5
  import {
6
6
  agentRecordHasConfiguredCredential
7
- } from "./chunk-76WEAXJB.js";
7
+ } from "./chunk-NZWAO6LH.js";
8
8
  import {
9
- deriveCredentialGroup,
10
- toSafeAgentSummary
11
- } from "./chunk-RG6JBBX5.js";
9
+ deriveCredentialGroup
10
+ } from "./chunk-U7XXEI5R.js";
12
11
  import {
13
12
  PUBLIC_AGENT_KEY_PREFIX,
14
- isOwnedAgentKey,
15
13
  ownedAgentKey,
16
14
  ownedAgentKeyPrefix,
17
15
  parseOwnedAgentId,
@@ -53,6 +51,9 @@ function normalizeListedAgent(record) {
53
51
  ...typeof record?.handle === "string" && record.handle ? { handle: record.handle } : {},
54
52
  ...typeof record?.introduction === "string" && record.introduction ? { introduction: record.introduction } : typeof record?.description === "string" && record.description ? { introduction: record.description } : {},
55
53
  ...typeof record?.provider === "string" && record.provider ? { provider: record.provider } : {},
54
+ // 仅供 resolveBillingSource 判定订阅端点(Step Plan / OpenCode Go 等),
55
+ // safe 投影不输出它。缺了它本地 agent list 会把订阅端点全报成 user_api。
56
+ ...typeof record?.customProviderUrl === "string" && record.customProviderUrl ? { customProviderUrl: record.customProviderUrl } : {},
56
57
  ...typeof record?.inputPrice === "number" && Number.isFinite(record.inputPrice) ? { inputPrice: record.inputPrice } : {},
57
58
  ...typeof record?.outputPrice === "number" && Number.isFinite(record.outputPrice) ? { outputPrice: record.outputPrice } : {},
58
59
  updatedAt: typeof record?.updatedAt === "string" || typeof record?.updatedAt === "number" ? record.updatedAt : typeof record?.createdAt === "string" || typeof record?.createdAt === "number" ? record.createdAt : typeof record?.created === "string" || typeof record?.created === "number" ? record.created : null,
@@ -67,16 +68,10 @@ function normalizeListedAgent(record) {
67
68
  ...credentialKind !== void 0 ? { credentialKind } : {},
68
69
  ...typeof record?.apiSource === "string" && record.apiSource ? { apiSource: record.apiSource } : {},
69
70
  ...typeof record?.cliProvider === "string" && record.cliProvider ? { cliProvider: record.cliProvider } : {},
70
- ...typeof record?.nextAvailableAt === "number" && Number.isFinite(record.nextAvailableAt) ? { nextAvailableAt: record.nextAvailableAt } : {}
71
+ ...typeof record?.nextAvailableAt === "number" && Number.isFinite(record.nextAvailableAt) ? { nextAvailableAt: record.nextAvailableAt } : {},
72
+ ...record?.quota && typeof record.quota === "object" && Array.isArray(record.quota.windows) ? { quota: record.quota } : {}
71
73
  };
72
74
  }
73
- function toSafeListedAgentSummary(agent, options) {
74
- const summary = toSafeAgentSummary(agent, options);
75
- if (agent.publicRecordExists === false) {
76
- delete summary.publicKey;
77
- }
78
- return summary;
79
- }
80
75
  function sortListedAgents(agents) {
81
76
  agents.sort((a, b) => {
82
77
  const ta = a.updatedAt == null ? 0 : new Date(a.updatedAt).getTime();
@@ -97,6 +92,7 @@ function parseAgentListArgs(args) {
97
92
  publicOnly: args.includes("--public-only"),
98
93
  idsOnly: args.includes("--ids-only"),
99
94
  scope: readArgValue(args, "--scope"),
95
+ query: readArgValue(args, "--query"),
100
96
  showUnavailable: args.includes("--show-unavailable"),
101
97
  // --safe 默认输出精简投影(与 server listAgents 一致,防大列表被截断);
102
98
  // --verbose 拿回完整字段集排障。
@@ -110,7 +106,7 @@ async function listLocalCachedAgents(args) {
110
106
  for (const prefix of [ownedPrefix, PUBLIC_AGENT_KEY_PREFIX]) {
111
107
  for await (const [key, value] of args.db.iterator({ gte: prefix, lte: `${prefix}\uFFFF` })) {
112
108
  if (typeof key !== "string" || !value || typeof value !== "object") continue;
113
- if (isOwnedAgentKey(key, args.userId)) {
109
+ if (key.startsWith(ownedPrefix)) {
114
110
  privateRecords.set(key, { ...value, dbKey: key });
115
111
  continue;
116
112
  }
@@ -237,14 +233,89 @@ async function decorateAgentsWithPublicStatusAcrossServers(args) {
237
233
  return args.agents;
238
234
  }
239
235
 
236
+ // packages/ai/agent/quotaSnapshot.ts
237
+ function findTightestQuotaWindow(quota, now = Date.now()) {
238
+ if (!quota || !Array.isArray(quota.windows) || quota.windows.length === 0) {
239
+ return void 0;
240
+ }
241
+ let best;
242
+ let bestScore = -Infinity;
243
+ for (const w of quota.windows) {
244
+ let score = 0;
245
+ if (typeof w.utilization === "number" && w.utilization >= 0) {
246
+ score = 500 + Math.min(w.utilization, 1) * 500;
247
+ } else if (typeof w.remaining === "number" && typeof w.limit === "number" && w.limit > 0) {
248
+ const util = Math.max(0, 1 - w.remaining / w.limit);
249
+ score = 500 + util * 500;
250
+ } else if (typeof w.resetAt === "number" && w.resetAt > now) {
251
+ score = 200;
252
+ } else if (typeof w.remaining === "number") {
253
+ score = 100;
254
+ }
255
+ if (score > bestScore) {
256
+ bestScore = score;
257
+ best = w;
258
+ }
259
+ }
260
+ return best ?? quota.windows[0];
261
+ }
262
+ function formatQuotaSummary(quota, now = Date.now(), options) {
263
+ const compact = options?.compact === true;
264
+ const planText = formatPlanLabel(quota?.plan);
265
+ const planName = typeof quota?.plan?.name === "string" ? quota.plan.name.trim() : "";
266
+ const tightest = findTightestQuotaWindow(quota, now);
267
+ if (!tightest) return compact ? planName || void 0 : planText;
268
+ const parts = [];
269
+ if (typeof tightest.utilization === "number") {
270
+ const pct = Math.round(tightest.utilization * 100);
271
+ parts.push(`${pct}%\u5DF2\u7528`);
272
+ } else if (typeof tightest.remaining === "number") {
273
+ if (typeof tightest.limit === "number") {
274
+ parts.push(`${tightest.remaining}/${tightest.limit}${tightest.unit ? ` ${tightest.unit}` : ""}`);
275
+ } else {
276
+ parts.push(`\u4F59${tightest.remaining}${tightest.unit ? ` ${tightest.unit}` : ""}`);
277
+ }
278
+ }
279
+ if (compact) {
280
+ const head = parts.length > 0 ? parts[0] : void 0;
281
+ return [planName || void 0, head].filter(Boolean).join(" \xB7 ") || void 0;
282
+ }
283
+ if (tightest.scope && tightest.scope !== "user" && tightest.scope !== "project" && tightest.scope !== tightest.unit) {
284
+ parts.push(tightest.scope);
285
+ }
286
+ if (typeof tightest.resetAt === "number" && tightest.resetAt > now) {
287
+ const diffSec = Math.round((tightest.resetAt - now) / 1e3);
288
+ if (diffSec < 60) {
289
+ parts.push(`${diffSec}s\u540E\u91CD\u7F6E`);
290
+ } else if (diffSec < 3600) {
291
+ parts.push(`${Math.round(diffSec / 60)}m\u540E\u91CD\u7F6E`);
292
+ } else if (diffSec < 86400) {
293
+ const hours = (diffSec / 3600).toFixed(1).replace(/\.0$/, "");
294
+ parts.push(`${hours}h\u540E\u91CD\u7F6E`);
295
+ } else {
296
+ const days = (diffSec / 86400).toFixed(1).replace(/\.0$/, "");
297
+ parts.push(`${days}d\u540E\u91CD\u7F6E`);
298
+ }
299
+ }
300
+ const onlyScope = parts.length === 0 || parts.length === 1 && parts[0] === tightest.scope;
301
+ if (onlyScope) return planText;
302
+ return [planText, ...parts].filter(Boolean).join(" \xB7 ");
303
+ }
304
+ function formatPlanLabel(plan) {
305
+ const name = typeof plan?.name === "string" ? plan.name.trim() : "";
306
+ if (!name) return void 0;
307
+ const credits = typeof plan?.monthlyCreditsUsd === "number" && Number.isFinite(plan.monthlyCreditsUsd) && plan.monthlyCreditsUsd > 0 ? `\u6708\u5EA6\u989D\u5EA6 $${plan.monthlyCreditsUsd}` : void 0;
308
+ return [`${name} \u5957\u9910`, credits].filter(Boolean).join(" \xB7 ");
309
+ }
310
+
240
311
  export {
241
312
  normalizeListedAgent,
242
- toSafeListedAgentSummary,
243
313
  parseAgentListArgs,
244
314
  listLocalCachedAgents,
245
315
  listRemotePublicAgents,
246
316
  listRemoteAgents,
247
317
  listRemoteAgentsAcrossServers,
248
318
  listFavoriteAgentIdsAcrossServers,
249
- decorateAgentsWithPublicStatusAcrossServers
319
+ decorateAgentsWithPublicStatusAcrossServers,
320
+ formatQuotaSummary
250
321
  };
@@ -153,6 +153,13 @@ function slateToSimplifiedMarkdown(nodes, options = {}) {
153
153
  }
154
154
 
155
155
  // packages/ai/tools/readDocTool.ts
156
+ var resolvePageReadMarkdown = (pageData) => {
157
+ const slateData = pageData.slateData;
158
+ if (Array.isArray(slateData) && slateData.length > 0) {
159
+ return slateToSimplifiedMarkdown(slateData);
160
+ }
161
+ return typeof pageData.content === "string" ? pageData.content : "";
162
+ };
156
163
  var readDocFunctionSchema = {
157
164
  name: "readDoc",
158
165
  description: [
@@ -175,7 +182,7 @@ var readPageFunctionSchema = {
175
182
  name: "readPage"
176
183
  };
177
184
  var buildReadDocResult = (pageData) => {
178
- const markdownContent = slateToSimplifiedMarkdown(pageData.slateData || []);
185
+ const markdownContent = resolvePageReadMarkdown(pageData);
179
186
  const rawData = {
180
187
  success: true,
181
188
  id: pageData.dbKey,
@@ -199,7 +206,7 @@ async function readDocFunc(args, thunkApi) {
199
206
  throw new Error(`\u65E0\u6548\u7684\u9875\u9762 ID: ${id}\u3002\u9875\u9762 ID \u901A\u5E38\u4EE5 "page-" \u5F00\u5934\u3002`);
200
207
  }
201
208
  try {
202
- const { readAction } = await import("./read-COE3ZYR6.js");
209
+ const { readAction } = await import("./read-SRQMNO26.js");
203
210
  const pageData = await readAction({ dbKey: id }, thunkApi);
204
211
  if (!pageData) {
205
212
  throw new Error(`\u672A\u627E\u5230 ID \u4E3A ${id} \u7684\u9875\u9762\u3002`);
@@ -213,6 +220,7 @@ var readPageFunc = readDocFunc;
213
220
 
214
221
  export {
215
222
  slateToSimplifiedMarkdown,
223
+ resolvePageReadMarkdown,
216
224
  readDocFunctionSchema,
217
225
  readPageFunctionSchema,
218
226
  buildReadDocResult,