nolo-cli 0.79.0-alpha.1 → 0.79.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 (152) hide show
  1. package/README.md +2 -2
  2. package/{_executeModel-T3FPYFVF.js → _executeModel-U5V7LOJX.js} +46 -46
  3. package/{action-D22U6CTH.js → action-EXQVY3UO.js} +11 -11
  4. package/{addContentAction-XAPUTGL4.js → addContentAction-6IXQSRD2.js} +9 -9
  5. package/{addDialogAgentAction-M7VLLBZM.js → addDialogAgentAction-FZOB4BYM.js} +8 -8
  6. package/{agentDeleteCommand-2TYFURBN.js → agentDeleteCommand-4MIJFQQB.js} +30 -28
  7. package/{agentEmailCommands-7P35ZMUA.js → agentEmailCommands-JUXT36BY.js} +62 -60
  8. package/{agentGrantCommands-R3VQEZJR.js → agentGrantCommands-YW6PQAQ2.js} +2 -2
  9. package/{agentListCommands-IFUOWXP3.js → agentListCommands-MUVKMMZ5.js} +38 -30
  10. package/{agentMachineCommands-G46ZZ2ZQ.js → agentMachineCommands-56FTZLYV.js} +30 -28
  11. package/{agentProviderCommands-65ZC2WB4.js → agentProviderCommands-TOMVKJOV.js} +87 -0
  12. package/{agentPullCommand-N7L2CT7L.js → agentPullCommand-GLOOXJ2E.js} +3 -3
  13. package/{agentRecordCommands-R74LTQEQ.js → agentRecordCommands-FST3KAKG.js} +59 -57
  14. package/{agentRunCommand-IRSZYCEU.js → agentRunCommand-UMUEVIY2.js} +60 -58
  15. package/{agentRunControl-T44MESII.js → agentRunControl-XLGD3UZ5.js} +1 -1
  16. package/{agentRuntimeLocal-PUZINLWJ.js → agentRuntimeLocal-NH6GSGAJ.js} +28 -26
  17. package/{agentSlice-EACXUOWW.js → agentSlice-YZK6KG73.js} +10 -10
  18. package/{appDeleteCommands-U4NTEJYQ.js → appDeleteCommands-U45KXYX7.js} +30 -28
  19. package/{appDeployCommands-FXF45Q7F.js → appDeployCommands-LWQIQCFX.js} +30 -28
  20. package/{appDeployStatusCommands-KONVRM53.js → appDeployStatusCommands-LZO33PGD.js} +30 -28
  21. package/{appGetCommands-3VOGIZ7T.js → appGetCommands-OJSO6BCF.js} +30 -28
  22. package/{appListCommands-A6ROBW7P.js → appListCommands-NE56V7DI.js} +30 -28
  23. package/{authCommand-EVGFLAHO.js → authCommand-U5LA6H4Y.js} +164 -24
  24. package/{authCommands-ILTBI6JV.js → authCommands-RGOGCPP6.js} +4 -5
  25. package/builtinSkillRegistry-4NB7PCOF.js +33 -0
  26. package/{chatQueueReduxAdapter-XEIJO5WR.js → chatQueueReduxAdapter-FRMSYX7N.js} +24 -24
  27. package/{chunk-C3FZR5EC.js → chunk-2F7RJC6L.js} +1 -1
  28. package/{chunk-U6LKJRJB.js → chunk-377KM42Z.js} +42 -26
  29. package/{chunk-HQUORJTM.js → chunk-3BMYXEUW.js} +1 -1
  30. package/{chunk-AFIWC5NH.js → chunk-3XMOAYRC.js} +1 -1
  31. package/{chunk-UJ63UXGE.js → chunk-4CAPEGHN.js} +1077 -752
  32. package/{chunk-DWPNOYMB.js → chunk-4JBZUECA.js} +1 -1
  33. package/{chunk-NG4UT4K4.js → chunk-4QKBQHPQ.js} +1 -1
  34. package/{chunk-UZ6XXCVR.js → chunk-546FPOW3.js} +15 -2
  35. package/{chunk-5XTOKQLW.js → chunk-5UTFL4QJ.js} +6 -2
  36. package/chunk-5ZUL4CUO.js +10 -0
  37. package/{chunk-E6RGHPDR.js → chunk-6D6VBVEW.js} +4 -6
  38. package/{chunk-G3NT6BM3.js → chunk-7IBK6MYW.js} +142 -59
  39. package/{chunk-BYEJ7K2Z.js → chunk-7S4YWN7P.js} +1 -1
  40. package/{chunk-SREASRV5.js → chunk-ABQYVJBJ.js} +1 -1
  41. package/{chunk-H7UKKEIS.js → chunk-AQDH76OK.js} +1 -1
  42. package/{chunk-L2Y24GRM.js → chunk-B4S7MR5S.js} +16 -12
  43. package/{chunk-E36HZARC.js → chunk-BF2K6MRF.js} +3 -3
  44. package/{chunk-MGU5ADIQ.js → chunk-BKP7CFUD.js} +10 -10
  45. package/{chunk-2KDR4CWE.js → chunk-BYMV6QZG.js} +24 -1
  46. package/{chunk-AFIKMMGC.js → chunk-COM7GG76.js} +1 -1
  47. package/{chunk-HH65VA5U.js → chunk-CPH3W5A7.js} +15 -3
  48. package/{chunk-XWNRAIUL.js → chunk-DM4UNXPK.js} +6 -16
  49. package/{chunk-ZLPA7K55.js → chunk-DSX6K7C2.js} +29 -10
  50. package/{chunk-QA6YKM3H.js → chunk-E2NP7ZQU.js} +32 -4
  51. package/{chunk-FSFQ3A7S.js → chunk-E3VQ6S3A.js} +10 -10
  52. package/{chunk-YFADVSZE.js → chunk-F3UTRUDO.js} +6 -6
  53. package/{chunk-KIS76A2P.js → chunk-G5X57NDE.js} +38 -4
  54. package/{chunk-BJIRLHJR.js → chunk-GII32WZW.js} +1 -0
  55. package/{chunk-DSRXPQWA.js → chunk-GRDSMV4V.js} +43 -43
  56. package/{chunk-733J6D44.js → chunk-HGRDL36J.js} +6 -6
  57. package/{chunk-OZX2IPKM.js → chunk-HQCSU3DI.js} +1 -1
  58. package/{chunk-3JQ2NRYU.js → chunk-HVURBGF3.js} +4 -4
  59. package/{chunk-QC5LGHYP.js → chunk-HWZAXNO7.js} +10 -5
  60. package/{chunk-Q6FF2MCK.js → chunk-IIKPWSPX.js} +1 -1
  61. package/{chunk-KC5FAHVS.js → chunk-JEDZAO7L.js} +1 -1
  62. package/{chunk-6XIE5ZGI.js → chunk-JPGCXHNM.js} +1 -1
  63. package/{chunk-AJHEFRGJ.js → chunk-JTYPAMGP.js} +155 -1
  64. package/{chunk-UDQWGU7F.js → chunk-KR3YI36B.js} +1 -1
  65. package/{chunk-RXX4GDIH.js → chunk-LS2ZANRJ.js} +1 -1
  66. package/{chunk-SZLVDREM.js → chunk-LSSBA2TN.js} +3 -3
  67. package/{chunk-CMH2SYHX.js → chunk-MBEEYLGL.js} +2 -2
  68. package/{chunk-EVBFYPDC.js → chunk-MC4XLIJ7.js} +6 -2
  69. package/{chunk-PGSKWZCB.js → chunk-NKIH4Q7W.js} +1 -1
  70. package/{chunk-FPTQQSS6.js → chunk-OH7H6LPC.js} +26 -5
  71. package/{chunk-5J7W2VWW.js → chunk-OOLWKQSM.js} +6 -265
  72. package/{chunk-AETZ7AD6.js → chunk-Q554LLSI.js} +1 -1
  73. package/chunk-Q5FJJ6XI.js +103 -0
  74. package/{chunk-JYYZCK2Z.js → chunk-QFMFJZLO.js} +1 -1
  75. package/{chunk-P7FA2HMM.js → chunk-QMASIHYZ.js} +13 -15
  76. package/{chunk-ZY4K4CZR.js → chunk-R2YY6MWV.js} +909 -304
  77. package/chunk-RLEWGSM5.js +677 -0
  78. package/{chunk-PYXL2CJL.js → chunk-RZYQMSQA.js} +1 -1
  79. package/{chunk-XEEHSS64.js → chunk-S3UI4IUJ.js} +1200 -52
  80. package/{chunk-SPAQ4PVV.js → chunk-SAFZABH7.js} +1 -1
  81. package/{chunk-QRBAZ5PW.js → chunk-SASGLNUD.js} +3 -3
  82. package/{chunk-D74EWXL4.js → chunk-SUERPXJZ.js} +390 -47
  83. package/{chunk-3QPYFHAH.js → chunk-TMAZ3VHN.js} +1 -1
  84. package/{chunk-BJCWNHVU.js → chunk-U47DH2WO.js} +2 -2
  85. package/{chunk-MEVSATIF.js → chunk-UBNV6CS6.js} +66 -792
  86. package/{chunk-EXMHJN7C.js → chunk-UDEFS2PV.js} +4 -3
  87. package/{chunk-NHRQCXIQ.js → chunk-VMFTFOWF.js} +13 -3
  88. package/{chunk-4EJ5QYB5.js → chunk-VOOTT7HA.js} +1 -1
  89. package/{chunk-PZM3EENV.js → chunk-W2E6HIIK.js} +1 -1
  90. package/chunk-WKEUHK57.js +1625 -0
  91. package/{chunk-GBPZKFYK.js → chunk-WON762L4.js} +4 -4
  92. package/{chunk-X7Z7U4Z6.js → chunk-WP6BC7OF.js} +15 -15
  93. package/{chunk-QUH3XHL5.js → chunk-X2ZTVRXP.js} +7 -7
  94. package/{chunk-MYU3MJCF.js → chunk-XAQAF25W.js} +175 -7
  95. package/chunk-XGJAR4T5.js +283 -0
  96. package/{chunk-ZZCJUXUI.js → chunk-XLGHBHGP.js} +2 -2
  97. package/{chunk-V3ZKNK5D.js → chunk-YOXYA2GU.js} +10 -10
  98. package/{chunk-ALGK6TIE.js → chunk-YPYMGGPJ.js} +3 -3
  99. package/{chunk-K7AG465Q.js → chunk-ZHUTWJ3N.js} +4 -2
  100. package/{chunk-CDVGNZDA.js → chunk-ZKMYGRO7.js} +11 -173
  101. package/{contentThunks-3SPROFG5.js → contentThunks-TC3AENBY.js} +25 -25
  102. package/{createAgentAutomationAction-EIP2EG3O.js → createAgentAutomationAction-67EOD3WK.js} +25 -25
  103. package/{createDialogAction-RLUSTN4D.js → createDialogAction-4OCQC5MW.js} +28 -28
  104. package/{createPageAction-4Y52G7WG.js → createPageAction-JLGVP57B.js} +26 -26
  105. package/{dbSlice-GKGGFNOB.js → dbSlice-RDGCE5MU.js} +8 -8
  106. package/{deleteFile-LWSR674W.js → deleteFile-YG6QMJLU.js} +3 -3
  107. package/{dialogCommands-G223U5WU.js → dialogCommands-JHSDKCR5.js} +32 -30
  108. package/{dialogSlice-THY45JWM.js → dialogSlice-I2DK32ZT.js} +24 -24
  109. package/{docCreateCommands-2P47IJDK.js → docCreateCommands-QUL6VWK2.js} +31 -29
  110. package/{docDeleteCommands-N3EGDOIC.js → docDeleteCommands-DMQ2MU6I.js} +32 -30
  111. package/{docReadCommands-6BFV2HI7.js → docReadCommands-FVHENBU6.js} +31 -29
  112. package/{docStore-ZQ3ECOPY.js → docStore-OLC6MD7B.js} +9 -9
  113. package/{docUpdateCommands-ZTMPXHC5.js → docUpdateCommands-VA6V5C6L.js} +31 -29
  114. package/{fetchMessages-DRABNDPZ.js → fetchMessages-EIU7UFFK.js} +3 -4
  115. package/{getPricing-HRMSOF3E.js → getPricing-YYXTEPBP.js} +4 -4
  116. package/{handleSendMessageAction-CE4M5XIE.js → handleSendMessageAction-GRDIRXAK.js} +24 -24
  117. package/index.js +88 -80
  118. package/{localDialogRead-PUQKFI73.js → localDialogRead-BTFJ4V2I.js} +2 -2
  119. package/{localRuntimeDb-P37ZTX55.js → localRuntimeDb-SYQGUF4U.js} +1 -1
  120. package/{machineCommands-4OT7KVCD.js → machineCommands-IJJ66MYU.js} +59 -57
  121. package/{machineWsRunDispatch-TR3EYESP.js → machineWsRunDispatch-PP2ZBS6D.js} +57 -55
  122. package/{memberThunks-KATHH3F4.js → memberThunks-WQGQWYYT.js} +9 -9
  123. package/{models-GS72DVJS.js → models-UN7YGMPM.js} +2 -2
  124. package/{offlineMarxistsAgentCommand-GEH6SNNA.js → offlineMarxistsAgentCommand-JEWCIAWM.js} +1 -1
  125. package/package.json +1 -1
  126. package/providerPresetApply-NO73BG45.js +214 -0
  127. package/providerRegistry-OVY4VKNN.js +31 -0
  128. package/{read-LC6HVYBN.js → read-S4WC2OUK.js} +5 -4
  129. package/{readDocTool-N3ERJHHF.js → readDocTool-PQNM63KV.js} +1 -1
  130. package/{readlineWorkspace-GSL5CYNJ.js → readlineWorkspace-ASJECDJD.js} +196 -111
  131. package/{removeDialogAgentAction-F5GPTALR.js → removeDialogAgentAction-YJZ6XJV6.js} +11 -11
  132. package/{runAgentClientLoop-NE5EHXSS.js → runAgentClientLoop-KIOQSDRC.js} +45 -45
  133. package/{runtimeDoctorCommands-CROTMULY.js → runtimeDoctorCommands-X6WDBEQX.js} +2 -2
  134. package/{setDialogExtraReferencesAction-AY4ZCF3A.js → setDialogExtraReferencesAction-E6A3WL4E.js} +9 -9
  135. package/{setPrimaryDialogAgentAction-HPMG7V3R.js → setPrimaryDialogAgentAction-WBLIVICQ.js} +11 -11
  136. package/{settingSlice-OEJA4NQO.js → settingSlice-JR6S7TRD.js} +10 -10
  137. package/{spaceCommands-MRP5U3C3.js → spaceCommands-WDUNCAK5.js} +29 -27
  138. package/{streamAgentChatTurn-A6L6O22P.js → streamAgentChatTurn-EGQDPMAO.js} +57 -56
  139. package/{switchDialogAgentAction-HMDZTZ4I.js → switchDialogAgentAction-DTR36ZY2.js} +8 -8
  140. package/{tableCommands-SUNTHAYX.js → tableCommands-O6NWHFKV.js} +1 -1
  141. package/{toolApiClient-VGYUB4P5.js → toolApiClient-7PSIFQPJ.js} +2 -2
  142. package/{tools-JS475NYO.js → tools-AOVE5LKM.js} +41 -39
  143. package/tuiSummaryLlmCaller-XRQCSNYQ.js +127 -0
  144. package/{updateCommands-Y363MC3L.js → updateCommands-2M74UL7P.js} +2 -2
  145. package/{updateDialogTitleAction-GMZUT6RP.js → updateDialogTitleAction-T66TXHIR.js} +45 -28
  146. package/chunk-3IT2PFHL.js +0 -611
  147. package/chunk-I42VC5KR.js +0 -15
  148. package/codingSkills-E6KSDNSJ.js +0 -48
  149. package/tuiSummaryLlmCaller-3Z24VUWM.js +0 -116
  150. package/{chunk-3RAG2NAD.js → chunk-UKWGR5SS.js} +3 -3
  151. package/{db-VQSAOWAO.js → db-WK5MDZVN.js} +1 -1
  152. package/{localRuntimeAuthority-R5UBODT3.js → localRuntimeAuthority-6IR6BBXE.js} +3 -3
