nolo-cli 0.88.0-alpha.2 → 0.90.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/README.md +2 -2
  2. package/{_executeModel-S7KQX4XS.js → _executeModel-W26HVI75.js} +38 -38
  3. package/{action-JZ62BXLX.js → action-6DXQGJMX.js} +7 -7
  4. package/{addContentAction-2ETXWERA.js → addContentAction-I7VX5SAC.js} +5 -5
  5. package/{addDialogAgentAction-COSPGJ4K.js → addDialogAgentAction-OJSFV7DZ.js} +4 -4
  6. package/{agentDeleteCommand-J6Y2C5X2.js → agentDeleteCommand-XNFWCKBH.js} +25 -24
  7. package/{agentEmailCommands-TGZ5DJAB.js → agentEmailCommands-W3X3EJ3V.js} +53 -52
  8. package/{agentGrantCommands-R3VQEZJR.js → agentGrantCommands-YW6PQAQ2.js} +2 -2
  9. package/{agentListCommands-UIDWO3EG.js → agentListCommands-DFWFU6XO.js} +33 -26
  10. package/{agentMachineCommands-FPSZ6FJ4.js → agentMachineCommands-LMFOAEL4.js} +25 -24
  11. package/{agentProviderCommands-65ZC2WB4.js → agentProviderCommands-ZBYHGTGY.js} +87 -0
  12. package/{agentPullCommand-N7L2CT7L.js → agentPullCommand-GLOOXJ2E.js} +3 -3
  13. package/{agentRecordCommands-6SCONH5I.js → agentRecordCommands-FVVVCQFM.js} +51 -50
  14. package/{agentRunCommand-2IXI6Z2U.js → agentRunCommand-HTBVIBGV.js} +52 -51
  15. package/{agentRunControl-T44MESII.js → agentRunControl-XLGD3UZ5.js} +1 -1
  16. package/{agentRuntimeLocal-UYU2POZ7.js → agentRuntimeLocal-2JFG4HDU.js} +21 -20
  17. package/{agentSlice-J5XXG3H7.js → agentSlice-ZNLGFUB5.js} +5 -5
  18. package/{appDeleteCommands-BVSKDJNM.js → appDeleteCommands-2UN4N2NR.js} +25 -24
  19. package/{appDeployCommands-UTPULKP3.js → appDeployCommands-37D74KRR.js} +25 -24
  20. package/{appDeployStatusCommands-DKDE2ECO.js → appDeployStatusCommands-QBLWL2IA.js} +25 -24
  21. package/{appGetCommands-KT7A7JJQ.js → appGetCommands-6KXIDF2T.js} +25 -24
  22. package/{appListCommands-MTHRLBXS.js → appListCommands-G2WFGEWQ.js} +25 -24
  23. package/{authCommand-NNFLRLGJ.js → authCommand-V2DJ7DB7.js} +85 -19
  24. package/{authCommands-364ESL7K.js → authCommands-RGOGCPP6.js} +3 -3
  25. package/{builtinSkillRegistry-VXSNE7LM.js → builtinSkillRegistry-WBGYKIAZ.js} +5 -5
  26. package/{chatQueueReduxAdapter-6I4F5TQW.js → chatQueueReduxAdapter-XCJHIY3R.js} +17 -17
  27. package/{chunk-BXLB7DXE.js → chunk-2ADBVBEM.js} +98 -2
  28. package/{chunk-WKJC6UOK.js → chunk-2AYMFHUG.js} +4 -4
  29. package/{chunk-CADAR6QU.js → chunk-2F4VYGFW.js} +2 -2
  30. package/{chunk-C3FZR5EC.js → chunk-2F7RJC6L.js} +1 -1
  31. package/{chunk-IBT5GKZM.js → chunk-3CMTBX3X.js} +6 -6
  32. package/{chunk-T2EUOLNJ.js → chunk-3CR2LC6X.js} +1 -1
  33. package/{chunk-UMYXJWI3.js → chunk-3R5PH4IP.js} +1 -1
  34. package/{chunk-EVCXTAOR.js → chunk-4BYPU626.js} +294 -203
  35. package/{chunk-M67M3AK5.js → chunk-4DRWWIOL.js} +1 -1
  36. package/{chunk-KR3MGGC7.js → chunk-576IMUGH.js} +1 -1
  37. package/{chunk-MGRRXGZD.js → chunk-5DFFKASO.js} +3 -3
  38. package/{chunk-SENTM5XJ.js → chunk-5NMZNPTN.js} +5 -5
  39. package/{chunk-5XTOKQLW.js → chunk-5UTFL4QJ.js} +6 -2
  40. package/{chunk-5CEIOSBX.js → chunk-5V4NJHRM.js} +6 -6
  41. package/chunk-5ZUL4CUO.js +10 -0
  42. package/{chunk-XPMTSMUR.js → chunk-6BEA566T.js} +2 -2
  43. package/{chunk-KIAHQ37Z.js → chunk-6D6VBVEW.js} +2 -2
  44. package/{chunk-PP3LAL6G.js → chunk-7MYYE7WX.js} +23 -19
  45. package/{chunk-BQKN5ZHZ.js → chunk-A2C4AKKM.js} +1 -1
  46. package/{chunk-PBMUDRON.js → chunk-AQZRTHDZ.js} +1192 -44
  47. package/{chunk-AJHEFRGJ.js → chunk-ASGDO77C.js} +122 -1
  48. package/{chunk-2KDR4CWE.js → chunk-BYMV6QZG.js} +24 -1
  49. package/{chunk-WVXCW7DR.js → chunk-CLI4LFSM.js} +9 -4
  50. package/{chunk-HH65VA5U.js → chunk-CPH3W5A7.js} +15 -3
  51. package/{chunk-A3GDWRW6.js → chunk-DNQPPRHY.js} +1 -1
  52. package/{chunk-SR2I44ML.js → chunk-DPQ2WVBY.js} +1 -1
  53. package/{chunk-IZWQKAGJ.js → chunk-F2CGG72C.js} +40 -40
  54. package/{chunk-QDOYVIIL.js → chunk-FQYMLZ6C.js} +5 -5
  55. package/{chunk-BJIRLHJR.js → chunk-GII32WZW.js} +1 -0
  56. package/{chunk-TR54UTFI.js → chunk-GRYGRGPS.js} +4 -4
  57. package/{chunk-QIU65GHY.js → chunk-HMEMJ7GH.js} +364 -24
  58. package/{chunk-OZX2IPKM.js → chunk-HQCSU3DI.js} +1 -1
  59. package/{chunk-KMIMGCZT.js → chunk-HYZHJ5GW.js} +3 -3
  60. package/{chunk-OAJRZ35U.js → chunk-IIKPWSPX.js} +1 -1
  61. package/{chunk-EFWQMKEG.js → chunk-JBBZ5KUM.js} +10 -10
  62. package/{chunk-KC5FAHVS.js → chunk-JEDZAO7L.js} +1 -1
  63. package/{chunk-4YIWJYIX.js → chunk-JTK3TJYV.js} +1 -1
  64. package/{chunk-TMPLPCVX.js → chunk-K7M3MWCE.js} +2 -2
  65. package/{chunk-OHUU52T3.js → chunk-L2ICPOAL.js} +1 -1
  66. package/{chunk-RXX4GDIH.js → chunk-LS2ZANRJ.js} +1 -1
  67. package/{chunk-EVBFYPDC.js → chunk-MC4XLIJ7.js} +6 -2
  68. package/{chunk-LHDV2QUI.js → chunk-MJHQ3NRV.js} +1 -1
  69. package/{chunk-WHYTL6XG.js → chunk-N3OAPEZE.js} +28 -9
  70. package/{chunk-PZCTYKGU.js → chunk-ND2J3NRB.js} +2 -2
  71. package/{chunk-M2ZBPSGH.js → chunk-NFMHIUY3.js} +65 -50
  72. package/{chunk-S6FCVZ4I.js → chunk-PH5J5VUY.js} +2 -2
  73. package/{chunk-FMODTASJ.js → chunk-Q5FJJ6XI.js} +1 -7
  74. package/{chunk-JYYZCK2Z.js → chunk-QFMFJZLO.js} +1 -1
  75. package/{chunk-5XV64MAU.js → chunk-QHETQ3KI.js} +35 -1
  76. package/{chunk-BEQGQMYW.js → chunk-RZANZZL2.js} +2 -2
  77. package/{chunk-SPAQ4PVV.js → chunk-SAFZABH7.js} +1 -1
  78. package/{chunk-6LUUGZTS.js → chunk-SMZSWB44.js} +10 -5
  79. package/{chunk-HJKGQPYF.js → chunk-TL6L5XUT.js} +1 -1
  80. package/{chunk-M5K26BH3.js → chunk-TVNI5FLG.js} +4 -4
  81. package/{chunk-X7WAX4JU.js → chunk-UA5S3LQQ.js} +3 -3
  82. package/{chunk-2LX7X7HX.js → chunk-UTCCPWB2.js} +31 -3
  83. package/{chunk-DJM4BCSB.js → chunk-VHJLQHPQ.js} +2 -2
  84. package/{chunk-MXUSPS2N.js → chunk-VRLI2WNW.js} +1563 -1529
  85. package/{chunk-NG4UT4K4.js → chunk-WS22FPWT.js} +1 -1
  86. package/{chunk-NJBLAV2R.js → chunk-WXPVOQD7.js} +35 -33
  87. package/{chunk-5HKWE6OQ.js → chunk-XKQJJK4F.js} +1 -1
  88. package/{chunk-N4X2KIYL.js → chunk-XMGHGEN6.js} +1 -1
  89. package/{chunk-6IHWRTUK.js → chunk-XTUY5EL4.js} +16 -12
  90. package/{chunk-OKCTLCKS.js → chunk-YOXYA2GU.js} +1 -1
  91. package/{chunk-EDZAJS6E.js → chunk-Z33ARZCP.js} +1 -1
  92. package/chunk-ZAB3A45K.js +677 -0
  93. package/{chunk-YZHP76TR.js → chunk-ZBT3WNBK.js} +1 -1
  94. package/{contentThunks-2N2J3EGF.js → contentThunks-VURN3DFW.js} +18 -18
  95. package/{createAgentAutomationAction-7QO4ZVVP.js → createAgentAutomationAction-QZAAY77R.js} +18 -18
  96. package/{createDialogAction-PC2IQ4T7.js → createDialogAction-CHGXVTAC.js} +20 -20
  97. package/{createPageAction-EFL5EC22.js → createPageAction-IOGAFIN7.js} +18 -18
  98. package/{dbSlice-JNK4XZ27.js → dbSlice-YXQ6RYIH.js} +4 -4
  99. package/{dialogCommands-BSOWO6CA.js → dialogCommands-XREAP6WQ.js} +26 -25
  100. package/{dialogSlice-W6X5G2KS.js → dialogSlice-DOPGWGS4.js} +17 -17
  101. package/{docCreateCommands-LWZU23FP.js → docCreateCommands-3PYZGSCL.js} +24 -23
  102. package/{docDeleteCommands-RR6GKDDF.js → docDeleteCommands-3Y6MU44Q.js} +25 -24
  103. package/{docReadCommands-JP77ZTCY.js → docReadCommands-UBANMAFR.js} +24 -23
  104. package/{docStore-DMNGPTL4.js → docStore-SYYFBENY.js} +5 -5
  105. package/{docUpdateCommands-T4OACV4V.js → docUpdateCommands-4GK2X6BN.js} +24 -23
  106. package/{getPricing-QVTUQQTM.js → getPricing-F2C65RIX.js} +3 -3
  107. package/{handleSendMessageAction-RJEXW5VS.js → handleSendMessageAction-NPVTY2GE.js} +17 -17
  108. package/index.js +85 -81
  109. package/{localDialogRead-GKTRZFAP.js → localDialogRead-BTFJ4V2I.js} +1 -1
  110. package/{localRuntimeDb-P37ZTX55.js → localRuntimeDb-SYQGUF4U.js} +1 -1
  111. package/{machineCommands-K3VQUSAX.js → machineCommands-I66X2XB7.js} +49 -48
  112. package/{machineWsRunDispatch-P7RNOLMU.js → machineWsRunDispatch-W4FVBOUM.js} +49 -48
  113. package/{memberThunks-A6OAY77F.js → memberThunks-5T4J6KXQ.js} +5 -5
  114. package/{models-GS72DVJS.js → models-WW7VFNXB.js} +2 -2
  115. package/{offlineMarxistsAgentCommand-GEH6SNNA.js → offlineMarxistsAgentCommand-JEWCIAWM.js} +1 -1
  116. package/package.json +1 -1
  117. package/providerPresetApply-OCWWKBSD.js +214 -0
  118. package/providerRegistry-ZJQU7AJ7.js +31 -0
  119. package/{read-2PV4PN2E.js → read-M2Q6WEKB.js} +3 -3
  120. package/{readDocTool-FGK5XGAW.js → readDocTool-T37P3YPB.js} +1 -1
  121. package/{readlineWorkspace-FGQLVWLE.js → readlineWorkspace-VY5AMOGR.js} +127 -95
  122. package/{removeDialogAgentAction-6SGBZWSW.js → removeDialogAgentAction-HB3JBVAI.js} +7 -7
  123. package/{runAgentClientLoop-75TQMT2H.js → runAgentClientLoop-3NDADLVE.js} +36 -36
  124. package/{runtimeDoctorCommands-CROTMULY.js → runtimeDoctorCommands-X6WDBEQX.js} +2 -2
  125. package/{setDialogExtraReferencesAction-LC3SOVJO.js → setDialogExtraReferencesAction-4XLHRV37.js} +5 -5
  126. package/{setPrimaryDialogAgentAction-XE2HIEVY.js → setPrimaryDialogAgentAction-C3JOFC4W.js} +7 -7
  127. package/{settingSlice-GJYAXZZ6.js → settingSlice-CZRURSTH.js} +6 -6
  128. package/{spaceCommands-7GMVZQYI.js → spaceCommands-ENYCUUZH.js} +24 -23
  129. package/{streamAgentChatTurn-JYKKAOEU.js → streamAgentChatTurn-634OFUSR.js} +46 -44
  130. package/{switchDialogAgentAction-EDYI5RLR.js → switchDialogAgentAction-C6KVUKJP.js} +4 -4
  131. package/{tableCommands-SUNTHAYX.js → tableCommands-O6NWHFKV.js} +1 -1
  132. package/{toolApiClient-VGYUB4P5.js → toolApiClient-7PSIFQPJ.js} +2 -2
  133. package/{tools-PCY3TDNR.js → tools-ILBLCF7D.js} +33 -33
  134. package/tuiSummaryLlmCaller-LFUBZKXK.js +127 -0
  135. package/{updateCommands-Y363MC3L.js → updateCommands-2M74UL7P.js} +2 -2
  136. package/{updateDialogTitleAction-36NOSXEX.js → updateDialogTitleAction-RKFET73N.js} +38 -21
  137. package/tuiSummaryLlmCaller-CCYGQDGB.js +0 -116
  138. package/{db-VQSAOWAO.js → db-WK5MDZVN.js} +1 -1
  139. package/{localRuntimeAuthority-R5UBODT3.js → localRuntimeAuthority-6IR6BBXE.js} +3 -3
