nolo-cli 0.92.0-alpha.1 → 0.92.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 (175) hide show
  1. package/README.md +1 -1
  2. package/{_executeModel-SKXPDRHT.js → _executeModel-SCZL7EYW.js} +63 -61
  3. package/{action-5DATYWOM.js → action-3ZOODRBC.js} +11 -11
  4. package/{addContentAction-5OLTVWIE.js → addContentAction-IJHG2ZV7.js} +9 -9
  5. package/{addDialogAgentAction-BRGMORV4.js → addDialogAgentAction-IGFS2UBX.js} +11 -11
  6. package/{agentDeleteCommand-KIJCEDIQ.js → agentDeleteCommand-CTZYXUBY.js} +45 -43
  7. package/{agentEmailCommands-KVJQBG6I.js → agentEmailCommands-M4RKRMV5.js} +84 -79
  8. package/{agentGrantCommands-YW6PQAQ2.js → agentGrantCommands-M3XFO6EN.js} +2 -2
  9. package/{agentListCommands-S2WK34WE.js → agentListCommands-QWBMMYNO.js} +74 -81
  10. package/{agentMachineCommands-ESEVMWBG.js → agentMachineCommands-CFGNRGKC.js} +39 -37
  11. package/{agentProviderCommands-I26OTLEQ.js → agentProviderCommands-TWB6E5WD.js} +1 -1
  12. package/{agentPullCommand-GLOOXJ2E.js → agentPullCommand-HF4A42D4.js} +3 -3
  13. package/agentRecordCommands-ZTUVMJOZ.js +131 -0
  14. package/{agentRunCommand-PQ2D3MTU.js → agentRunCommand-NARA7GSD.js} +82 -76
  15. package/{agentRunControl-XLGD3UZ5.js → agentRunControl-AVJR4JW4.js} +2 -2
  16. package/{agentRuntimeLocal-ZLZCZO3C.js → agentRuntimeLocal-OKYH7XBH.js} +40 -34
  17. package/{agentSlice-JF7MQKXG.js → agentSlice-L6BEWT2Q.js} +11 -11
  18. package/{appDeleteCommands-KHSC6H42.js → appDeleteCommands-2D2R56YU.js} +39 -37
  19. package/{appDeployCommands-KCCU76AG.js → appDeployCommands-R5PAA5YI.js} +39 -37
  20. package/{appDeployStatusCommands-UBGX7463.js → appDeployStatusCommands-VHTBTS3W.js} +39 -37
  21. package/{appGetCommands-CGVGNM5J.js → appGetCommands-G35QG2QG.js} +39 -37
  22. package/{appListCommands-JUVQUOGH.js → appListCommands-YQ2PKESX.js} +39 -37
  23. package/{authCommand-ETL233F2.js → authCommand-W6I6GD3F.js} +115 -23
  24. package/{authCommands-RGOGCPP6.js → authCommands-GBIFZWD3.js} +5 -5
  25. package/{builtinSkillRegistry-PJU2R6ST.js → builtinSkillRegistry-XG6RUDWO.js} +9 -8
  26. package/{chatQueueReduxAdapter-NIJ6XFDN.js → chatQueueReduxAdapter-OINFB5SN.js} +29 -29
  27. package/{chromeCommands-FZYAU75D.js → chromeCommands-K27J4OVZ.js} +124 -28
  28. package/{chromeOpsCommands-62P2Q2YB.js → chromeOpsCommands-IXRLN57H.js} +4 -3
  29. package/{chunk-UYJKSCJ4.js → chunk-27ONFIEY.js} +22 -4
  30. package/{chunk-2HBFQM4C.js → chunk-2QX2MTNK.js} +25 -6
  31. package/{chunk-JEDZAO7L.js → chunk-2SYTUTLI.js} +257 -37
  32. package/{chunk-QTV7ZYBE.js → chunk-3BXNTXYI.js} +310 -136
  33. package/{chunk-6R425QS6.js → chunk-3IYMTWYZ.js} +22 -22
  34. package/{chunk-NTW5GWDM.js → chunk-3VNWWVKB.js} +2 -0
  35. package/{chunk-PNBZBDRM.js → chunk-4DPP773Q.js} +2 -2
  36. package/chunk-5J3PYNUP.js +255 -0
  37. package/{chunk-JPGCXHNM.js → chunk-5OA5HMTL.js} +1 -1
  38. package/{chunk-CDS4FQMP.js → chunk-5RUECWE2.js} +165 -15
  39. package/{chunk-DWUCB2A3.js → chunk-62IL3KQV.js} +4 -34
  40. package/{chunk-ZIK2FIX4.js → chunk-66MWFK6R.js} +9 -9
  41. package/{chunk-6YTOJY35.js → chunk-6D2JFXLY.js} +35 -0
  42. package/{chunk-3BMYXEUW.js → chunk-6O4IK4V2.js} +1 -1
  43. package/{chunk-NNJ4EAEH.js → chunk-6PPDYAMH.js} +7517 -1091
  44. package/{chunk-I2MX6JST.js → chunk-7KVZ5LDQ.js} +2 -2
  45. package/{chunk-Q554LLSI.js → chunk-AUDNYVRC.js} +1 -1
  46. package/{chunk-UKWGR5SS.js → chunk-AUXHZ2M5.js} +186 -397
  47. package/{chunk-TLPTMSX3.js → chunk-AVKLJP6J.js} +94 -94
  48. package/{chunk-5NHGLCPL.js → chunk-AZRHIN5B.js} +1 -1
  49. package/{chunk-5LRIZC2W.js → chunk-B7ANJQWZ.js} +2 -2
  50. package/{chunk-3QC3NGWZ.js → chunk-BDHW7EBD.js} +4 -4
  51. package/{chunk-HNUNYXYB.js → chunk-BJUDYFV5.js} +10 -2
  52. package/chunk-BMQ2MJUK.js +153 -0
  53. package/{chunk-3JIXYIXV.js → chunk-BNGW5ASC.js} +12 -2
  54. package/{chunk-2D6QK26I.js → chunk-BPCPBG2O.js} +16 -16
  55. package/{chunk-SATOEEL6.js → chunk-BTSYHR7J.js} +4 -4
  56. package/{chunk-4B3TDK3S.js → chunk-CCOXTK3I.js} +30 -7
  57. package/{chunk-LS2ZANRJ.js → chunk-CTUQJVQM.js} +1 -1
  58. package/{chunk-43WRG6QQ.js → chunk-CUBJUVQS.js} +13 -13
  59. package/chunk-CYSYR67N.js +93 -0
  60. package/{chunk-PIOIPOSY.js → chunk-D76D3RTR.js} +2 -2
  61. package/{chunk-HQCSU3DI.js → chunk-DCLMZ5TX.js} +4 -4
  62. package/{chunk-UT5NALV3.js → chunk-EFZKILX6.js} +4 -4
  63. package/{chunk-2L3O7RDP.js → chunk-EMBK4B7D.js} +9 -4
  64. package/{chunk-HVURBGF3.js → chunk-ESRMFY7G.js} +2 -2
  65. package/{chunk-ABQYVJBJ.js → chunk-ETZWFV6M.js} +1 -1
  66. package/{chunk-TRV2MIDW.js → chunk-EXAJ6DCR.js} +1 -0
  67. package/{chunk-RAYTIPJ5.js → chunk-F64B2W3R.js} +110 -34
  68. package/{chunk-S6SP3GWJ.js → chunk-FIZ5TAVE.js} +1 -1
  69. package/{chunk-MOH3ETXO.js → chunk-GA77XY7N.js} +542 -447
  70. package/{chunk-2WHQZTB7.js → chunk-GMVELWJG.js} +3 -3
  71. package/chunk-GMZLP5DV.js +82 -0
  72. package/{chunk-CJCJF5XB.js → chunk-H6A6X4EK.js} +36 -3
  73. package/{chunk-ONXOABJR.js → chunk-HNGRBWYF.js} +3 -0
  74. package/{chunk-46TSVHGZ.js → chunk-HNRASX3X.js} +8 -8
  75. package/{chunk-CPH3W5A7.js → chunk-I3TQJXQ7.js} +94 -3
  76. package/{chunk-TZB6Y4OD.js → chunk-IBQ6NJI4.js} +34 -20
  77. package/{chunk-IP2RNQU3.js → chunk-LNPYTNMG.js} +9 -5
  78. package/{chunk-TLO2X5C6.js → chunk-LNUOUGIY.js} +1 -1
  79. package/{chunk-GII32WZW.js → chunk-M2EJHDJP.js} +3 -0
  80. package/{chunk-G3V74DVM.js → chunk-MV26343G.js} +75 -18
  81. package/{chunk-7S4YWN7P.js → chunk-MX574M24.js} +1 -1
  82. package/{chunk-U7HSBX3I.js → chunk-O26PCYLS.js} +80 -13
  83. package/chunk-OCZKATRC.js +129 -0
  84. package/{chunk-YNI45YOE.js → chunk-P4U2QMT5.js} +65 -37
  85. package/chunk-P6GMCCAT.js +870 -0
  86. package/{chunk-YQPWX5EE.js → chunk-PEXU23PJ.js} +23 -76
  87. package/{chunk-7GDFU22A.js → chunk-PHINMJJZ.js} +983 -226
  88. package/{chunk-YC2MP5NP.js → chunk-Q3SKC2TQ.js} +7 -7
  89. package/{chunk-NU2SOATM.js → chunk-Q7JFHTQT.js} +3 -3
  90. package/{chunk-YNNVVLMV.js → chunk-QALRKMHF.js} +11 -10
  91. package/{chunk-T67757YH.js → chunk-QDSINZM3.js} +1 -1
  92. package/{chunk-TUEPUNFO.js → chunk-QJLEMM2V.js} +1 -1
  93. package/{chunk-FEAPBZQW.js → chunk-QL32RJFG.js} +98 -22
  94. package/{chunk-EONDQISD.js → chunk-QMQBSKUP.js} +886 -154
  95. package/{chunk-BJ7HBUL2.js → chunk-QZYL5UNG.js} +1003 -1041
  96. package/{chunk-YDEMAQEY.js → chunk-R4SQ3LGW.js} +1 -1
  97. package/{chunk-TSD5BVVP.js → chunk-RESDFLXS.js} +13 -13
  98. package/{chunk-ZKYHTHNE.js → chunk-S5XGT6GB.js} +5 -3
  99. package/{chunk-SAFZABH7.js → chunk-SV5IJK6K.js} +1 -1
  100. package/{chunk-W6MEYAGX.js → chunk-TC6TTNZW.js} +45 -45
  101. package/{chunk-BYMV6QZG.js → chunk-TNIX77YM.js} +4 -0
  102. package/{chunk-S46FYEWL.js → chunk-U7ZDIW37.js} +1 -1
  103. package/chunk-UNYJU5L6.js +780 -0
  104. package/{chunk-VUHXTHIK.js → chunk-V2AB7ULS.js} +5 -5
  105. package/{chunk-QFMFJZLO.js → chunk-V7E4PXQD.js} +1 -1
  106. package/chunk-VJVNU77E.js +83 -0
  107. package/{chunk-6D6VBVEW.js → chunk-VPFEPRME.js} +9 -9
  108. package/{chunk-EKXNV6EM.js → chunk-X5VY2LEV.js} +2 -2
  109. package/{chunk-O6OSWFZQ.js → chunk-XUWRURDF.js} +6 -0
  110. package/{chunk-Q67DOFOO.js → chunk-Y3PMXGLH.js} +2 -0
  111. package/{chunk-IMCXPAQV.js → chunk-YFIUVDQY.js} +6 -83
  112. package/{chunk-FZGV4FGK.js → chunk-YRRASA5Q.js} +268 -143
  113. package/{chunk-SH43IESU.js → chunk-YUNJN43V.js} +44 -9
  114. package/{chunk-2F7RJC6L.js → chunk-ZOVKKMF6.js} +1 -1
  115. package/commandRegistry-T4PY3XBY.js +833 -0
  116. package/{contentThunks-N7MGBLZJ.js → contentThunks-7SBK3Y7B.js} +29 -29
  117. package/{cooldownCommands-BSCH2W7P.js → cooldownCommands-ZLEPIB4A.js} +2 -2
  118. package/{createAgentAutomationAction-DNOR2HPB.js → createAgentAutomationAction-NPD23L7Y.js} +29 -29
  119. package/{createDialogAction-Y5CTGDHJ.js → createDialogAction-2JVPW2WV.js} +33 -32
  120. package/{createPageAction-HIQCWUNG.js → createPageAction-UUIPRGHK.js} +35 -35
  121. package/{dbSlice-NP52Y5TF.js → dbSlice-HFPIJT5P.js} +8 -8
  122. package/{deleteFile-YG6QMJLU.js → deleteFile-UEAD5A5Z.js} +3 -3
  123. package/{dialogCommands-RDCQ2IFS.js → dialogCommands-7JXIBGPD.js} +42 -40
  124. package/{dialogSlice-CCADNU4F.js → dialogSlice-Q2QUTMHK.js} +35 -29
  125. package/{dist-VODFSGNG.js → dist-NJC2W7I4.js} +61 -54
  126. package/{docCreateCommands-7BQO7QFJ.js → docCreateCommands-2JDSCRGB.js} +41 -39
  127. package/{docDeleteCommands-AXWDDTVX.js → docDeleteCommands-Y4XRBWKE.js} +41 -39
  128. package/{docReadCommands-NMDWZKZW.js → docReadCommands-35FY3PYU.js} +40 -38
  129. package/{docStore-RSIMI5PS.js → docStore-FWQIXF33.js} +9 -9
  130. package/{docUpdateCommands-KFIRA6WM.js → docUpdateCommands-MT7YKSP7.js} +41 -39
  131. package/{fetchMessages-EIU7UFFK.js → fetchMessages-67MEFPZR.js} +2 -2
  132. package/{getPricing-SLZYHJXY.js → getPricing-NMMFT3YI.js} +3 -3
  133. package/{handleSendMessageAction-ZIABBL3A.js → handleSendMessageAction-W33QLNXQ.js} +85 -82
  134. package/index.js +87 -884
  135. package/{localDialogRead-BTFJ4V2I.js → localDialogRead-EBRS242U.js} +2 -2
  136. package/{localRuntimeAuthority-6IR6BBXE.js → localRuntimeAuthority-5W6IJRAD.js} +6 -6
  137. package/{localRuntimeDb-SYQGUF4U.js → localRuntimeDb-3LRMNLCM.js} +1 -1
  138. package/{machineCommands-H6TGKZYD.js → machineCommands-HLEUUEKS.js} +77 -72
  139. package/{machineWsRunDispatch-YU4MGUB5.js → machineWsRunDispatch-DWBXW7XY.js} +75 -70
  140. package/{memberThunks-XJFHFZ5M.js → memberThunks-SKFZ37VS.js} +9 -9
  141. package/{models-WYXEJZAX.js → models-ZPU5EDF4.js} +2 -2
  142. package/oauthTokenStore-ITEB663N.js +23 -0
  143. package/{offlineMarxistsAgentCommand-JEWCIAWM.js → offlineMarxistsAgentCommand-HGXZV4XJ.js} +1 -1
  144. package/package.json +1 -1
  145. package/pdf-U6KSUEZZ.js +26435 -0
  146. package/processSpawn-SOAV3FEV.js +11 -0
  147. package/profileConfig-ZGOFORWV.js +43 -0
  148. package/{providerPresetApply-RWISXOW7.js → providerPresetApply-XTEXOH7X.js} +7 -7
  149. package/{providerRegistry-5KY7YV6K.js → providerRegistry-ADYDSLKR.js} +7 -7
  150. package/{read-KFAALANF.js → read-IEJLLUXY.js} +5 -5
  151. package/{readDocTool-XNMCT64I.js → readDocTool-4SPYCP2Y.js} +5 -3
  152. package/{readlineWorkspace-JTU5LTZI.js → readlineWorkspace-32ILQXZJ.js} +2398 -2019
  153. package/{removeDialogAgentAction-X3IS7JNU.js → removeDialogAgentAction-LILXTOQY.js} +14 -14
  154. package/{runAgentClientLoop-5TPQBYB6.js → runAgentClientLoop-MSCR5Y3E.js} +57 -56
  155. package/{runtimeDoctorCommands-X6WDBEQX.js → runtimeDoctorCommands-3USD722U.js} +3 -3
  156. package/runtimeModeArgs-2Y7BALTO.js +31 -0
  157. package/{setDialogExtraReferencesAction-QTV3ZJNH.js → setDialogExtraReferencesAction-LVNHLNT5.js} +10 -10
  158. package/{setPrimaryDialogAgentAction-EUUISNQ2.js → setPrimaryDialogAgentAction-DCKO5NTW.js} +14 -14
  159. package/{settingSlice-UMATY3PD.js → settingSlice-CNE75ISY.js} +10 -10
  160. package/{spaceCommands-PR6QHSEG.js → spaceCommands-UYWX63IP.js} +41 -39
  161. package/{streamAgentChatTurn-TXMNTXML.js → streamAgentChatTurn-73OAEDOJ.js} +146 -85
  162. package/{switchDialogAgentAction-HWFDQNY5.js → switchDialogAgentAction-JSYUQ5CG.js} +11 -11
  163. package/{tableCommands-O6NWHFKV.js → tableCommands-G7RV3RU3.js} +4 -4
  164. package/{toolApiClient-7PSIFQPJ.js → toolApiClient-INIQCPGY.js} +3 -3
  165. package/{tools-GEVUKUVY.js → tools-6IUC3EFI.js} +51 -50
  166. package/{tuiSummaryLlmCaller-PKZYGY3B.js → tuiSummaryLlmCaller-RVWN63CP.js} +16 -15
  167. package/{updateCommands-2M74UL7P.js → updateCommands-4EHDLF5J.js} +3 -3
  168. package/{updateDialogTitleAction-MFR3UGL5.js → updateDialogTitleAction-KCAY2OZF.js} +32 -32
  169. package/agentRecordCommands-TTYG2GYM.js +0 -126
  170. package/chunk-DMFLXNFM.js +0 -79
  171. package/chunk-Q5FJJ6XI.js +0 -103
  172. package/chunk-S7Z2HMCN.js +0 -25
  173. package/{chunk-VMFTFOWF.js → chunk-3AH7LNUB.js} +7 -7
  174. package/{chunk-X7HHHIOZ.js → chunk-Y6ROFCZO.js} +0 -0
  175. package/{db-WK5MDZVN.js → db-VQSAOWAO.js} +1 -1