@@ -1,25 +1,61 @@
1
1
  import {
2
2
  normalizeTimingMs
3
- } from "./chunk-E36HZARC.js";
3
+ } from "./chunk-BF2K6MRF.js";
4
4
  import {
5
5
  MODEL_LOOKUP_MAP
6
- } from "./chunk-UJ63UXGE.js";
6
+ } from "./chunk-4CAPEGHN.js";
7
7
  import {
8
8
  ALL_MODELS
9
- } from "./chunk-NG4UT4K4.js";
9
+ } from "./chunk-4QKBQHPQ.js";
10
+ import {
11
+ asTrimmedNonEmptyStringArray
12
+ } from "./chunk-VMFTFOWF.js";
10
13
  import {
11
14
  asOptionalFiniteNumber
12
15
  } from "./chunk-WWC7I6TA.js";
13
- import {
14
- asTrimmedNonEmptyStringArray
15
- } from "./chunk-I42VC5KR.js";
16
16
  import {
17
17
  BUILTIN_NOLO_AGENT_KEY
18
- } from "./chunk-5J7W2VWW.js";
18
+ } from "./chunk-XGJAR4T5.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;
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  clearCliLocalRuntimePreparedAgentCache
3
- } from "./chunk-G3NT6BM3.js";
3
+ } from "./chunk-7IBK6MYW.js";
4
4
  import {
5
5
  getReadableCliDb
6
- } from "./chunk-RXX4GDIH.js";
6
+ } from "./chunk-LS2ZANRJ.js";
7
7
  import {
8
8
  buildCreatedAgentRecord,
9
9
  buildUpdatedAgentRecord,
@@ -12,10 +12,10 @@ import {
12
12
  resolveAgentRecordFromHybridStore,
13
13
  sanitizeAgentRecordForCliOutput,
14
14
  writeAgentRecord
15
- } from "./chunk-QA6YKM3H.js";
15
+ } from "./chunk-E2NP7ZQU.js";
16
16
  import {
17
17
  resolveCliAgentKeyInput
18
- } from "./chunk-SPAQ4PVV.js";
18
+ } from "./chunk-SAFZABH7.js";
19
19
  import {
20
20
  toErrorMessage
21
21
  } from "./chunk-HNMXYYJR.js";