@@ -19,8 +19,20 @@ var FIREWORKS_KIMI_LATEST_MODEL = "accounts/fireworks/models/kimi-latest";
19
19
  var FIREWORKS_KIMI_CURRENT_MODEL = "accounts/fireworks/models/kimi-k2p7-code";
20
20
  var FIREWORKS_KIMI_K2P6_MODEL = "accounts/fireworks/models/kimi-k2p6";
21
21
  var DEEPINFRA_KIMI_FALLBACK_MODEL = "moonshotai/Kimi-K2.6";
22
+ var isOllamaCloudKimiModel = (model) => model === PLATFORM_HOSTED_KIMI_K3_MODEL || model === PLATFORM_HOSTED_KIMI_K26_MODEL;
22
23
  var isFireworksKimiModel = (model) => model === FIREWORKS_KIMI_LATEST_MODEL || model === FIREWORKS_KIMI_CURRENT_MODEL || model === FIREWORKS_KIMI_K2P6_MODEL;
23
24
  var isDeepInfraKimiModel = (model) => model === DEEPINFRA_KIMI_FALLBACK_MODEL;
25
+ var isPlatformKimiProviderModel = (provider, model) => {
26
+ const normalizedProvider = asTrimmedLowercaseString(provider);
27
+ if (normalizedProvider === PLATFORM_HOSTED_KIMI_PROVIDER || normalizedProvider === LEGACY_OLLAMA_CLOUD_PROVIDER) {
28
+ return isOllamaCloudKimiModel(model);
29
+ }
30
+ return false;
31
+ };
32
+ var isPlatformManagedProvider = (provider, model) => {
33
+ const normalized = asTrimmedLowercaseString(provider);
34
+ return isNoloHostedProvider(normalized) || normalized === "deepseek" || isPlatformKimiProviderModel(normalized, model);
35
+ };
24
36
  var resolveFireworksKimiModel = (model) => {
25
37
  if (model === FIREWORKS_KIMI_LATEST_MODEL) {
26
38
  return FIREWORKS_KIMI_CURRENT_MODEL;
@@ -50,6 +62,9 @@ var PLATFORM_HOSTED_GEMINI_FLASH_IMAGE_MODEL = "gemini-3.1-flash-image-preview";
50
62
  var PLATFORM_HOSTED_GEMINI_PRO_IMAGE_MODEL = "gemini-3-pro-image-preview";
51
63
  var PLATFORM_HOSTED_GEMINI_FLASH_LITE_IMAGE_MODEL = "gemini-3.1-flash-lite-image";
52
64
  var PLATFORM_HOSTED_OPENAI_IMAGE_MODEL = "gpt-image-2";
65
+ var PLATFORM_HOSTED_MIMO_FLASH_MODEL = "mimo-v2.6-flash";
66
+ var PLATFORM_HOSTED_MIMO_PRO_MODEL = "mimo-v2.6-pro";
67
+ var PLATFORM_HOSTED_MIMO_PRO_ULTRASPEED_MODEL = "mimo-v2.6-pro-ultraspeed";
53
68
  var PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL = "deepseek-flash";
54
69
  var PLATFORM_HOSTED_DEEPSEEK_FLASH_VISION_EXP_MODEL = "deepseek-v4-flash-vision-exp";
55
70
  var PLATFORM_HOSTED_DEEPSEEK_PRO_MODEL = "deepseek-v4-pro";
@@ -239,6 +254,39 @@ var PLATFORM_HOSTED_ROUTING_TABLE = {
239
254
  wire: "chat.completions",
240
255
  agentRunHosted: false
241
256
  },
257
+ // MiMo V2.6 系 -> 小米官方按量计费 API(api.xiaomimimo.com,key 用 MIMO_API_KEY)。
258
+ // 模型 id 与上游一致,无 upstreamModelId(直传,不做 remap);
259
+ // wire 是 chat.completions(不是 responses 特例,走通用 hostedRoute 分支)。
260
+ //
261
+ // 上游事实(mimo.mi.com 官方文档 /api/chat/openai-api,2026-09-20 版):
262
+ // - `thinking.type` 默认 enabled;平台未显式开启思考时补 {type:"disabled"}
263
+ // (判据同时认 provider=mimo / xiaomimimo.com 端点与下面的托管模型 id);
264
+ // - 同时兼容 `max_tokens` 与 `max_completion_tokens`(实测 200 OK);文档
265
+ // 未提及 `stream_options` / `include_usage`——平台因此不请求
266
+ // include_usage,usage 由响应体自带(含 prompt_tokens_details.cached_tokens,
267
+ // 缓存命中按 inputCacheHit 价计入积分);
268
+ // - 1M 上下文 / 128K 最大输出 / 文本+图+音视频输入(全模态理解)。
269
+ [PLATFORM_HOSTED_MIMO_FLASH_MODEL]: {
270
+ endpoint: "https://api.xiaomimimo.com/v1/chat/completions",
271
+ usageProvider: "mimo",
272
+ keyName: "mimo",
273
+ wire: "chat.completions",
274
+ agentRunHosted: true
275
+ },
276
+ [PLATFORM_HOSTED_MIMO_PRO_MODEL]: {
277
+ endpoint: "https://api.xiaomimimo.com/v1/chat/completions",
278
+ usageProvider: "mimo",
279
+ keyName: "mimo",
280
+ wire: "chat.completions",
281
+ agentRunHosted: true
282
+ },
283
+ [PLATFORM_HOSTED_MIMO_PRO_ULTRASPEED_MODEL]: {
284
+ endpoint: "https://api.xiaomimimo.com/v1/chat/completions",
285
+ usageProvider: "mimo",
286
+ keyName: "mimo",
287
+ wire: "chat.completions",
288
+ agentRunHosted: true
289
+ },
242
290
  // OpenAI Image -> OpenAI Responses API
243
291
  [PLATFORM_HOSTED_OPENAI_IMAGE_MODEL]: {
244
292
  endpoint: "https://api.openai.com/v1/responses",
@@ -415,7 +463,7 @@ function buildClientVersionGateErrorDetail(decision) {
415
463
  // packages/ai/llm/platformHosted.ts
416
464
  var PLATFORM_CREDITS_PER_USD = 8;
417
465
  var toPlatformCredits = (usdPerMillion) => Number((usdPerMillion * PLATFORM_CREDITS_PER_USD).toFixed(6));
418
- var CNY_UPSTREAM_MULTIPLIER = 1.2;
466
+ var CNY_UPSTREAM_MULTIPLIER = 1.1;
419
467
  var toCnyCredits = (cnyPerMillion) => Number((cnyPerMillion * CNY_UPSTREAM_MULTIPLIER).toFixed(6));
420
468
  var PLATFORM_HOSTED_GROK_PRICE = {
421
469
  input: toPlatformCredits(2),
@@ -597,6 +645,40 @@ var createPlatformHostedGeminiImageModel = ({
597
645
  imageGenerationProfiles,
598
646
  supportsTool: false
599
647
  });
648
+ var PLATFORM_HOSTED_MIMO_MODELS = [
649
+ PLATFORM_HOSTED_MIMO_FLASH_MODEL,
650
+ PLATFORM_HOSTED_MIMO_PRO_MODEL,
651
+ PLATFORM_HOSTED_MIMO_PRO_ULTRASPEED_MODEL
652
+ ];
653
+ var isPlatformHostedMimoModel = (model) => {
654
+ const m = asTrimmedLowercaseString(model);
655
+ return PLATFORM_HOSTED_MIMO_MODELS.includes(m);
656
+ };
657
+ var isPlatformMimoProviderModel = (provider, model) => isPlatformManagedProvider(provider) && isPlatformHostedMimoModel(model);
658
+ var PLATFORM_HOSTED_MIMO_FLASH_PRICE = {
659
+ input: toCnyCredits(1),
660
+ // ¥1.00
661
+ inputCacheHit: toCnyCredits(0.02),
662
+ // ¥0.02
663
+ output: toCnyCredits(2)
664
+ // ¥2.00
665
+ };
666
+ var PLATFORM_HOSTED_MIMO_PRO_PRICE = {
667
+ input: toCnyCredits(3),
668
+ // ¥3.00
669
+ inputCacheHit: toCnyCredits(0.025),
670
+ // ¥0.025
671
+ output: toCnyCredits(6)
672
+ // ¥6.00
673
+ };
674
+ var PLATFORM_HOSTED_MIMO_PRO_ULTRASPEED_PRICE = {
675
+ input: toCnyCredits(30),
676
+ // ¥30.00
677
+ inputCacheHit: toCnyCredits(0.25),
678
+ // ¥0.25
679
+ output: toCnyCredits(60)
680
+ // ¥60.00
681
+ };
600
682
  var PLATFORM_HOSTED_DEEPSEEK_FLASH_PEAK_PRICE = {
601
683
  input: toCnyCredits(2),
602
684
  // ¥2
@@ -754,6 +836,40 @@ var platformHostedModels = [
754
836
  supportsReasoningEffort: true,
755
837
  minClientVersion: PLATFORM_HOSTED_GLM_53_FLASH_MIN_CLIENT_VERSION
756
838
  },
839
+ // MiMo V2.6 系(小米官方按量计费 API,key 用 MIMO_API_KEY):1M 上下文、
840
+ // 最大输出 128K、原生多模态输入(文本/图/音/视频)、函数调用与深度思考。
841
+ // 能力值来源:mimo.mi.com 模型列表页 + 官方模型目录(max_output_length
842
+ // 131072、context 1048576、input_modalities 含 image/audio/video),2026-09-21。
843
+ {
844
+ name: PLATFORM_HOSTED_MIMO_FLASH_MODEL,
845
+ displayName: "MiMo V2.6 Flash",
846
+ hasVision: true,
847
+ price: { ...PLATFORM_HOSTED_MIMO_FLASH_PRICE },
848
+ maxOutputTokens: 131072,
849
+ contextWindow: 1048576,
850
+ supportsTool: true,
851
+ supportsReasoningEffort: true
852
+ },
853
+ {
854
+ name: PLATFORM_HOSTED_MIMO_PRO_MODEL,
855
+ displayName: "MiMo V2.6 Pro",
856
+ hasVision: true,
857
+ price: { ...PLATFORM_HOSTED_MIMO_PRO_PRICE },
858
+ maxOutputTokens: 131072,
859
+ contextWindow: 1048576,
860
+ supportsTool: true,
861
+ supportsReasoningEffort: true
862
+ },
863
+ {
864
+ name: PLATFORM_HOSTED_MIMO_PRO_ULTRASPEED_MODEL,
865
+ displayName: "MiMo V2.6 Pro Ultraspeed",
866
+ hasVision: true,
867
+ price: { ...PLATFORM_HOSTED_MIMO_PRO_ULTRASPEED_PRICE },
868
+ maxOutputTokens: 131072,
869
+ contextWindow: 1048576,
870
+ supportsTool: true,
871
+ supportsReasoningEffort: true
872
+ },
757
873
  // Claude 系(真实 DeepInfra 模型,官方 id 与平台 id 同名):无缓存价,
758
874
  // 计费按 input 全价(见 calculatePrice 的 deepinfra 分支)。
759
875
  {
@@ -1012,6 +1128,11 @@ export {
1012
1128
  PLATFORM_HOSTED_GLM_53_FLASH_BASETEN_PRICE,
1013
1129
  isPlatformHostedOpenAIImageModel,
1014
1130
  isPlatformHostedImageModel,
1131
+ isPlatformMimoProviderModel,
1132
+ PLATFORM_HOSTED_DEEPSEEK_FLASH_PEAK_PRICE,
1133
+ PLATFORM_HOSTED_DEEPSEEK_FLASH_OFF_PEAK_PRICE,
1134
+ PLATFORM_HOSTED_DEEPSEEK_PRO_PEAK_PRICE,
1135
+ PLATFORM_HOSTED_DEEPSEEK_PRO_OFF_PEAK_PRICE,
1015
1136
  getPlatformHostedDeepSeekV4Price,
1016
1137
  isPlatformHostedDeepseekModel,
1017
1138
  isPlatformHostedDeepSeekV4Model,
@@ -285,6 +285,27 @@ function saveProfileAgentSelection(selection, path = getDefaultProfileConfigPath
285
285
  `, "utf8");
286
286
  return config;
287
287
  }
288
+ function getProfileOAuthSync(provider, path = getDefaultProfileConfigPath()) {
289
+ const config = loadProfileConfig(path);
290
+ if (!config) return void 0;
291
+ const profile = config.profiles[config.currentProfile];
292
+ return profile?.oauthSync?.[provider];
293
+ }
294
+ function saveProfileOAuthSync(provider, sync, path = getDefaultProfileConfigPath()) {
295
+ if (isProtectedHomeProfileWrite(path)) return null;
296
+ const config = loadProfileConfig(path);
297
+ if (!config) return null;
298
+ const profile = config.profiles[config.currentProfile];
299
+ if (!profile) return null;
300
+ profile.oauthSync = {
301
+ ...profile.oauthSync ?? {},
302
+ [provider]: sync
303
+ };
304
+ mkdirSync(dirname(path), { recursive: true });
305
+ writeFileSync(path, `${JSON.stringify(config, null, 2)}
306
+ `, "utf8");
307
+ return config;
308
+ }
288
309
 
289
310
  export {
290
311
  getDefaultProfileConfigPath,
@@ -299,5 +320,7 @@ export {
299
320
  saveProfileLocale,
300
321
  getAgentSelectionAuditPath,
301
322
  readLastAgentSelectionAudit,
302
- saveProfileAgentSelection
323
+ saveProfileAgentSelection,
324
+ getProfileOAuthSync,
325
+ saveProfileOAuthSync
303
326
  };
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  SYSTEM_AGENT_CAPABILITIES,
6
6
  SYSTEM_AGENT_CAPABILITY_IDS
7
- } from "./chunk-BEQGQMYW.js";
7
+ } from "./chunk-RZANZZL2.js";
8
8
  import {
9
9
  createKey
10
10
  } from "./chunk-VMFTFOWF.js";
@@ -50,6 +50,9 @@ var TOOL_PACKS = {
50
50
  // queryModelUsage / queryUserGrowthReport:server-only 工具(web/CLI executor
51
51
  // 直接返回 serverOnlyResult),不随 CORE 常驻——server 端由 agent 显式
52
52
  // tools 配置按需挂载(utilityServerTools 执行器),web 端不再挂死 schema。
53
+ // setTodoList 已移至「conversation-todo」系统能力包(defaultEnabled:true)
54
+ // 作为唯一 owner——single source of truth:普通 agent 默认仍有 setTodoList,
55
+ // 但关闭「对话 Todo」开关即可真正摘掉它(CORE 常驻时该开关形同虚设)。
53
56
  CORE: [
54
57
  "read",
55
58
  "createDoc",
@@ -58,8 +61,7 @@ var TOOL_PACKS = {
58
61
  "updateSelf",
59
62
  "ask_user",
60
63
  "createAgentAutomation",
61
- "notifyUser",
62
- "setTodoList"
64
+ "notifyUser"
63
65
  ],
64
66
  // L2 - 联网搜索:与 CAPABILITY_PACKS「web-search」对齐。
65
67
  // 社交读工具属于「social-reader」包,不得因 exa_search 被旁路注入。
@@ -278,7 +280,10 @@ function resolveEffectiveEnabledPacks(args) {
278
280
  ];
279
281
  }
280
282
  var SYSTEM_BUILTIN_SKILL_PACK_IDS = SYSTEM_AGENT_CAPABILITY_IDS;
281
- var DEFAULT_MOUNT_SYSTEM_CAPABILITY_IDS = ["agent-orchestration"];
283
+ var DEFAULT_MOUNT_SYSTEM_CAPABILITY_IDS = [
284
+ "agent-orchestration",
285
+ "conversation-todo"
286
+ ];
282
287
  function getDefaultSystemCapabilityTools() {
283
288
  const ids = DEFAULT_MOUNT_SYSTEM_CAPABILITY_IDS;
284
289
  return SYSTEM_AGENT_CAPABILITY_PACKS.filter((pack) => ids.includes(pack.id)).flatMap((pack) => [...pack.tools]);
@@ -405,6 +405,8 @@ function createRunActivityTracker(runId, deps = {}, options = {}) {
405
405
  const fs = deps.fs ?? nodeFs;
406
406
  const now = deps.now ?? (() => /* @__PURE__ */ new Date());
407
407
  const minWriteIntervalMs = options.minWriteIntervalMs ?? DEFAULT_ACTIVITY_WRITE_INTERVAL_MS;
408
+ const keepAlive = options.keepAlive ?? true;
409
+ let disposed = false;
408
410
  let lastEventAt = now().toISOString();
409
411
  let inFlight = null;
410
412
  const counters = { llmCalls: 0, toolCalls: 0, fileEdits: 0 };
@@ -425,7 +427,9 @@ function createRunActivityTracker(runId, deps = {}, options = {}) {
425
427
  };
426
428
  }
427
429
  function doWrite() {
430
+ if (disposed) return;
428
431
  writeTimer = void 0;
432
+ const attemptAt = now().getTime();
429
433
  withRunRecordLock(
430
434
  runId,
431
435
  deps,
@@ -438,7 +442,10 @@ function createRunActivityTracker(runId, deps = {}, options = {}) {
438
442
  },
439
443
  { strict: true }
440
444
  );
445
+ if (lastWriteAt < attemptAt) lastWriteAt = attemptAt;
446
+ if (keepAlive) scheduleWrite();
441
447
  }
448
+ scheduleWrite();
442
449
  function scheduleWrite() {
443
450
  if (writeTimer !== void 0) return;
444
451
  const elapsed = now().getTime() - lastWriteAt;
@@ -446,6 +453,7 @@ function createRunActivityTracker(runId, deps = {}, options = {}) {
446
453
  writeTimer = setTimeout(doWrite, delay);
447
454
  }
448
455
  function onLoopEvent(event) {
456
+ if (disposed) return;
449
457
  lastEventAt = new Date(event.atMs).toISOString();
450
458
  switch (event.kind) {
451
459
  case "llm-start":
@@ -480,6 +488,7 @@ function createRunActivityTracker(runId, deps = {}, options = {}) {
480
488
  doWrite();
481
489
  }
482
490
  function dispose() {
491
+ disposed = true;
483
492
  if (writeTimer !== void 0) {
484
493
  clearTimeout(writeTimer);
485
494
  writeTimer = void 0;
@@ -817,10 +826,13 @@ async function spawnLocalBackgroundRun(input, deps = {}) {
817
826
  });
818
827
  proc.unref();
819
828
  if (typeof proc.pid === "number") {
820
- record.pid = proc.pid;
821
829
  const processStartedAt = (deps.getProcessStartTime ?? defaultGetProcessStartTime)(proc.pid);
822
- if (processStartedAt) record.processStartedAt = processStartedAt.toISOString();
823
- writeRunRecord(record, deps);
830
+ withRunRecordLock(runId, deps, () => {
831
+ const latest = readRunRecord(runId, deps) ?? record;
832
+ latest.pid = proc.pid;
833
+ if (processStartedAt) latest.processStartedAt = processStartedAt.toISOString();
834
+ writeRunRecord(latest, deps);
835
+ });
824
836
  }
825
837
  return { runId, pid: proc.pid, logPath, queuePath, batchId };
826
838
  }
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  generatePkcePair,
3
3
  startCallbackServer
4
- } from "./chunk-EDZAJS6E.js";
4
+ } from "./chunk-Z33ARZCP.js";
5
5
  import {
6
6
  toErrorMessage
7
7
  } from "./chunk-HNMXYYJR.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  DEFAULT_AGENT_BASE_POLICY,
3
3
  DEFAULT_USER_PREFERENCE_PROFILE
4
- } from "./chunk-S6FCVZ4I.js";
4
+ } from "./chunk-PH5J5VUY.js";
5
5
 
6
6
  // packages/ai/policy/runtimePolicy.ts
7
7
  var clampLevel = (value, fallback) => {
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  normalizeTimingMs
3
- } from "./chunk-DJM4BCSB.js";
3
+ } from "./chunk-VHJLQHPQ.js";
4
4
  import {
5
5
  MODEL_LOOKUP_MAP
6
- } from "./chunk-MXUSPS2N.js";
6
+ } from "./chunk-VRLI2WNW.js";
7
7
  import {
8
8
  ALL_MODELS
9
- } from "./chunk-NG4UT4K4.js";
9
+ } from "./chunk-WS22FPWT.js";
10
10
  import {
11
11
  asTrimmedNonEmptyStringArray
12
12
  } from "./chunk-VMFTFOWF.js";
@@ -15,11 +15,47 @@ import {
15
15
  } from "./chunk-WWC7I6TA.js";
16
16
  import {
17
17
  BUILTIN_NOLO_AGENT_KEY
18
- } from "./chunk-HJKGQPYF.js";
18
+ } from "./chunk-TL6L5XUT.js";
19
19
  import {
20
20
  asOptionalTrimmedString
21
21
  } from "./chunk-G3SUCT4W.js";
22
22
 
23
+ // packages/ai/token/cacheTokenFields.ts
24
+ var finiteTokenCount = (value) => {
25
+ if (typeof value !== "number" || !Number.isFinite(value)) return void 0;
26
+ return Math.max(0, Math.floor(value));
27
+ };
28
+ var readNested = (value, path) => {
29
+ let cursor = value;
30
+ for (const key of path) {
31
+ if (!cursor || typeof cursor !== "object") return void 0;
32
+ cursor = cursor[key];
33
+ }
34
+ return finiteTokenCount(cursor);
35
+ };
36
+ var firstPositive = (usage, readers) => {
37
+ for (const read of readers) {
38
+ const value = read(usage);
39
+ if (value !== void 0 && value !== 0) return value;
40
+ }
41
+ return 0;
42
+ };
43
+ var topLevel = (field) => (usage) => {
44
+ if (!usage || typeof usage !== "object") return void 0;
45
+ return finiteTokenCount(usage[field]);
46
+ };
47
+ var nested = (path) => (usage) => readNested(usage, path);
48
+ var readCacheReadInputTokens = (usage) => firstPositive(usage, [
49
+ topLevel("cache_read_input_tokens"),
50
+ topLevel("prompt_cache_hit_tokens"),
51
+ nested(["input_tokens_details", "cached_tokens"]),
52
+ nested(["prompt_tokens_details", "cached_tokens"])
53
+ ]);
54
+ var readCacheCreationInputTokens = (usage) => firstPositive(usage, [
55
+ topLevel("cache_creation_input_tokens"),
56
+ topLevel("prompt_cache_miss_tokens")
57
+ ]);
58
+
23
59
  // packages/ai/llm/getModelContextWindow.ts
24
60
  var DEFAULT_CONTEXT_WINDOW = 256e3;
25
61
  var QWEN_3_6_CONTEXT_WINDOW = 262144;
@@ -157,42 +193,6 @@ var getModelInfo = (modelName) => {
157
193
  return map.get(modelName) || map.get(modelName.toLowerCase()) || null;
158
194
  };
159
195
 
160
- // packages/ai/token/cacheTokenFields.ts
161
- var finiteTokenCount = (value) => {
162
- if (typeof value !== "number" || !Number.isFinite(value)) return void 0;
163
- return Math.max(0, Math.floor(value));
164
- };
165
- var readNested = (value, path) => {
166
- let cursor = value;
167
- for (const key of path) {
168
- if (!cursor || typeof cursor !== "object") return void 0;
169
- cursor = cursor[key];
170
- }
171
- return finiteTokenCount(cursor);
172
- };
173
- var firstPositive = (usage, readers) => {
174
- for (const read of readers) {
175
- const value = read(usage);
176
- if (value !== void 0 && value !== 0) return value;
177
- }
178
- return 0;
179
- };
180
- var topLevel = (field) => (usage) => {
181
- if (!usage || typeof usage !== "object") return void 0;
182
- return finiteTokenCount(usage[field]);
183
- };
184
- var nested = (path) => (usage) => readNested(usage, path);
185
- var readCacheReadInputTokens = (usage) => firstPositive(usage, [
186
- topLevel("cache_read_input_tokens"),
187
- topLevel("prompt_cache_hit_tokens"),
188
- nested(["input_tokens_details", "cached_tokens"]),
189
- nested(["prompt_tokens_details", "cached_tokens"])
190
- ]);
191
- var readCacheCreationInputTokens = (usage) => firstPositive(usage, [
192
- topLevel("cache_creation_input_tokens"),
193
- topLevel("prompt_cache_miss_tokens")
194
- ]);
195
-
196
196
  // packages/ai/token/normalizeUsage.ts
197
197
  var normalizeStringArray = (value) => {
198
198
  if (!Array.isArray(value)) return void 0;
@@ -9,7 +9,7 @@ import {
9
9
  initReactI18next,
10
10
  instance,
11
11
  toast
12
- } from "./chunk-QIU65GHY.js";
12
+ } from "./chunk-HMEMJ7GH.js";
13
13
  import {
14
14
  require_date_fns
15
15
  } from "./chunk-M76ECQRD.js";
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-YDH3FDFQ.js";
19
19
  import {
20
20
  isSystemAdmin
21
- } from "./chunk-BEQGQMYW.js";
21
+ } from "./chunk-RZANZZL2.js";
22
22
  import {
23
23
  asRecordOrEmpty
24
24
  } from "./chunk-KX6YBIHG.js";
@@ -27,7 +27,7 @@ import {
27
27
  addContentAction,
28
28
  checkSpaceMembership,
29
29
  localSpaceAuthorityPatchStamp
30
- } from "./chunk-M67M3AK5.js";
30
+ } from "./chunk-4DRWWIOL.js";
31
31
  import {
32
32
  createSpaceKey,
33
33
  normalizeSpaceId
@@ -41,7 +41,7 @@ import {
41
41
  uploadFileAction,
42
42
  upsertSSREntity,
43
43
  write
44
- } from "./chunk-X7WAX4JU.js";
44
+ } from "./chunk-UA5S3LQQ.js";
45
45
  import {
46
46
  SEPARATOR,
47
47
  asTrimmedNonEmptyStringArray,
@@ -59,7 +59,7 @@ import {
59
59
  } from "./chunk-WWC7I6TA.js";
60
60
  import {
61
61
  extractUserId
62
- } from "./chunk-BJIRLHJR.js";
62
+ } from "./chunk-GII32WZW.js";
63
63
  import {
64
64
  DEVICE_LOCAL_OWNER_ID,
65
65
  createAsyncThunk,
@@ -37,6 +37,7 @@ export {
37
37
  PUBLIC_AGENT_KEY_PREFIX,
38
38
  publicAgentKey,
39
39
  parsePublicAgentId,
40
+ ownedAgentKeyPrefix,
40
41
  ownedAgentKey,
41
42
  isOwnedAgentKey,
42
43
  parseOwnedAgentId
@@ -7,10 +7,10 @@ import {
7
7
  listUserRecordsFromServers,
8
8
  readDbRecordFromServers,
9
9
  readLiveDbRecordAfterTombstoneMerge
10
- } from "./chunk-BQKN5ZHZ.js";
10
+ } from "./chunk-A2C4AKKM.js";
11
11
  import {
12
12
  fetchWithTransientRetry
13
- } from "./chunk-5XTOKQLW.js";
13
+ } from "./chunk-5UTFL4QJ.js";
14
14
  import {
15
15
  DRAIN_EXHAUSTED_USER_MESSAGE,
16
16
  isDrainExhaustedResponse
@@ -30,7 +30,7 @@ import {
30
30
  boundSummaryText,
31
31
  buildDialogReadEnvelope,
32
32
  projectDialogReadForAgent
33
- } from "./chunk-OKCTLCKS.js";
33
+ } from "./chunk-YOXYA2GU.js";
34
34
  import {
35
35
  toErrorMessage
36
36
  } from "./chunk-HNMXYYJR.js";
@@ -724,7 +724,7 @@ function isExplicitDialogIdMismatch(meta, dialogId) {
724
724
  return meta && typeof meta === "object" && "id" in meta && meta.id != null && String(meta.id) !== dialogId;
725
725
  }
726
726
  async function readDialogFromLocalDb(dialogKey, dialogId, limit, readLocalDialog) {
727
- const reader = readLocalDialog ?? (await import("./localDialogRead-GKTRZFAP.js")).readDialogFromLocalDb;
727
+ const reader = readLocalDialog ?? (await import("./localDialogRead-BTFJ4V2I.js")).readDialogFromLocalDb;
728
728
  const result = await reader({ dialogKey, dialogId, limit });
729
729
  return {
730
730
  ...result,