@@ -9,7 +9,7 @@ import {
9
9
  platformHostedModels,
10
10
  toCnyCredits,
11
11
  zaiModels
12
- } from "./chunk-Q67DOFOO.js";
12
+ } from "./chunk-Y3PMXGLH.js";
13
13
 
14
14
  // packages/integrations/qwen/models.ts
15
15
  var qwenModels = [
@@ -420,7 +420,7 @@ var stepfunModels = [
420
420
  inputCacheHit: toCnyCredits(0.27)
421
421
  },
422
422
  provider: "stepfun",
423
- description: "\u9636\u8DC3\u661F\u8FB0\u65D7\u8230\u591A\u6A21\u6001\u63A8\u7406\u6A21\u578B\uFF0C256K \u4E0A\u4E0B\u6587\uFF0C\u9AD8\u901F\u63A8\u7406 + \u539F\u751F\u591A\u6A21\u6001 + \u5DE5\u5177\u8C03\u7528\uFF0C\u9488\u5BF9 Agent \u4E0E Coding \u6DF1\u5EA6\u4F18\u5316\u3002"
423
+ description: "\u9636\u8DC3\u661F\u8FB0\u65D7\u8230\u591A\u6A21\u6001\u63A8\u7406\u6A21\u578B\uFF0C256K \u4E0A\u4E0B\u6587\uFF0C\u539F\u751F\u56FE\u50CF+\u89C6\u9891\u7406\u89E3\uFF08\u65E0\u9700\u5916\u6302\u89C6\u89C9\u6A21\u578B\uFF09\uFF0C\u4E09\u6863 reasoning_effort\uFF08low/medium/high\uFF09\uFF0C\u5DE5\u5177\u8C03\u7528\uFF0C\u9488\u5BF9 Agent \u4E0E Coding \u6DF1\u5EA6\u4F18\u5316\uFF1B\u6743\u91CD\u5F00\u6E90\uFF08Apache 2.0\uFF09\u3002"
424
424
  },