@@ -167,7 +167,7 @@ async function runAgentCreateCommand(args, deps = {}) {
167
167
  }
168
168
  if (!parsed) {
169
169
  output.write(
170
- "Usage: nolo agent create <agent> [--model <id>] [--cli-provider <provider>] [--api-source <source>] [--max-concurrent <n>] [--expires-at <iso>] [--prompt <text> | --prompt-file <path> | --prompt-doc <pageKey>] [--tools <json>] [--copy-provider-from <agent>] [--name <name>] [--custom-provider-url <url>] [--api-key <key>|--provider-api-key <key>] [--verify] [--field key=value]\n".replace("[--field key=value]", "[--handle <name>] [--field key=value]")
170
+ "Usage: nolo agent create <agent> [--preset <id>] [--model <id>] [--cli-provider <provider>] [--api-source <source>] [--max-concurrent <n>] [--expires-at <iso>] [--prompt <text> | --prompt-file <path> | --prompt-doc <pageKey>] [--tools <json>] [--copy-provider-from <agent>] [--name <name>] [--custom-provider-url <url>] [--api-key <key>|--provider-api-key <key>] [--verify] [--field key=value]\n" + " --preset <id> resolves a `nolo agent providers` preset (e.g. step-plan) into provider/baseUrl/model; explicit flags override it.\n".replace("[--field key=value]", "[--handle <name>] [--field key=value]")
171
171
  );
172
172
  return args[0] ? 0 : 1;
173
173
  }