425
425
  {
426
426
  name: "step-5-preview",
@@ -440,7 +440,7 @@ var stepfunModels = [
440
440
  inputCacheHit: toCnyCredits(0.35)
441
441
  },
442
442
  provider: "stepfun",
443
- description: "\u9636\u8DC3\u661F\u8FB0\u65B0\u4E00\u4EE3\u65D7\u8230\u591A\u6A21\u6001\u63A8\u7406\u6A21\u578B\uFF0C1M \u4E0A\u4E0B\u6587\uFF0C\u652F\u6301\u590D\u6742\u903B\u8F91\u5206\u89E3\u4E0E\u957F\u7A0B\u89C4\u5212\u3002"
443
+ description: "\u9636\u8DC3\u661F\u8FB0\u65B0\u4E00\u4EE3\u65D7\u8230\u591A\u6A21\u6001\u63A8\u7406\u6A21\u578B\uFF082026-09 \u53D1\u5E03\uFF09\uFF0C1M \u4E0A\u4E0B\u6587\uFF0C\u6587\u672C+\u56FE\u50CF+\u89C6\u9891\u8F93\u5165\uFF0C64k \u6700\u5927\u8F93\u51FA\uFF0C\u4E09\u6863 reasoning_effort\uFF0C\u652F\u6301\u590D\u6742\u903B\u8F91\u5206\u89E3\u4E0E\u957F\u7A0B\u89C4\u5212\uFF1BArtificial Analysis \u667A\u80FD\u6307\u6570 44\uFF0C\u4E3A StepFun \u7CFB\u6700\u9AD8\u3002"
444
444
  },
445
445
  // ── 旗舰语言推理 ──