@@ -212,7 +212,7 @@ async function runAgentCreateCommand(args, deps = {}) {
212
212
  clearCliLocalRuntimePreparedAgentCache();
213
213
  let verifyResult;
214
214
  if (parsed.verify) {
215
- const { verifyCustomProvider } = await import("./agentProviderCommands-65ZC2WB4.js");
215
+ const { verifyCustomProvider } = await import("./agentProviderCommands-TOMVKJOV.js");
216
216
  const rec = built.nextRecord;
217
217
  verifyResult = await verifyCustomProvider({
218
218
  providerUrl: rec.customProviderUrl,
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-QSJ3HFEF.js";
10
10
  import {
11
11
  extractCustomId
12
- } from "./chunk-BJIRLHJR.js";
12
+ } from "./chunk-GII32WZW.js";
13
13
  import {
14
14
  selectIdentityToken
15
15
  } from "./chunk-SEJ5OS6F.js";
@@ -5,16 +5,16 @@ import {
5
5
  } from "./chunk-ONXOABJR.js";
6
6
  import {
7
7
  asNonEmptyStringArray
8
- } from "./chunk-I42VC5KR.js";
8
+ } from "./chunk-VMFTFOWF.js";
9
+ import {
10
+ isRecord
11
+ } from "./chunk-KUG52IAP.js";
9
12
  import {
10
13
  asTrimmedString
11
14
  } from "./chunk-3EUW3WEO.js";
12
15
  import {
13
16
  asOptionalPositiveFiniteNumber
14
17
  } from "./chunk-U6VC4MU4.js";
15
- import {
16
- isRecord
17
- } from "./chunk-KUG52IAP.js";
18
18
 
19
19
  // packages/agent-runtime/fileCredentialBroker.ts
20
20
  import {
@@ -35,15 +35,16 @@ import {
35
35
  resolvePlatformAuthToken,
36
36
  resolvePlatformServerUrl,
37
37
  resolveProviderTransportDecision
38
- } from "./chunk-CMH2SYHX.js";
38
+ } from "./chunk-MBEEYLGL.js";
39
39
  import {
40
40
  clipCompactText,
41
41
  isMeaningfulChatCompletionOutput,
42
42
  isMeaningfulResponsesOutput
43
- } from "./chunk-E36HZARC.js";
43
+ } from "./chunk-BF2K6MRF.js";
44
44
  import {
45
- NOLO_CLIENT_VERSION_HEADER
46
- } from "./chunk-AJHEFRGJ.js";
45
+ NOLO_CLIENT_VERSION_HEADER,
46
+ isPlatformMimoProviderModel
47
+ } from "./chunk-JTYPAMGP.js";
47
48
  import {
48
49
  isRecord
49
50
  } from "./chunk-KUG52IAP.js";
@@ -465,7 +466,11 @@ function isAbortOrTimeoutError(error) {
465
466
  }
466
467
  var CHAT_PROXY_PATH = "/api/v1/chat";
467
468
  function shouldDisableThinking(providerConfig) {
468
- return providerConfig.provider.toLowerCase() === "mimo" || /xiaomimimo\.com/i.test(providerConfig.endpoint);
469
+ return providerConfig.provider.toLowerCase() === "mimo" || /xiaomimimo\.com/i.test(providerConfig.endpoint) || // 平台托管 MiMo(provider=nolo + mimo-v2.6-*):endpoint 通常已解析成
470
+ // api.xiaomimimo.com/...(上面的正则已命中),但 transport=direct 时
471
+ // endpoint 是 nolo 服务器地址——模型 id 判据保证两跳都关掉 thinking
472
+ // (上游 thinking 默认 enabled)。
473
+ isPlatformMimoProviderModel(providerConfig.provider, providerConfig.model);
469
474
  }
470
475
  function isResponsesEndpoint(endpoint) {
471
476
  return /\/responses$/i.test(endpoint.trim());
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  buildAgentRuntimeAgentLookupKeys,
3
3
  shouldFetchAgentRuntimeRecordRemotely
4
- } from "./chunk-V3ZKNK5D.js";
4
+ } from "./chunk-YOXYA2GU.js";
5
5
 
6
6
  // packages/cli/client/localAgentRecords.ts
7
7
  var buildLocalAgentLookupKeys = buildAgentRuntimeAgentLookupKeys;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  loadProfileConfig
3
- } from "./chunk-2KDR4CWE.js";
3
+ } from "./chunk-BYMV6QZG.js";
4
4
  import {
5
5
  resolveDefaultSpawn
6
6
  } from "./chunk-X7HHHIOZ.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  buildSkillDocMarkdown
3
- } from "./chunk-AETZ7AD6.js";
3
+ } from "./chunk-Q554LLSI.js";
4
4
 
5
5
  // packages/cli/docPageHelpers.ts
6
6
  import { readFileSync } from "node:fs";
@@ -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;
@@ -35,6 +47,7 @@ var PLATFORM_HOSTED_CLAUDE_FABLE_5_MODEL = "anthropic/claude-fable-5";
35
47
  var PLATFORM_HOSTED_CLAUDE_HAIKU_45_MODEL = "anthropic/claude-haiku-4-5";
36
48
  var PLATFORM_HOSTED_GROK_4_6_MODEL = "grok-4.6";
37
49
  var PLATFORM_HOSTED_GPT_6_ASTRA_MODEL = "gpt-6-astra";
50
+ var PLATFORM_HOSTED_GPT_6_LUNA_MODEL = "gpt-6-luna";
38
51
  var PLATFORM_HOSTED_GPT_56_SOL_MODEL = "gpt-5.6-sol";
39
52
  var PLATFORM_HOSTED_GPT_56_TERRA_MODEL = "gpt-5.6-terra";
40
53
  var PLATFORM_HOSTED_GPT_56_LUNA_MODEL = "gpt-5.6-luna";
@@ -50,6 +63,9 @@ var PLATFORM_HOSTED_GEMINI_FLASH_IMAGE_MODEL = "gemini-3.1-flash-image-preview";
50
63
  var PLATFORM_HOSTED_GEMINI_PRO_IMAGE_MODEL = "gemini-3-pro-image-preview";
51
64
  var PLATFORM_HOSTED_GEMINI_FLASH_LITE_IMAGE_MODEL = "gemini-3.1-flash-lite-image";
52
65
  var PLATFORM_HOSTED_OPENAI_IMAGE_MODEL = "gpt-image-2";
66
+ var PLATFORM_HOSTED_MIMO_FLASH_MODEL = "mimo-v2.6-flash";
67
+ var PLATFORM_HOSTED_MIMO_PRO_MODEL = "mimo-v2.6-pro";
68
+ var PLATFORM_HOSTED_MIMO_PRO_ULTRASPEED_MODEL = "mimo-v2.6-pro-ultraspeed";
53
69
  var PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL = "deepseek-flash";
54
70
  var PLATFORM_HOSTED_DEEPSEEK_FLASH_VISION_EXP_MODEL = "deepseek-v4-flash-vision-exp";
55
71
  var PLATFORM_HOSTED_DEEPSEEK_PRO_MODEL = "deepseek-v4-pro";
@@ -210,6 +226,17 @@ var PLATFORM_HOSTED_ROUTING_TABLE = {
210
226
  wire: "chat.completions",
211
227
  agentRunHosted: true
212
228
  },