446
446
  {
@@ -460,7 +460,7 @@ var stepfunModels = [
460
460
  inputCacheHit: toCnyCredits(0.14)
461
461
  },
462
462
  provider: "stepfun",
463
- description: "\u9636\u8DC3\u661F\u8FB0\u65D7\u8230\u8BED\u8A00\u63A8\u7406\u6A21\u578B\uFF0C196B \u603B\u53C2\u6570 / 11B \u6FC0\u6D3B\u53C2\u6570 MoE\uFF0C\u9AD8\u901F\u63A8\u7406\u4E0E\u5DE5\u5177\u8C03\u7528\u3002"
463
+ description: "\u9636\u8DC3\u661F\u8FB0\u65D7\u8230\u8BED\u8A00\u63A8\u7406\u6A21\u578B\uFF0C196B \u603B\u53C2\u6570 / 11B \u6FC0\u6D3B\u53C2\u6570 MoE\uFF0C\u9AD8\u901F\u63A8\u7406\u4E0E\u5DE5\u5177\u8C03\u7528\uFF1B\u6743\u91CD\u5F00\u6E90\u3002"
464
464
  },
465
465
  {
466
466
  name: "step-3.5-flash-2603",
@@ -472,13 +472,14 @@ var stepfunModels = [
472
472
  fnCall: true,
473
473
  supportsTool: true,
474
474
  supportsReasoningEffort: true,
475
+ // 官方价:输入 ¥0.7/M、缓存命中 ¥0.14/M、输出 ¥2.1/M
475
476
  price: {
476
477
  input: toCnyCredits(0.7),
477
478
  output: toCnyCredits(2.1),
478
479
  inputCacheHit: toCnyCredits(0.14)
479
480
  },
480
481
  provider: "stepfun",
481
- description: "\u9488\u5BF9\u9AD8\u9891 Agent \u573A\u666F\u4F18\u5316\uFF0CToken \u6548\u7387\u4E0E\u63A8\u7406\u901F\u5EA6\u66F4\u4F73\uFF0C\u652F\u6301 low/high reasoning_effort\u3002"
482
+ description: "\u9488\u5BF9\u9AD8\u9891 Agent \u573A\u666F\u4F18\u5316\uFF0CToken \u6548\u7387\u4E0E\u63A8\u7406\u901F\u5EA6\u66F4\u4F73\uFF0C\u652F\u6301 low/high reasoning_effort\u3002\u6CE8\u610F\uFF1AArtificial Analysis \u5DF2\u6807\u8BB0\u4E3A deprecated\uFF0C\u5B98\u65B9\u63A8\u8350\u8FC1\u79FB\u5230 step-3.7-flash\u3002"
482
483
  },
483
484
  // ── 经典视觉模型 ──
484
485
  {
@@ -490,111 +491,14 @@ var stepfunModels = [
490
491
  jsonOutput: true,
491
492
  fnCall: true,
492
493
  supportsTool: true,
494
+ // 官方价:输入 ¥2.5/M、缓存命中 ¥0.5/M、输出 ¥8/M
493
495
  price: {
494
496
  input: toCnyCredits(2.5),
495
497
  output: toCnyCredits(8),
496
498
  inputCacheHit: toCnyCredits(0.5)
497
499
  },
498
500
  provider: "stepfun",
499
- description: "\u9AD8\u54CD\u5E94\u901F\u5EA6\u89C6\u89C9\u6A21\u578B\uFF0C\u652F\u6301\u56FE\u7247\u4E0E\u6587\u6863\u7406\u89E3\u3002"
500
- },
501
- // ── 经典通用语言模型 ──
502
- {
503
- name: "step-2-16k",
504
- displayName: "Step 2 16K",
505
- hasVision: false,
506
- contextWindow: 16384,
507
- maxOutputTokens: 4096,
508
- jsonOutput: true,
509
- fnCall: true,
510
- supportsTool: true,
511
- price: { input: toCnyCredits(38), output: toCnyCredits(120) },
512
- provider: "stepfun",
513
- description: "\u5343\u4EBF\u53C2\u6570 MoE \u8BED\u8A00\u5927\u6A21\u578B\uFF0C\u9002\u5408\u903B\u8F91\u590D\u6742\u957F\u6587\u672C\u751F\u6210\u3002"
514
- },
515
- {
516
- name: "step-1-flash",
517
- displayName: "Step 1 Flash",
518
- hasVision: false,
519
- contextWindow: 8192,
520
- maxOutputTokens: 4096,
521
- jsonOutput: true,
522
- fnCall: true,
523
- supportsTool: true,
524
- price: { input: toCnyCredits(1), output: toCnyCredits(4) },
525
- provider: "stepfun"
526
- },
527
- {
528
- name: "step-1-8k",
529
- displayName: "Step 1 8K",
530
- hasVision: false,
531
- contextWindow: 8192,
532
- maxOutputTokens: 4096,
533
- jsonOutput: true,
534
- fnCall: true,
535
- supportsTool: true,
536
- price: { input: toCnyCredits(5), output: toCnyCredits(20) },
537
- provider: "stepfun"
538
- },
539
- {
540
- name: "step-1-32k",
541
- displayName: "Step 1 32K",
542
- hasVision: false,
543
- contextWindow: 32768,
544
- maxOutputTokens: 4096,
545
- jsonOutput: true,
546
- fnCall: true,
547
- supportsTool: true,
548
- price: { input: toCnyCredits(15), output: toCnyCredits(70) },
549
- provider: "stepfun"
550
- },
551
- {
552
- name: "step-1-128k",
553
- displayName: "Step 1 128K",
554
- hasVision: false,
555
- contextWindow: 131072,
556
- maxOutputTokens: 4096,
557
- jsonOutput: true,
558
- fnCall: true,
559
- supportsTool: true,
560
- price: { input: toCnyCredits(40), output: toCnyCredits(200) },
561
- provider: "stepfun"
562
- },
563
- {
564
- name: "step-1-256k",
565
- displayName: "Step 1 256K",
566
- hasVision: false,
567
- contextWindow: 262144,
568
- maxOutputTokens: 4096,
569
- jsonOutput: true,
570
- fnCall: true,
571
- supportsTool: true,
572
- price: { input: toCnyCredits(60), output: toCnyCredits(300) },
573
- provider: "stepfun"
574
- },
575
- {
576
- name: "step-1v-8k",
577
- displayName: "Step 1V 8K",
578
- hasVision: true,
579
- contextWindow: 8192,
580
- maxOutputTokens: 4096,
581
- jsonOutput: true,
582
- fnCall: true,
583
- supportsTool: true,
584
- price: { input: toCnyCredits(5), output: toCnyCredits(20) },
585
- provider: "stepfun"
586
- },
587
- {
588
- name: "step-1v-32k",
589
- displayName: "Step 1V 32K",
590
- hasVision: true,
591
- contextWindow: 32768,
592
- maxOutputTokens: 4096,
593
- jsonOutput: true,
594
- fnCall: true,
595
- supportsTool: true,
596
- price: { input: toCnyCredits(15), output: toCnyCredits(70) },
597
- provider: "stepfun"
501
+ description: "\u9AD8\u54CD\u5E94\u901F\u5EA6\u89C6\u89C9\u6A21\u578B\uFF0C\u652F\u6301\u56FE\u7247\u4E0E\u6587\u6863\u7406\u89E3\uFF1B\u5B98\u65B9\u9000\u5F79\u516C\u544A\u4E2D\u591A\u6570\u65E7\u6A21\u578B\u7684\u6307\u5B9A\u66FF\u6362\u76EE\u6807\u3002"
598
502
  }
599
503
  ];
600
504
  var stepfunStepPlanModels = [
@@ -611,7 +515,7 @@ var stepfunStepPlanModels = [
611
515
  supportsReasoningEffort: true,
612
516
  price: { input: 0, output: 0 },
613
517
  provider: "stepfun",
614
- description: "\u9636\u8DC3\u661F\u8FB0\u65B0\u4E00\u4EE3\u65D7\u8230\u591A\u6A21\u6001\u63A8\u7406\u6A21\u578B\uFF0C1M \u4E0A\u4E0B\u6587\uFF0C\u64C5\u957F\u590D\u6742\u4EFB\u52A1\u5206\u89E3\u4E0E\u591A\u6B65\u8BA1\u5212\u3002"
518
+ description: "\u9636\u8DC3\u661F\u8FB0\u65B0\u4E00\u4EE3\u65D7\u8230\u591A\u6A21\u6001\u63A8\u7406\u6A21\u578B\uFF0C1M \u4E0A\u4E0B\u6587\uFF0C\u6587\u672C+\u56FE\u50CF+\u89C6\u9891\u8F93\u5165\uFF0C\u64C5\u957F\u590D\u6742\u4EFB\u52A1\u5206\u89E3\u4E0E\u591A\u6B65\u8BA1\u5212\u3002"
615
519
  },
616
520
  {
617
521
  name: "step-3.7-flash",
@@ -625,7 +529,7 @@ var stepfunStepPlanModels = [
625
529
  supportsReasoningEffort: true,
626
530
  price: { input: 0, output: 0 },
627
531
  provider: "stepfun",
628
- description: "\u9636\u8DC3\u661F\u8FB0\u65D7\u8230\u591A\u6A21\u6001\u63A8\u7406\u6A21\u578B\uFF0C256K \u4E0A\u4E0B\u6587\uFF0C\u9AD8\u901F\u63A8\u7406 + \u539F\u751F\u591A\u6A21\u6001 + \u5DE5\u5177\u8C03\u7528\uFF0CAgent \u6DF1\u5EA6\u9002\u914D\u3002"
532
+ description: "\u9636\u8DC3\u661F\u8FB0\u65D7\u8230\u591A\u6A21\u6001\u63A8\u7406\u6A21\u578B\uFF0C256K \u4E0A\u4E0B\u6587\uFF0C\u539F\u751F\u56FE\u50CF+\u89C6\u9891\u7406\u89E3\uFF0C\u9AD8\u901F\u63A8\u7406 + \u5DE5\u5177\u8C03\u7528\uFF0CAgent \u6DF1\u5EA6\u9002\u914D\u3002"
629
533
  },
630
534
  {
631
535
  name: "step-3.5-flash",
@@ -653,31 +557,7 @@ var stepfunStepPlanModels = [
653
557
  supportsReasoningEffort: true,
654
558
  price: { input: 0, output: 0 },
655
559
  provider: "stepfun",
656
- description: "\u9488\u5BF9\u9AD8\u9891 Agent \u573A\u666F\u4F18\u5316\uFF0C\u66F4\u4F73 Token \u6548\u7387\u4E0E\u63A8\u7406\u901F\u5EA6\uFF0C\u652F\u6301 low/high \u63A8\u7406\u5F3A\u5EA6\u3002"
657
- },
658
- {
659
- name: "step-1o-turbo-vision",
660
- displayName: "Step 1o Turbo Vision",
661
- hasVision: true,
662
- contextWindow: 65536,
663
- maxOutputTokens: 8192,
664
- jsonOutput: true,
665
- fnCall: true,
666
- supportsTool: true,
667
- price: { input: 0, output: 0 },
668
- provider: "stepfun"
669
- },
670
- {
671
- name: "step-2-16k",
672
- displayName: "Step 2 16K",
673
- hasVision: false,
674
- contextWindow: 16384,
675
- maxOutputTokens: 4096,
676
- jsonOutput: true,
677
- fnCall: true,
678
- supportsTool: true,
679
- price: { input: 0, output: 0 },
680
- provider: "stepfun"
560
+ description: "\u9488\u5BF9\u9AD8\u9891 Agent \u573A\u666F\u4F18\u5316\uFF0C\u66F4\u4F73 Token \u6548\u7387\u4E0E\u63A8\u7406\u901F\u5EA6\uFF0C\u652F\u6301 low/high \u63A8\u7406\u5F3A\u5EA6\uFF1B\u5B98\u65B9\u63A8\u8350\u8FC1\u79FB\u5230 step-3.7-flash\u3002"
681
561
  },
682
562
  {
683
563
  name: "step-router-v1",
@@ -691,7 +571,7 @@ var stepfunStepPlanModels = [
691
571
  supportsReasoningEffort: true,
692
572
  price: { input: 0, output: 0 },
693
573
  provider: "stepfun",
694
- description: "\u667A\u80FD\u8DEF\u7531\u6A21\u578B\uFF0C\u81EA\u52A8\u5728 Step \u7CFB\u5217\u6A21\u578B\u95F4\u8C03\u5EA6\uFF0C\u8BA2\u9605\u53EF\u7528\u3002"
574
+ description: "\u667A\u80FD\u8DEF\u7531\u6A21\u578B\uFF0C\u6309\u4EFB\u52A1\u590D\u6742\u5EA6\u81EA\u52A8\u5728 Step \u7CFB\u5217\u6A21\u578B\u95F4\u8C03\u5EA6\uFF0C\u8BA2\u9605\u53EF\u7528\u3002"
695
575
  }
696
576
  ];
697
577
 
@@ -1308,8 +1188,18 @@ function pipe(...pipe$1) {
1308
1188
 
1309
1189
  // packages/ai/agent/createAgentSchema.ts
1310
1190
  var DEFAULT_REASONING_EFFORT = "medium";
1191
+ var REASONING_EFFORT_OPTIONS = [
1192
+ "none",
1193
+ "minimal",
1194
+ "low",
1195
+ "medium",
1196
+ "high",
1197
+ "xhigh",
1198
+ "max"
1199
+ ];
1311
1200
  var PROVIDER_REASONING_EFFORT_VALUES = {
1312
1201
  openai: ["none", "minimal", "low", "medium", "high", "xhigh", "max"],
1202
+ openrouter: ["none", "minimal", "low", "medium", "high", "xhigh", "max"],
1313
1203
  deepseek: ["low", "high", "max"],
1314
1204
  // nolo (Ollama Cloud) 支持 DeepSeek/Kimi/GLM 等 thinking 模型,
1315
1205
  // reasoning_effort 通过 OpenAI 兼容端点透传到 Ollama Cloud。
@@ -1430,7 +1320,12 @@ var oauthModel = ({ name, displayName, contextWindow, thinkingMode, maxOutputTok
1430
1320
  price: { input: 0, output: 0 }
1431
1321
  });
1432
1322
  var anthropicOAuthModels = [
1433
- // 5 代(1M + Adaptive thinking always-on;官方 max output 128k)
1323
+ // 5 代与 5.5 代(1M + Adaptive thinking always-on;官方 max output 128k)
1324
+ oauthModel({ name: "claude-opus-5-5", displayName: "Claude Opus 5.5", contextWindow: 1e6, thinkingMode: "adaptive", maxOutputTokens: 128e3 }),
1325
+ // Claude Sonnet 5.5(2026-09-28 发布):官方规格 1M + Adaptive thinking + max output 128k。
1326
+ // 注意该模型对非默认 temperature/top_p/top_k 直接 400——nolo 的 anthropicAdapter
1327
+ // 不传采样参数,不受影响。
1328
+ oauthModel({ name: "claude-sonnet-5-5", displayName: "Claude Sonnet 5.5", contextWindow: 1e6, thinkingMode: "adaptive", maxOutputTokens: 128e3 }),
1434
1329
  oauthModel({ name: "claude-fable-5", displayName: "Claude Fable 5", contextWindow: 1e6, thinkingMode: "adaptive", maxOutputTokens: 128e3 }),
1435
1330
  oauthModel({ name: "claude-opus-5", displayName: "Claude Opus 5", contextWindow: 1e6, thinkingMode: "adaptive", maxOutputTokens: 128e3 }),
1436
1331
  oauthModel({ name: "claude-sonnet-5", displayName: "Claude Sonnet 5", contextWindow: 1e6, thinkingMode: "adaptive", maxOutputTokens: 128e3 }),
@@ -1445,6 +1340,11 @@ var anthropicOAuthModels = [
1445
1340
  // haiku-4-5(官方明确 context=200k + Extended thinking)
1446
1341
  oauthModel({ name: "claude-haiku-4-5-20251001", displayName: "Claude Haiku 4.5", contextWindow: 2e5, thinkingMode: "extended" })
1447
1342
  ];
1343
+ function anthropicOAuthModelMaxOutputTokens(model) {
1344
+ if (!model) return void 0;
1345
+ const found = anthropicOAuthModels.find((m) => m.name === model);
1346
+ return typeof found?.maxOutputTokens === "number" ? found.maxOutputTokens : void 0;
1347
+ }
1448
1348
  var OAUTH_MODEL_THINKING_MODE = new Map(
1449
1349
  anthropicOAuthModels.map((m) => [m.name, m.thinkingMode])
1450
1350
  );
@@ -1878,6 +1778,259 @@ var fireworksModels = [
1878
1778
  }
1879
1779
  ];
1880
1780
 
1781
+ // packages/ai/agent/openrouterModelCapability.ts
1782
+ var VALID_EFFORTS_SET = new Set(REASONING_EFFORT_OPTIONS);
1783
+ function extractOpenRouterReasoningCapability(rawModel) {
1784
+ if (!rawModel) {
1785
+ return {
1786
+ found: false,
1787
+ supportsReasoning: false,
1788
+ supportedEfforts: []
1789
+ };
1790
+ }
1791
+ const supportedParams = rawModel.supported_parameters ?? [];
1792
+ const reasoning = rawModel.reasoning;
1793
+ const hasReasoningSupport = Boolean(reasoning) || supportedParams.includes("reasoning") || supportedParams.includes("reasoning_effort") || supportedParams.includes("include_reasoning");
1794
+ if (!hasReasoningSupport) {
1795
+ return {
1796
+ found: true,
1797
+ supportsReasoning: false,
1798
+ supportedEfforts: []
1799
+ };
1800
+ }
1801
+ const rawEfforts = reasoning?.supported_efforts ?? [];
1802
+ const supportedEfforts = rawEfforts.filter(
1803
+ (e) => VALID_EFFORTS_SET.has(e)
1804
+ );
1805
+ let defaultEffort;
1806
+ if (reasoning?.default_effort && VALID_EFFORTS_SET.has(reasoning.default_effort) && supportedEfforts.includes(reasoning.default_effort)) {
1807
+ defaultEffort = reasoning.default_effort;
1808
+ } else if (supportedEfforts.length > 0) {
1809
+ defaultEffort = supportedEfforts.includes("medium") ? "medium" : supportedEfforts[0];
1810
+ }
1811
+ return {
1812
+ found: true,
1813
+ supportsReasoning: true,
1814
+ mandatory: reasoning?.mandatory,
1815
+ supportedEfforts,
1816
+ defaultEffort
1817
+ };
1818
+ }
1819
+ var cachedModels = null;
1820
+ var CACHE_TTL_MS = 10 * 60 * 1e3;
1821
+ function getCachedOpenRouterModelReasoning(modelId) {
1822
+ const trimmed = modelId.trim().toLowerCase();
1823
+ if (!trimmed) return null;
1824
+ if (!cachedModels || Date.now() - cachedModels.timestamp >= CACHE_TTL_MS) {
1825
+ return null;
1826
+ }
1827
+ const rawModel = cachedModels.data.get(trimmed);
1828
+ if (!rawModel) return null;
1829
+ return extractOpenRouterReasoningCapability(rawModel);
1830
+ }
1831
+
1832
+ // packages/ai/agent/modelReasoningCapability.ts
1833
+ var GATEWAY_PROVIDERS = /* @__PURE__ */ new Set(["openrouter", "nolo"]);
1834
+ var THINKING_MECHANISM_PROVIDERS = /* @__PURE__ */ new Set(["anthropic", "google"]);
1835
+ var MODEL_REASONING_OVERRIDES = [
1836
+ // ---- OpenAI ----
1837
+ {
1838
+ providers: ["openai"],
1839
+ prefix: "gpt-5",
1840
+ includes: "-pro",
1841
+ efforts: ["high"],
1842
+ note: "gpt-5-pro \u7CFB\u5217\u53EA\u66B4\u9732 high \u6863\uFF08OpenAI \u6587\u6863\uFF1Apro \u53D8\u4F53\u4E0D\u53EF\u8C03\u4F4E\uFF09"
1843
+ },
1844
+ {
1845
+ providers: ["openai"],
1846
+ prefix: "o1-preview",
1847
+ supportsReasoning: false,
1848
+ note: "o1-preview \u4E0D\u63A5\u53D7 reasoning_effort \u53C2\u6570"
1849
+ },
1850
+ {
1851
+ providers: ["openai"],
1852
+ prefix: "o1-mini",
1853
+ supportsReasoning: false,
1854
+ note: "o1-mini \u4E0D\u63A5\u53D7 reasoning_effort \u53C2\u6570"
1855
+ },
1856
+ {
1857
+ providers: ["openai"],
1858
+ prefix: "o1",
1859
+ efforts: ["low", "medium", "high"],
1860
+ note: "o1 \u652F\u6301 low/medium/high\uFF0C\u65E0 none/minimal/xhigh/max"
1861
+ },
1862
+ {
1863
+ providers: ["openai"],
1864
+ prefix: "o3",
1865
+ efforts: ["low", "medium", "high"],
1866
+ note: "o3 / o3-mini \u652F\u6301 low/medium/high"
1867
+ },
1868
+ {
1869
+ providers: ["openai"],
1870
+ prefix: "o4-mini",
1871
+ efforts: ["low", "medium", "high"],
1872
+ note: "o4-mini \u652F\u6301 low/medium/high"
1873
+ },
1874
+ {
1875
+ providers: ["openai"],
1876
+ prefix: "gpt-4o",
1877
+ supportsReasoning: false,
1878
+ note: "gpt-4o \u7CFB\u5217\u975E\u63A8\u7406\u6A21\u578B"
1879
+ },
1880
+ {
1881
+ providers: ["openai"],
1882
+ prefix: "gpt-4.1",
1883
+ supportsReasoning: false,
1884
+ note: "gpt-4.1 \u7CFB\u5217\u975E\u63A8\u7406\u6A21\u578B"
1885
+ },
1886
+ {
1887
+ providers: ["openai"],
1888
+ prefix: "chatgpt-4o",
1889
+ supportsReasoning: false,
1890
+ note: "chatgpt-4o \u975E\u63A8\u7406\u6A21\u578B"
1891
+ },
1892
+ // ---- xAI / Grok ----
1893
+ {
1894
+ providers: ["xai", "grok"],
1895
+ prefix: "grok-3-mini",
1896
+ efforts: ["low", "high"],
1897
+ note: "grok-3-mini \u4EC5 low/high\uFF0C\u65E0 medium\uFF08xAI \u6587\u6863\uFF09"
1898
+ },
1899
+ {
1900
+ providers: ["xai", "grok"],
1901
+ prefix: "grok-3",
1902
+ exact: true,
1903
+ // 只匹配 grok-3 本体;grok-3-fast 等变体不被误伤
1904
+ supportsReasoning: false,
1905
+ note: "grok-3\uFF08\u975E mini\uFF09\u4E0D\u652F\u6301 reasoning_effort"
1906
+ },
1907
+ {
1908
+ providers: ["xai", "grok"],
1909
+ prefix: "grok-2",
1910
+ supportsReasoning: false,
1911
+ note: "grok-2 \u7CFB\u5217\u975E\u63A8\u7406\u6A21\u578B"
1912
+ },
1913
+ // ---- DeepSeek ----
1914
+ {
1915
+ providers: ["deepseek"],
1916
+ prefix: "deepseek-chat",
1917
+ exact: true,
1918
+ // 只匹配 deepseek-chat 本体;deepseek-chat-v3.1 是混合推理模型
1919
+ supportsReasoning: false,
1920
+ note: "deepseek-chat\uFF08V3 \u975E\u63A8\u7406\u7EBF\uFF09\u65E0\u63A8\u7406\u5F3A\u5EA6"
1921
+ },
1922
+ // ---- Kimi / Moonshot ----
1923
+ {
1924
+ providers: ["kimi", "moonshot"],
1925
+ prefix: "moonshot-v1",
1926
+ supportsReasoning: false,
1927
+ note: "moonshot-v1 \u7CFB\u5217\u975E\u63A8\u7406\u6A21\u578B"
1928
+ },
1929
+ {
1930
+ providers: ["kimi", "moonshot"],
1931
+ prefix: "kimi-k2-instruct",
1932
+ supportsReasoning: false,
1933
+ note: "kimi-k2-instruct \u975E thinking \u53D8\u4F53"
1934
+ },
1935
+ {
1936
+ providers: ["kimi", "moonshot"],
1937
+ prefix: "kimi-latest",
1938
+ supportsReasoning: false,
1939
+ note: "kimi-latest \u6307\u5411\u975E\u63A8\u7406\u5FEB\u7167"
1940
+ }
1941
+ ];
1942
+ function modelBasename(model) {
1943
+ const idx = model.lastIndexOf("/");
1944
+ return idx === -1 ? model : model.slice(idx + 1);
1945
+ }
1946
+ function matchOverride(provider, model) {
1947
+ const m = model.toLowerCase();
1948
+ const base = modelBasename(m);
1949
+ const isGateway = GATEWAY_PROVIDERS.has(provider);
1950
+ let best = null;
1951
+ let bestPrefixLen = -1;
1952
+ for (const o of MODEL_REASONING_OVERRIDES) {
1953
+ if (!isGateway && !o.providers.includes(provider)) continue;
1954
+ const hit = o.exact ? m === o.prefix || base === o.prefix : m.startsWith(o.prefix) || base.startsWith(o.prefix);
1955
+ if (!hit) continue;
1956
+ if (o.includes && !m.includes(o.includes) && !base.includes(o.includes)) {
1957
+ continue;
1958
+ }
1959
+ if (o.prefix.length > bestPrefixLen) {
1960
+ best = o;
1961
+ bestPrefixLen = o.prefix.length;
1962
+ }
1963
+ }
1964
+ return best;
1965
+ }
1966
+ function capabilityFromOpenRouterLive(live) {
1967
+ return {
1968
+ found: true,
1969
+ supportsReasoning: live.supportsReasoning,
1970
+ efforts: live.supportedEfforts,
1971
+ defaultEffort: live.defaultEffort,
1972
+ mandatory: live.mandatory,
1973
+ source: "openrouter-live"
1974
+ };
1975
+ }
1976
+ function resolveModelReasoningCapability(provider, model) {
1977
+ const p = (provider ?? "").toLowerCase();
1978
+ const m = (model ?? "").trim();
1979
+ if (THINKING_MECHANISM_PROVIDERS.has(p)) {
1980
+ return {
1981
+ found: false,
1982
+ supportsReasoning: true,
1983
+ // 有推理能力,只是走 Thinking 机制而非 effort
1984
+ efforts: [],
1985
+ source: "provider-map"
1986
+ };
1987
+ }
1988
+ if (m) {
1989
+ const override = matchOverride(p, m);
1990
+ if (override) {
1991
+ const supportsReasoning = override.supportsReasoning ?? true;
1992
+ const efforts = supportsReasoning === false ? [] : override.efforts ?? PROVIDER_REASONING_EFFORT_VALUES[p] ?? [
1993
+ "low",
1994
+ "medium",
1995
+ "high"
1996
+ ];
1997
+ return {
1998
+ found: true,
1999
+ supportsReasoning,
2000
+ efforts,
2001
+ defaultEffort: efforts.includes("medium") ? "medium" : efforts[0],
2002
+ source: "model-override"
2003
+ };
2004
+ }
2005
+ }
2006
+ const providerEfforts = PROVIDER_REASONING_EFFORT_VALUES[p];
2007
+ if (providerEfforts) {
2008
+ return {
2009
+ found: false,
2010
+ supportsReasoning: providerEfforts.length > 0,
2011
+ efforts: providerEfforts,
2012
+ source: "provider-map"
2013
+ };
2014
+ }
2015
+ return {
2016
+ found: false,
2017
+ supportsReasoning: true,
2018
+ efforts: ["low", "medium", "high"],
2019
+ source: "provider-fallback"
2020
+ };
2021
+ }
2022
+ function resolveModelReasoningCapabilityWithCache(provider, model) {
2023
+ const p = (provider ?? "").toLowerCase();
2024
+ const m = (model ?? "").trim();
2025
+ if (p === "openrouter" && m) {
2026
+ const live = getCachedOpenRouterModelReasoning(m);
2027
+ if (live?.found) {
2028
+ return capabilityFromOpenRouterLive(live);
2029
+ }
2030
+ }
2031
+ return resolveModelReasoningCapability(provider, model);
2032
+ }
2033
+
1881
2034
  // packages/ai/llm/reasoningModels.ts
1882
2035
  var REASONING_MODEL_NAMES = /* @__PURE__ */ new Set([
1883
2036
  "deepseek-flash",
@@ -1892,6 +2045,8 @@ var REASONING_MODEL_NAMES = /* @__PURE__ */ new Set([
1892
2045
  "gemini-3.1-pro-preview",
1893
2046
  "gpt-5.5-pro",
1894
2047
  "gpt-6-astra",
2048
+ "gpt-6.1-sol",
2049
+ "gpt-6-sol",
1895
2050
  "gpt-6-luna",
1896
2051
  "gpt-5.6-sol",
1897
2052
  "gpt-5.6-terra",
@@ -1912,7 +2067,12 @@ var REASONING_MODEL_NAMES = /* @__PURE__ */ new Set([
1912
2067
  "accounts/fireworks/models/glm-5p2",
1913
2068
  "zai-org/GLM-5.2-FP8"
1914
2069
  ]);
1915
- var isModelSupportReasoningEffort = (model) => REASONING_MODEL_NAMES.has(model);
2070
+ var isModelSupportReasoningEffort = (model, provider) => {
2071
+ if (provider && provider.toLowerCase() === "openrouter") {
2072
+ return true;
2073
+ }
2074
+ return REASONING_MODEL_NAMES.has(model);
2075
+ };
1916
2076
  var supportedReasoningModels = Array.from(REASONING_MODEL_NAMES);
1917
2077
  var EFFORT_ORDER = [
1918
2078
  "none",
@@ -1939,13 +2099,23 @@ function nearestSupportedEffort(effort, supported) {
1939
2099
  }
1940
2100
  return EFFORT_ORDER[best];
1941
2101
  }
1942
- function clampReasoningEffort(effort, provider) {
2102
+ function clampReasoningEffort(effort, provider, model) {
1943
2103
  if (!effort) return void 0;
1944
2104
  const normalized = effort === "off" ? "none" : effort;
1945
2105
  const providerLower = (provider ?? "").toLowerCase();
1946
- if (providerLower === "anthropic" || providerLower === "google") {
2106
+ if (THINKING_MECHANISM_PROVIDERS.has(providerLower)) {
1947
2107
  return void 0;
1948
2108
  }
2109
+ if (model) {
2110
+ const cap = resolveModelReasoningCapabilityWithCache(provider, model);
2111
+ if (cap.found) {
2112
+ if (!cap.supportsReasoning || cap.efforts.length === 0) {
2113
+ return void 0;
2114
+ }
2115
+ if (cap.efforts.includes(normalized)) return normalized;
2116
+ return nearestSupportedEffort(normalized, cap.efforts);
2117
+ }
2118
+ }
1949
2119
  const supported = PROVIDER_REASONING_EFFORT_VALUES[providerLower];
1950
2120
  if (!supported || supported.length === 0) {
1951
2121
  if (normalized === "low" || normalized === "medium" || normalized === "high") {
@@ -2003,6 +2173,8 @@ var MODEL_LOOKUP_MAP = {
2003
2173
  ...MODEL_MAP
2004
2174
  };
2005
2175
  var ANTHROPIC_MODEL_ALIASES = {
2176
+ "claude-opus-5.5": "claude-opus-5-5",
2177
+ "claude-sonnet-5.5": "claude-sonnet-5-5",
2006
2178
  "claude-sonnet-4.6": "claude-3-7-sonnet-latest",
2007
2179
  "claude-sonnet-4.5": "claude-3-5-sonnet-latest"
2008
2180
  };
@@ -2217,6 +2389,7 @@ function getApiEndpoint(agent) {
2217
2389
  }
2218
2390
 
2219
2391
  export {
2392
+ anthropicOAuthModelMaxOutputTokens,
2220
2393
  isAdaptiveThinkingModelId,
2221
2394
  qwenModels,
2222
2395
  qwenTokenPlanModels,
@@ -2226,6 +2399,7 @@ export {
2226
2399
  stepfunStepPlanModels,
2227
2400
  opencodeGoModels,
2228
2401
  DEFAULT_REASONING_EFFORT,
2402
+ resolveModelReasoningCapabilityWithCache,
2229
2403
  isModelSupportReasoningEffort,
2230
2404
  clampReasoningEffort,
2231
2405
  MODEL_LOOKUP_MAP,
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  DEFAULT_SYSTEM_AGENT_CAPABILITIES,
6
6
  noloAgentId
7
- } from "./chunk-T67757YH.js";
7
+ } from "./chunk-QDSINZM3.js";
8
8
  import {
9
9
  asRecordOrEmpty
10
10
  } from "./chunk-KX6YBIHG.js";
@@ -14,12 +14,12 @@ import {
14
14
  toTimestampMs,
15
15
  upsert,
16
16
  write
17
- } from "./chunk-YNNVVLMV.js";
17
+ } from "./chunk-QALRKMHF.js";
18
18
  import {
19
19
  createUserKey,
20
20
  createUserPreferenceKey,
21
21
  ulid
22
- } from "./chunk-VMFTFOWF.js";
22
+ } from "./chunk-3AH7LNUB.js";
23
23
  import {
24
24
  asTrimmedLowercaseString
25
25
  } from "./chunk-QSJ3HFEF.js";
@@ -29,7 +29,7 @@ import {
29
29
  createAction,
30
30
  createAsyncThunk,
31
31
  createSelector
32
- } from "./chunk-UKWGR5SS.js";
32
+ } from "./chunk-AUXHZ2M5.js";
33
33
  import {
34
34
  getAllServers,
35
35
  getIsDesktopApp,
@@ -251,13 +251,13 @@ var neutral = {
251
251
  };
252
252
  var ocean = {
253
253
  light: {
254
- primary: "#0969DA",
255
- primaryLight: "#218BFF",
256
- primaryDark: "#0550AE",
257
- primaryGradient: "linear-gradient(135deg, #0969DA, #218BFF)",
258
- primaryGhost: "rgba(9,105,218,0.08)",
259
- primaryHover: "rgba(9,105,218,0.10)",
260
- borderAccent: "#54AEFF",
254
+ primary: "#006EDC",
255
+ primaryLight: "#0874DC",
256
+ primaryDark: "#0052AD",
257
+ primaryGradient: "linear-gradient(135deg, #006EDC, #0874DC)",
258
+ primaryGhost: "rgba(0,110,220,0.08)",
259
+ primaryHover: "rgba(0,110,220,0.10)",
260
+ borderAccent: "#73BEFF",
261
261
  ...semantic.light,
262
262
  ...mkLight("#FFFFFF", "#F6F8FA", "#EBF0F4", "#1C2128", "#57606A", "#6E7781", "#D0D7DE", "#F6F8FA")
263
263
  },
@@ -724,23 +724,23 @@ var mono = {
724
724
  }
725
725
  };
726
726
  var catppuccin = {
727
- // 保留 catppuccin 的柔和圆角 + 弹性缓动;色值换成 Ghostty "GitHub Light/Dark Default"
728
- // 官方 palette,获得通透高对比的观感。合成后名字/位次不变,DEFAULT_THEME_NAME 不动。
727
+ // 保留 catppuccin 的柔和圆角 + 弹性缓动;light surface 沿用 GitHub Light palette,
728
+ // light accent 为品牌海蓝(非 GitHub 蓝),dark 为 Catppuccin Mocha。合成后名字/位次不变,DEFAULT_THEME_NAME 不动。
729
729
  // Reviewer 改进:dark textTertiary/quaternary 提亮达 WCAG AA;light warning 改琥珀色;
730
730
  // light backgroundElevated 拉开与画布的层级,大圆角浮层不再粘连。
731
731
  meta: { radiusBoost: 2, motionEase: "cubic-bezier(0.22, 1, 0.36, 1)" },
732
732
  light: {
733
- // Ghostty GitHub Light Default — 纯白 canvas + blue-500 accent
734
- primary: "#0969DA",
735
- primaryLight: "#218BFF",
736
- primaryDark: "#0550AE",
737
- primaryGradient: "linear-gradient(135deg, #0969DA, #218BFF)",
738
- primaryGhost: "rgba(9,105,218,0.08)",
739
- primaryHover: "rgba(9,105,218,0.10)",
740
- borderAccent: "#54AEFF",
733
+ // 纯白 canvas + 海蓝 accent(#006EDC:白字 4.93:1,#F6F8FA 上 4.63:1;品牌见 docs/brand-outdoor-aesthetic.md)
734
+ primary: "#006EDC",
735
+ primaryLight: "#0874DC",
736
+ primaryDark: "#0052AD",
737
+ primaryGradient: "linear-gradient(135deg, #006EDC, #0874DC)",
738
+ primaryGhost: "rgba(0,110,220,0.08)",
739
+ primaryHover: "rgba(0,110,220,0.10)",
740
+ borderAccent: "#73BEFF",
741
741
  success: "#116329",
742
742
  warning: "#9A6700",
743
- info: "#0969DA",
743
+ info: "#006EDC",
744
744
  error: "#CF222E",
745
745
  background: "#FFFFFF",
746
746
  backgroundSecondary: "#F6F8FA",