229
+ // GPT-6 Luna(2026-09-22 随 GPT-6 Sol/Luna 上线;官方模型页
230
+ // developers.openai.com/api/docs/models/gpt-6-luna,2026-09-23 核对):
231
+ // 官方 id 即 `gpt-6-luna`,Chat Completions 与 Responses 端点均可用;
232
+ // 平台托管沿用 GPT-6 系既有 chat.completions 分流(与 astra 同线同源)。
233
+ [PLATFORM_HOSTED_GPT_6_LUNA_MODEL]: {
234
+ endpoint: "https://api.openai.com/v1/chat/completions",
235
+ usageProvider: "openai",
236
+ keyName: "openai",
237
+ wire: "chat.completions",
238
+ agentRunHosted: true
239
+ },
213
240
  [PLATFORM_HOSTED_GPT_56_SOL_MODEL]: {
214
241
  endpoint: "https://api.openai.com/v1/chat/completions",
215
242
  usageProvider: "openai",
@@ -239,6 +266,39 @@ var PLATFORM_HOSTED_ROUTING_TABLE = {
239
266
  wire: "chat.completions",
240
267
  agentRunHosted: false
241
268
  },
269
+ // MiMo V2.6 系 -> 小米官方按量计费 API(api.xiaomimimo.com,key 用 MIMO_API_KEY)。
270
+ // 模型 id 与上游一致,无 upstreamModelId(直传,不做 remap);
271
+ // wire 是 chat.completions(不是 responses 特例,走通用 hostedRoute 分支)。
272
+ //
273
+ // 上游事实(mimo.mi.com 官方文档 /api/chat/openai-api,2026-09-20 版):
274
+ // - `thinking.type` 默认 enabled;平台未显式开启思考时补 {type:"disabled"}
275
+ // (判据同时认 provider=mimo / xiaomimimo.com 端点与下面的托管模型 id);
276
+ // - 同时兼容 `max_tokens` 与 `max_completion_tokens`(实测 200 OK);文档
277
+ // 未提及 `stream_options` / `include_usage`——平台因此不请求
278
+ // include_usage,usage 由响应体自带(含 prompt_tokens_details.cached_tokens,
279
+ // 缓存命中按 inputCacheHit 价计入积分);
280
+ // - 1M 上下文 / 128K 最大输出 / 文本+图+音视频输入(全模态理解)。
281
+ [PLATFORM_HOSTED_MIMO_FLASH_MODEL]: {
282
+ endpoint: "https://api.xiaomimimo.com/v1/chat/completions",
283
+ usageProvider: "mimo",
284
+ keyName: "mimo",
285
+ wire: "chat.completions",
286
+ agentRunHosted: true
287
+ },
288
+ [PLATFORM_HOSTED_MIMO_PRO_MODEL]: {
289
+ endpoint: "https://api.xiaomimimo.com/v1/chat/completions",
290
+ usageProvider: "mimo",
291
+ keyName: "mimo",
292
+ wire: "chat.completions",
293
+ agentRunHosted: true
294
+ },
295
+ [PLATFORM_HOSTED_MIMO_PRO_ULTRASPEED_MODEL]: {
296
+ endpoint: "https://api.xiaomimimo.com/v1/chat/completions",
297
+ usageProvider: "mimo",
298
+ keyName: "mimo",
299
+ wire: "chat.completions",
300
+ agentRunHosted: true
301
+ },
242
302
  // OpenAI Image -> OpenAI Responses API
243
303
  [PLATFORM_HOSTED_OPENAI_IMAGE_MODEL]: {
244
304
  endpoint: "https://api.openai.com/v1/responses",
@@ -415,7 +475,7 @@ function buildClientVersionGateErrorDetail(decision) {
415
475
  // packages/ai/llm/platformHosted.ts
416
476
  var PLATFORM_CREDITS_PER_USD = 8;
417
477
  var toPlatformCredits = (usdPerMillion) => Number((usdPerMillion * PLATFORM_CREDITS_PER_USD).toFixed(6));
418
- var CNY_UPSTREAM_MULTIPLIER = 1.2;
478
+ var CNY_UPSTREAM_MULTIPLIER = 1.1;
419
479
  var toCnyCredits = (cnyPerMillion) => Number((cnyPerMillion * CNY_UPSTREAM_MULTIPLIER).toFixed(6));
420
480
  var PLATFORM_HOSTED_GROK_PRICE = {
421
481
  input: toPlatformCredits(2),
@@ -506,6 +566,14 @@ var PLATFORM_HOSTED_GPT_56_LUNA_PRICE = {
506
566
  output: toPlatformCredits(1.2)
507
567
  // 9.6 credits
508
568
  };
569
+ var PLATFORM_HOSTED_GPT_6_LUNA_PRICE = {
570
+ input: toPlatformCredits(0.1),
571
+ // 0.8 credits
572
+ inputCacheHit: toPlatformCredits(0.01),
573
+ // 0.08 credits
574
+ output: toPlatformCredits(0.5)
575
+ // 4.0 credits
576
+ };
509
577
  var PLATFORM_HOSTED_GLM_53_FLASH_PRICE = {
510
578
  input: toPlatformCredits(0.1),
511
579
  // 0.8 credits
@@ -597,6 +665,40 @@ var createPlatformHostedGeminiImageModel = ({
597
665
  imageGenerationProfiles,
598
666
  supportsTool: false
599
667
  });
668
+ var PLATFORM_HOSTED_MIMO_MODELS = [
669
+ PLATFORM_HOSTED_MIMO_FLASH_MODEL,
670
+ PLATFORM_HOSTED_MIMO_PRO_MODEL,
671
+ PLATFORM_HOSTED_MIMO_PRO_ULTRASPEED_MODEL
672
+ ];
673
+ var isPlatformHostedMimoModel = (model) => {
674
+ const m = asTrimmedLowercaseString(model);
675
+ return PLATFORM_HOSTED_MIMO_MODELS.includes(m);
676
+ };
677
+ var isPlatformMimoProviderModel = (provider, model) => isPlatformManagedProvider(provider) && isPlatformHostedMimoModel(model);
678
+ var PLATFORM_HOSTED_MIMO_FLASH_PRICE = {
679
+ input: toCnyCredits(1),
680
+ // ¥1.00
681
+ inputCacheHit: toCnyCredits(0.02),
682
+ // ¥0.02
683
+ output: toCnyCredits(2)
684
+ // ¥2.00
685
+ };
686
+ var PLATFORM_HOSTED_MIMO_PRO_PRICE = {
687
+ input: toCnyCredits(3),
688
+ // ¥3.00
689
+ inputCacheHit: toCnyCredits(0.025),
690
+ // ¥0.025
691
+ output: toCnyCredits(6)
692
+ // ¥6.00
693
+ };
694
+ var PLATFORM_HOSTED_MIMO_PRO_ULTRASPEED_PRICE = {
695
+ input: toCnyCredits(30),
696
+ // ¥30.00
697
+ inputCacheHit: toCnyCredits(0.25),
698
+ // ¥0.25
699
+ output: toCnyCredits(60)
700
+ // ¥60.00
701
+ };
600
702
  var PLATFORM_HOSTED_DEEPSEEK_FLASH_PEAK_PRICE = {
601
703
  input: toCnyCredits(2),
602
704
  // ¥2
@@ -754,6 +856,40 @@ var platformHostedModels = [
754
856
  supportsReasoningEffort: true,
755
857
  minClientVersion: PLATFORM_HOSTED_GLM_53_FLASH_MIN_CLIENT_VERSION
756
858
  },
859
+ // MiMo V2.6 系(小米官方按量计费 API,key 用 MIMO_API_KEY):1M 上下文、
860
+ // 最大输出 128K、原生多模态输入(文本/图/音/视频)、函数调用与深度思考。
861
+ // 能力值来源:mimo.mi.com 模型列表页 + 官方模型目录(max_output_length
862
+ // 131072、context 1048576、input_modalities 含 image/audio/video),2026-09-21。
863
+ {
864
+ name: PLATFORM_HOSTED_MIMO_FLASH_MODEL,
865
+ displayName: "MiMo V2.6 Flash",
866
+ hasVision: true,
867
+ price: { ...PLATFORM_HOSTED_MIMO_FLASH_PRICE },
868
+ maxOutputTokens: 131072,
869
+ contextWindow: 1048576,
870
+ supportsTool: true,
871
+ supportsReasoningEffort: true
872
+ },
873
+ {
874
+ name: PLATFORM_HOSTED_MIMO_PRO_MODEL,
875
+ displayName: "MiMo V2.6 Pro",
876
+ hasVision: true,
877
+ price: { ...PLATFORM_HOSTED_MIMO_PRO_PRICE },
878
+ maxOutputTokens: 131072,
879
+ contextWindow: 1048576,
880
+ supportsTool: true,
881
+ supportsReasoningEffort: true
882
+ },
883
+ {
884
+ name: PLATFORM_HOSTED_MIMO_PRO_ULTRASPEED_MODEL,
885
+ displayName: "MiMo V2.6 Pro Ultraspeed",
886
+ hasVision: true,
887
+ price: { ...PLATFORM_HOSTED_MIMO_PRO_ULTRASPEED_PRICE },
888
+ maxOutputTokens: 131072,
889
+ contextWindow: 1048576,
890
+ supportsTool: true,
891
+ supportsReasoningEffort: true
892
+ },
757
893
  // Claude 系(真实 DeepInfra 模型,官方 id 与平台 id 同名):无缓存价,
758
894
  // 计费按 input 全价(见 calculatePrice 的 deepinfra 分支)。
759
895
  {
@@ -803,6 +939,19 @@ var platformHostedModels = [
803
939
  supportsTool: true,
804
940
  supportsReasoningEffort: true
805
941
  },
942
+ {
943
+ // GPT-6 Luna:官方 1.05M 上下文 / 128k 输出 / 文本+图像输入、文本输出 /
944
+ // reasoning effort none-max(默认 medium);官方 Chat Completions 端点在
945
+ // reasoning_effort=none 时支持 function calling(与 astra 同线)。
946
+ name: PLATFORM_HOSTED_GPT_6_LUNA_MODEL,
947
+ displayName: "GPT-6 Luna",
948
+ hasVision: true,
949
+ price: { ...PLATFORM_HOSTED_GPT_6_LUNA_PRICE },
950
+ maxOutputTokens: 128e3,
951
+ contextWindow: 105e4,
952
+ supportsTool: true,
953
+ supportsReasoningEffort: true
954
+ },
806
955
  {
807
956
  name: PLATFORM_HOSTED_GPT_56_SOL_MODEL,
808
957
  displayName: "GPT-5.6 Sol",
@@ -1012,6 +1161,11 @@ export {
1012
1161
  PLATFORM_HOSTED_GLM_53_FLASH_BASETEN_PRICE,
1013
1162
  isPlatformHostedOpenAIImageModel,
1014
1163
  isPlatformHostedImageModel,
1164
+ isPlatformMimoProviderModel,
1165
+ PLATFORM_HOSTED_DEEPSEEK_FLASH_PEAK_PRICE,
1166
+ PLATFORM_HOSTED_DEEPSEEK_FLASH_OFF_PEAK_PRICE,
1167
+ PLATFORM_HOSTED_DEEPSEEK_PRO_PEAK_PRICE,
1168
+ PLATFORM_HOSTED_DEEPSEEK_PRO_OFF_PEAK_PRICE,
1015
1169
  getPlatformHostedDeepSeekV4Price,
1016
1170
  isPlatformHostedDeepseekModel,
1017
1171
  isPlatformHostedDeepSeekV4Model,
@@ -199,7 +199,7 @@ async function readDocFunc(args, thunkApi) {
199
199
  throw new Error(`\u65E0\u6548\u7684\u9875\u9762 ID: ${id}\u3002\u9875\u9762 ID \u901A\u5E38\u4EE5 "page-" \u5F00\u5934\u3002`);
200
200
  }
201
201
  try {
202
- const { readAction } = await import("./read-LC6HVYBN.js");
202
+ const { readAction } = await import("./read-S4WC2OUK.js");
203
203
  const pageData = await readAction({ dbKey: id }, thunkApi);
204
204
  if (!pageData) {
205
205
  throw new Error(`\u672A\u627E\u5230 ID \u4E3A ${id} \u7684\u9875\u9762\u3002`);
@@ -4,7 +4,7 @@ import {
4
4
 
5
5
  // packages/cli/agentCommandSupport.ts
6
6
  async function getDefaultCliDb() {
7
- const { getDefaultCliLocalRuntimeDb } = await import("./localRuntimeDb-P37ZTX55.js");
7
+ const { getDefaultCliLocalRuntimeDb } = await import("./localRuntimeDb-SYQGUF4U.js");
8
8
  return getDefaultCliLocalRuntimeDb();
9
9
  }
10
10
  function createNullCliDb() {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  selectCurrentServer,
3
3
  selectRemoteServers
4
- } from "./chunk-XWNRAIUL.js";
4
+ } from "./chunk-DM4UNXPK.js";
5
5
  import {
6
6
  createUserKey,
7
7
  extractAgentInfo,
@@ -10,11 +10,11 @@ import {
10
10
  sanitizeShareData,
11
11
  shareKey,
12
12
  toNonEmptyString
13
- } from "./chunk-NHRQCXIQ.js";
13
+ } from "./chunk-VMFTFOWF.js";
14
14
  import {
15
15
  noloDeleteRequest,
16
16
  noloWriteRequest
17
- } from "./chunk-3RAG2NAD.js";
17
+ } from "./chunk-UKWGR5SS.js";
18
18
  import {
19
19
  normalizeTimeFields
20
20
  } from "./chunk-QOKAKDPE.js";
@@ -3,7 +3,7 @@ import {
3
3
  resolvePlatformChatCompletionsEndpoint,
4
4
  resolvePlatformHostedCredentialProvider,
5
5
  resolvePlatformResponsesEndpoint
6
- } from "./chunk-K7AG465Q.js";
6
+ } from "./chunk-ZHUTWJ3N.js";
7
7
  import {
8
8
  CLI_PROVIDER_VALUES
9
9
  } from "./chunk-W7XHHYWM.js";
@@ -11,7 +11,7 @@ import {
11
11
  CLIENT_VERSION_TOO_OLD_CODE,
12
12
  buildClientVersionGateErrorDetail,
13
13
  evaluatePlatformHostedClientVersionGate
14
- } from "./chunk-AJHEFRGJ.js";
14
+ } from "./chunk-JTYPAMGP.js";
15
15
  import {
16
16
  asTrimmedLowercaseString
17
17
  } from "./chunk-QSJ3HFEF.js";
@@ -3,12 +3,14 @@ var BASE_BUILTIN_DIALOG_LLM_CONFIG = {
3
3
  apiSource: "platform",
4
4
  useServerProxy: true
5
5
  };
6
+ var BUILTIN_DIALOG_LLM_FALLBACK_MODEL = "deepseek-flash";
7
+ var BUILTIN_DIALOG_LLM_CHAT_FALLBACK_MODEL = "glm-5-3-flash";
6
8
  var BUILTIN_TITLE_LLM_CONFIG = {
7
9
  ...BASE_BUILTIN_DIALOG_LLM_CONFIG,
8
10
  provider: "nolo",
9
11
  id: "builtin-dialog-title-llm",
10
12
  name: "Builtin Dialog Title LLM",
11
- model: "glm-5-3-flash",
13
+ model: "mimo-v2.6-flash",
12
14
  prompt: "You are a title generator for chat history. \u4F60\u53EA\u505A\u4E00\u4EF6\u4E8B\uFF1A\u6839\u636E\u5BF9\u8BDD\u5185\u5BB9\u8F93\u51FA\u6700\u7EC8\u6807\u9898\u3002\u786C\u6027\u89C4\u5219\uFF1A1) \u53EA\u8F93\u51FA\u6807\u9898\u8FD9\u4E00\u884C\uFF1B\u4E25\u7981\u8F93\u51FA\u63A8\u7406\u3001\u5206\u6790\u3001\u6B65\u9AA4\u3001\u89E3\u91CA\u3001\u524D\u8A00\u3001\u540E\u8BB0\u3001\u7FFB\u8BD1\u3001\u81F4\u6B49\u6216\u4EFB\u4F55\u989D\u5916\u8BF4\u660E\u30022) \u4E0D\u8981\u56DE\u7B54\u7528\u6237\u8BF7\u6C42\uFF0C\u4E0D\u8981\u5199\u6458\u8981\uFF0C\u53EA\u7ED9\u6807\u9898\u7ED3\u679C\u30023) \u6807\u9898\u5C3D\u91CF\u77ED\uFF1A\u901A\u5E38 2-5 \u4E2A\u8BCD\uFF0C\u82F1\u6587\u4E0D\u8D85\u8FC7 6 \u4E2A\u8BCD\u30024) \u4F7F\u7528\u5BF9\u8BDD\u4E3B\u8BED\u8A00\uFF1B\u6DF7\u5408\u8BED\u8A00\u65F6\u4F18\u5148\u7528\u6237\u4E3B\u8981\u8BED\u8A00\u30025) \u4F18\u5148\u590D\u7528\u5BF9\u8BDD\u4E2D\u7684\u5177\u4F53\u4E3B\u9898\u8BCD\uFF0C\u907F\u514D issue\u3001help\u3001discussion\u3001analysis\u3001update \u8FD9\u7C7B\u7A7A\u6CDB\u8BCD\u30026) \u5FFD\u7565 tool JSON\u3001\u51FD\u6570\u540D\u3001branch label\u3001agent \u540D\u3001\u7CFB\u7EDF\u6307\u4EE4\u548C\u7F16\u6392\u75D5\u8FF9\uFF08\u5982 GPT\u3001Claude\u3001Gemini\uFF09\uFF1B\u6807\u9898\u8981\u843D\u5728\u7528\u6237\u771F\u6B63\u8BA8\u8BBA\u7684\u5BF9\u8C61\u6216\u51B3\u7B56\u4E0A\u30027) \u66F4\u504F\u597D\u201C\u5BF9\u8C61 + \u52A8\u4F5C/\u5224\u65AD\u201D\u7684\u77ED\u6807\u9898\uFF0C\u4F8B\u5982\u201CAI \u90AE\u4EF6\u52A9\u624B\u53D6\u820D\u201D\u201C\u4E1C\u4EAC\u56DB\u65E5\u6162\u65C5\u884C\u201D\u201C\u91CD\u590D\u6263\u8D39\u9000\u6B3E\u201D\u30028) \u7EAF\u6587\u672C\uFF0C\u4E0D\u8981\u9879\u76EE\u7B26\u53F7\u3001\u7F16\u53F7\u3001markdown\u3001emoji\u3002\u6700\u7EC8\u53EA\u8FD4\u56DE\u6807\u9898\u6587\u672C\u3002 Output only the title text."
13
15
  };
14
16
  var BUILTIN_SUMMARY_LLM_CONFIG = {
@@ -16,13 +18,15 @@ var BUILTIN_SUMMARY_LLM_CONFIG = {
16
18
  provider: "nolo",
17
19
  id: "builtin-dialog-summary-llm",
18
20
  name: "Builtin Dialog Summary LLM",
19
- model: "glm-5-3-flash",
21
+ model: "mimo-v2.6-flash",
20
22
  // @deprecated 用 COMPACTION_SUMMARY_SYSTEM_PROMPT(packages/ai/context/compactionShared.ts)。
21
23
  // 生产代码已全部迁移;此旧两段式 prompt 仅被 scripts/probes/dialog 探针脚本使用,待探针迁移后删除。
22
24
  prompt: "\u4F60\u662F\u4E00\u4E2A\u4E13\u4E1A\u7684\u5BF9\u8BDD\u8BB0\u5FC6\u52A9\u7406\u3002\u8BF7\u57FA\u4E8E\u3010\u73B0\u6709\u8BB0\u5FC6\u3011\u548C\u3010\u65B0\u589E\u5BF9\u8BDD\u3011\uFF0C\u8F93\u51FA\u4E00\u4EFD\u66F4\u65B0\u540E\u7684\u5BF9\u8BDD\u8BB0\u5FC6\u6863\u6848\u3002\u4E25\u683C\u53EA\u8F93\u51FA\u4E0B\u9762\u4E24\u90E8\u5206\uFF0C\u6807\u9898\u5FC5\u987B\u5B8C\u5168\u4E00\u81F4\uFF1A\n\u5173\u952E\u4E8B\u5B9E\u6863\u6848\n- ...\n\u5BF9\u8BDD\u5267\u60C5\u6458\u8981\n- ...\n\u8981\u6C42\uFF1A1) \u4F7F\u7528\u5BF9\u8BDD\u4E3B\u8BED\u8A00\uFF1B\u6DF7\u5408\u8BED\u8A00\u65F6\u4F18\u5148\u8DDF\u968F\u7528\u6237\u4E3B\u8981\u8BED\u8A00\uFF0C\u4E13\u6709\u540D\u8BCD\u4FDD\u7559\u539F\u6587\u30022) \u5173\u952E\u4E8B\u5B9E\u6863\u6848\u53EA\u4FDD\u7559\u4E4B\u540E\u7EE7\u7EED\u5BF9\u8BDD\u4ECD\u6709\u4EF7\u503C\u7684\u4FE1\u606F\uFF0C\u4F8B\u5982\u7528\u6237\u504F\u597D\u3001\u76EE\u6807\u3001\u7EA6\u675F\u3001\u6280\u672F\u6808\u3001\u786E\u5B9A\u7684\u6587\u4EF6\u540D/\u53D8\u91CF\u540D\u3001\u6838\u5FC3\u51B3\u7B56\u3001\u5F85\u529E\u4E8B\u9879\u30023) \u5BF9\u8BDD\u5267\u60C5\u6458\u8981\u5148\u6781\u7B80\u6982\u62EC\u65E7\u4E0A\u4E0B\u6587\uFF0C\u518D\u66F4\u8BE6\u7EC6\u8BB0\u5F55\u6700\u8FD1\u65B0\u589E\u7684\u8FDB\u5C55\u3001\u5206\u6B67\u3001\u7ED3\u8BBA\u548C\u4E0B\u4E00\u6B65\u30024) \u5FFD\u7565\u5BD2\u6684\u3001\u91CD\u590D\u5C1D\u8BD5\u3001\u5DF2\u653E\u5F03\u65B9\u6848\u548C\u65E0\u4EF7\u503C\u5E9F\u8BDD\u30025) \u4E0D\u8981\u7F16\u9020\u672A\u51FA\u73B0\u7684\u4FE1\u606F\uFF0C\u4E0D\u8981\u8F93\u51FA\u5F00\u573A\u767D\u3001\u7ED3\u675F\u8BED\u3001markdown \u4EE3\u7801\u5757\u6216\u989D\u5916\u7AE0\u8282\u3002"
23
25
  };
24
26
 
25
27
  export {
28
+ BUILTIN_DIALOG_LLM_FALLBACK_MODEL,
29
+ BUILTIN_DIALOG_LLM_CHAT_FALLBACK_MODEL,
26
30
  BUILTIN_TITLE_LLM_CONFIG,
27
31
  BUILTIN_SUMMARY_LLM_CONFIG
28
32
  };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  trimTrailingSlash
3
- } from "./chunk-CMH2SYHX.js";
3
+ } from "./chunk-MBEEYLGL.js";
4
4
  import {
5
5
  toErrorMessage
6
6
  } from "./chunk-HNMXYYJR.js";
@@ -3,23 +3,37 @@ import {
3
3
  } from "./chunk-YYLHWIW6.js";
4
4
  import {
5
5
  compareAgentSelection
6
- } from "./chunk-V3ZKNK5D.js";
6
+ } from "./chunk-YOXYA2GU.js";
7
+ import {
8
+ isAntigravityOAuthAgent
9
+ } from "./chunk-NKIH4Q7W.js";
7
10
  import {
8
11
  getModelAbility
9
- } from "./chunk-NG4UT4K4.js";
12
+ } from "./chunk-4QKBQHPQ.js";
10
13
  import {
11
14
  isOwnedAgentKey,
12
15
  ownedAgentKey,
13
16
  publicAgentKey
14
- } from "./chunk-BJIRLHJR.js";
17
+ } from "./chunk-GII32WZW.js";
15
18
  import {
16
19
  fnv1a32Hex
17
- } from "./chunk-3RAG2NAD.js";
20
+ } from "./chunk-UKWGR5SS.js";
18
21
 
19
22
  // packages/ai/agent/agentBilling.ts
20
23
  function resolveBillingSource(candidate) {
21
24
  if (candidate?.local === true || candidate?.isLocal === true || candidate?.cliProvider === "local" || candidate?.apiSource === "local" || candidate?.provider === "local" || candidate?.billingSource === "local") return "local";
22
- if (candidate?.isOwned !== true) return "platform_credits";
25
+ if (candidate?.isOwned !== true) {
26
+ const ownerUserId = typeof candidate?.userId === "string" && candidate.userId.trim() ? candidate.userId.trim() : typeof candidate?.ownerId === "string" && candidate.ownerId.trim() ? candidate.ownerId.trim() : "";
27
+ if (ownerUserId && (candidate?.isOAuth === true || isOAuthApiKeyRef(candidate?.apiKeyRef) || isAntigravityOAuthAgent({
28
+ key: "billing-source-probe",
29
+ apiKeyRef: candidate?.apiKeyRef ?? void 0,
30
+ provider: candidate?.provider ?? void 0,
31
+ customProviderUrl: candidate?.customProviderUrl ?? void 0
32
+ }))) {
33
+ return "owner_subscription";
34
+ }
35
+ return "platform_credits";
36
+ }
23
37
  if (candidate?.isOAuth === true || candidate?.billingSource === "user_subscription" || candidate?.apiSource === "oauth" || isOAuthApiKeyRef(candidate?.apiKeyRef)) return "user_subscription";
24
38
  if (candidate?.apiSource === "custom" || candidate?.billingSource === "user_api") {
25
39
  return "user_api";
@@ -217,6 +231,7 @@ function summarizeCredentialGroups(agents, now = Date.now()) {
217
231
  const groups = /* @__PURE__ */ new Map();
218
232
  for (const agent of agents) {
219
233
  if (!agent.credentialGroup || !agent.credentialKind) continue;
234
+ if (agent.isOwned === false) continue;
220
235
  const existing = groups.get(agent.credentialGroup);
221
236
  const at = typeof agent.nextAvailableAt === "number" && agent.nextAvailableAt > now ? agent.nextAvailableAt : void 0;
222
237
  if (!existing) {
@@ -278,6 +293,9 @@ function resolveFavoriteStatus(record, options) {
278
293
  if (typeof record?.dbKey === "string" && record.dbKey) candidateKeys.push(record.dbKey);
279
294
  if (typeof record?.privateKey === "string" && record.privateKey) candidateKeys.push(record.privateKey);
280
295
  if (typeof record?.publicKey === "string" && record.publicKey) candidateKeys.push(record.publicKey);
296
+ if (typeof record?.verifiedAgentKey === "string" && record.verifiedAgentKey) {
297
+ candidateKeys.push(record.verifiedAgentKey);
298
+ }
281
299
  if (typeof record?.id === "string" && record.id) {
282
300
  candidateKeys.push(record.id);
283
301
  candidateKeys.push(publicAgentKey(record.id));
@@ -362,12 +380,15 @@ function toSafeAgentSummary(record, options) {
362
380
  },
363
381
  options?.now ?? Date.now()
364
382
  );
383
+ const verifiedSharedKey = typeof record?.verifiedAgentKey === "string" && record.verifiedAgentKey ? record.verifiedAgentKey : void 0;
365
384
  let agentKey;
366
385
  if (currentUserId) {
367
386
  if (isOwned) {
368
387
  agentKey = ownedKey ?? (id ? ownedAgentKey(currentUserId, id) : void 0);
369
388
  } else if (publicKey) {
370
389
  agentKey = publicKey;
390
+ } else {
391
+ agentKey = verifiedSharedKey;
371
392
  }
372
393
  }
373
394
  const rawCredRef = (typeof record?.apiKeyRef === "string" && record.apiKeyRef ? record.apiKeyRef : void 0) ?? (typeof record?.credentialRef === "string" && record.credentialRef ? record.credentialRef : void 0);