nolo-cli 0.78.0-alpha.1 → 0.78.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 (150) hide show
  1. package/README.md +2 -2
  2. package/{_executeModel-T3FPYFVF.js → _executeModel-W26HVI75.js} +46 -46
  3. package/{action-D22U6CTH.js → action-6DXQGJMX.js} +11 -11
  4. package/{addContentAction-XAPUTGL4.js → addContentAction-I7VX5SAC.js} +9 -9
  5. package/{addDialogAgentAction-M7VLLBZM.js → addDialogAgentAction-OJSFV7DZ.js} +8 -8
  6. package/{agentDeleteCommand-2TYFURBN.js → agentDeleteCommand-XNFWCKBH.js} +30 -28
  7. package/{agentEmailCommands-7P35ZMUA.js → agentEmailCommands-XYOZGQ6F.js} +61 -59
  8. package/{agentGrantCommands-R3VQEZJR.js → agentGrantCommands-YW6PQAQ2.js} +2 -2
  9. package/{agentListCommands-IFUOWXP3.js → agentListCommands-DFWFU6XO.js} +38 -30
  10. package/{agentMachineCommands-G46ZZ2ZQ.js → agentMachineCommands-2EANXBQS.js} +30 -28
  11. package/{agentProviderCommands-65ZC2WB4.js → agentProviderCommands-ZBYHGTGY.js} +87 -0
  12. package/{agentPullCommand-N7L2CT7L.js → agentPullCommand-GLOOXJ2E.js} +3 -3
  13. package/{agentRecordCommands-R74LTQEQ.js → agentRecordCommands-DRY5LE4F.js} +58 -56
  14. package/{agentRunCommand-IRSZYCEU.js → agentRunCommand-YONMYI4X.js} +59 -57
  15. package/{agentRuntimeLocal-PUZINLWJ.js → agentRuntimeLocal-2JFG4HDU.js} +28 -26
  16. package/{agentSlice-EACXUOWW.js → agentSlice-ZNLGFUB5.js} +10 -10
  17. package/{appDeleteCommands-U4NTEJYQ.js → appDeleteCommands-2UN4N2NR.js} +30 -28
  18. package/{appDeployCommands-FXF45Q7F.js → appDeployCommands-37D74KRR.js} +30 -28
  19. package/{appDeployStatusCommands-KONVRM53.js → appDeployStatusCommands-QBLWL2IA.js} +30 -28
  20. package/{appGetCommands-3VOGIZ7T.js → appGetCommands-6KXIDF2T.js} +30 -28
  21. package/{appListCommands-A6ROBW7P.js → appListCommands-G2WFGEWQ.js} +30 -28
  22. package/{authCommand-EVGFLAHO.js → authCommand-V2DJ7DB7.js} +164 -24
  23. package/{authCommands-ILTBI6JV.js → authCommands-RGOGCPP6.js} +4 -5
  24. package/builtinSkillRegistry-WBGYKIAZ.js +33 -0
  25. package/{chatQueueReduxAdapter-XEIJO5WR.js → chatQueueReduxAdapter-XCJHIY3R.js} +24 -24
  26. package/chunk-2ADBVBEM.js +1625 -0
  27. package/{chunk-FPTQQSS6.js → chunk-2AYMFHUG.js} +26 -5
  28. package/{chunk-EXMHJN7C.js → chunk-2F4VYGFW.js} +2 -2
  29. package/{chunk-C3FZR5EC.js → chunk-2F7RJC6L.js} +1 -1
  30. package/{chunk-MGU5ADIQ.js → chunk-36ZJDN6A.js} +10 -10
  31. package/{chunk-HQUORJTM.js → chunk-3BMYXEUW.js} +1 -1
  32. package/{chunk-PZM3EENV.js → chunk-3CR2LC6X.js} +1 -1
  33. package/{chunk-DWPNOYMB.js → chunk-3R5PH4IP.js} +1 -1
  34. package/{chunk-ZY4K4CZR.js → chunk-4BYPU626.js} +909 -304
  35. package/{chunk-ZZCJUXUI.js → chunk-4DRWWIOL.js} +2 -2
  36. package/{chunk-H7UKKEIS.js → chunk-576IMUGH.js} +1 -1
  37. package/{chunk-QRBAZ5PW.js → chunk-5DFFKASO.js} +3 -3
  38. package/{chunk-5XTOKQLW.js → chunk-5UTFL4QJ.js} +6 -2
  39. package/{chunk-CDVGNZDA.js → chunk-5V4NJHRM.js} +11 -173
  40. package/chunk-5ZUL4CUO.js +10 -0
  41. package/{chunk-BJCWNHVU.js → chunk-6BEA566T.js} +2 -2
  42. package/{chunk-E6RGHPDR.js → chunk-6D6VBVEW.js} +4 -6
  43. package/{chunk-XEEHSS64.js → chunk-74UCTXK3.js} +1199 -51
  44. package/{chunk-U6LKJRJB.js → chunk-7MYYE7WX.js} +42 -26
  45. package/{chunk-BYEJ7K2Z.js → chunk-7S4YWN7P.js} +1 -1
  46. package/{chunk-AFIWC5NH.js → chunk-A2C4AKKM.js} +1 -1
  47. package/{chunk-SREASRV5.js → chunk-ABQYVJBJ.js} +1 -1
  48. package/{chunk-AJHEFRGJ.js → chunk-ASGDO77C.js} +122 -1
  49. package/{chunk-2KDR4CWE.js → chunk-BYMV6QZG.js} +24 -1
  50. package/{chunk-MYU3MJCF.js → chunk-CLI4LFSM.js} +175 -7
  51. package/{chunk-PYXL2CJL.js → chunk-DNQPPRHY.js} +1 -1
  52. package/{chunk-3QPYFHAH.js → chunk-DPQ2WVBY.js} +1 -1
  53. package/{chunk-733J6D44.js → chunk-EXTJ4GXV.js} +6 -6
  54. package/{chunk-DSRXPQWA.js → chunk-F2CGG72C.js} +43 -43
  55. package/{chunk-P7FA2HMM.js → chunk-FQYMLZ6C.js} +13 -15
  56. package/{chunk-BJIRLHJR.js → chunk-GII32WZW.js} +1 -0
  57. package/{chunk-FSFQ3A7S.js → chunk-GRYGRGPS.js} +10 -10
  58. package/{chunk-D74EWXL4.js → chunk-HMEMJ7GH.js} +386 -46
  59. package/{chunk-OZX2IPKM.js → chunk-HQCSU3DI.js} +1 -1
  60. package/{chunk-3JQ2NRYU.js → chunk-HVURBGF3.js} +4 -4
  61. package/{chunk-ALGK6TIE.js → chunk-HYZHJ5GW.js} +3 -3
  62. package/{chunk-Q6FF2MCK.js → chunk-IIKPWSPX.js} +1 -1
  63. package/{chunk-X7Z7U4Z6.js → chunk-JBBZ5KUM.js} +15 -15
  64. package/{chunk-KC5FAHVS.js → chunk-JEDZAO7L.js} +1 -1
  65. package/{chunk-6XIE5ZGI.js → chunk-JPGCXHNM.js} +1 -1
  66. package/{chunk-4EJ5QYB5.js → chunk-JTK3TJYV.js} +1 -1
  67. package/{chunk-CMH2SYHX.js → chunk-K7M3MWCE.js} +2 -2
  68. package/{chunk-5J7W2VWW.js → chunk-L2ICPOAL.js} +6 -265
  69. package/{chunk-RXX4GDIH.js → chunk-LS2ZANRJ.js} +1 -1
  70. package/{chunk-EVBFYPDC.js → chunk-MC4XLIJ7.js} +6 -2
  71. package/{chunk-PGSKWZCB.js → chunk-MJHQ3NRV.js} +1 -1
  72. package/{chunk-ZLPA7K55.js → chunk-N3OAPEZE.js} +29 -10
  73. package/{chunk-K7AG465Q.js → chunk-ND2J3NRB.js} +4 -2
  74. package/{chunk-XWNRAIUL.js → chunk-PH5J5VUY.js} +6 -16
  75. package/{chunk-AETZ7AD6.js → chunk-Q554LLSI.js} +1 -1
  76. package/chunk-Q5FJJ6XI.js +103 -0
  77. package/{chunk-JYYZCK2Z.js → chunk-QFMFJZLO.js} +1 -1
  78. package/{chunk-KIS76A2P.js → chunk-QHETQ3KI.js} +38 -4
  79. package/{chunk-UZ6XXCVR.js → chunk-RZANZZL2.js} +15 -2
  80. package/{chunk-SPAQ4PVV.js → chunk-SAFZABH7.js} +1 -1
  81. package/{chunk-QC5LGHYP.js → chunk-SMZSWB44.js} +10 -5
  82. package/chunk-TL6L5XUT.js +266 -0
  83. package/{chunk-QUH3XHL5.js → chunk-TVNI5FLG.js} +7 -7
  84. package/{chunk-YFADVSZE.js → chunk-UA5S3LQQ.js} +6 -6
  85. package/{chunk-G3NT6BM3.js → chunk-UMGHLCDZ.js} +141 -58
  86. package/{chunk-QA6YKM3H.js → chunk-UTCCPWB2.js} +32 -4
  87. package/{chunk-E36HZARC.js → chunk-VHJLQHPQ.js} +3 -3
  88. package/{chunk-NHRQCXIQ.js → chunk-VMFTFOWF.js} +13 -3
  89. package/{chunk-UJ63UXGE.js → chunk-VRLI2WNW.js} +1073 -752
  90. package/{chunk-NG4UT4K4.js → chunk-WS22FPWT.js} +1 -1
  91. package/{chunk-MEVSATIF.js → chunk-WXPVOQD7.js} +66 -792
  92. package/{chunk-AFIKMMGC.js → chunk-XKQJJK4F.js} +1 -1
  93. package/{chunk-SZLVDREM.js → chunk-XMGHGEN6.js} +3 -3
  94. package/{chunk-L2Y24GRM.js → chunk-XTUY5EL4.js} +16 -12
  95. package/{chunk-V3ZKNK5D.js → chunk-YOXYA2GU.js} +10 -10
  96. package/{chunk-GBPZKFYK.js → chunk-Z33ARZCP.js} +4 -4
  97. package/chunk-ZAB3A45K.js +677 -0
  98. package/{chunk-UDQWGU7F.js → chunk-ZBT3WNBK.js} +1 -1
  99. package/{contentThunks-3SPROFG5.js → contentThunks-VURN3DFW.js} +25 -25
  100. package/{createAgentAutomationAction-EIP2EG3O.js → createAgentAutomationAction-QZAAY77R.js} +25 -25
  101. package/{createDialogAction-RLUSTN4D.js → createDialogAction-CHGXVTAC.js} +28 -28
  102. package/{createPageAction-4Y52G7WG.js → createPageAction-IOGAFIN7.js} +26 -26
  103. package/{dbSlice-GKGGFNOB.js → dbSlice-YXQ6RYIH.js} +8 -8
  104. package/{deleteFile-LWSR674W.js → deleteFile-YG6QMJLU.js} +3 -3
  105. package/{dialogCommands-G223U5WU.js → dialogCommands-XREAP6WQ.js} +32 -30
  106. package/{dialogSlice-THY45JWM.js → dialogSlice-DOPGWGS4.js} +24 -24
  107. package/{docCreateCommands-2P47IJDK.js → docCreateCommands-3PYZGSCL.js} +31 -29
  108. package/{docDeleteCommands-N3EGDOIC.js → docDeleteCommands-3Y6MU44Q.js} +32 -30
  109. package/{docReadCommands-6BFV2HI7.js → docReadCommands-UBANMAFR.js} +31 -29
  110. package/{docStore-ZQ3ECOPY.js → docStore-SYYFBENY.js} +9 -9
  111. package/{docUpdateCommands-ZTMPXHC5.js → docUpdateCommands-4GK2X6BN.js} +31 -29
  112. package/{fetchMessages-DRABNDPZ.js → fetchMessages-EIU7UFFK.js} +3 -4
  113. package/{getPricing-HRMSOF3E.js → getPricing-F2C65RIX.js} +4 -4
  114. package/{handleSendMessageAction-CE4M5XIE.js → handleSendMessageAction-NPVTY2GE.js} +24 -24
  115. package/index.js +83 -75
  116. package/{localDialogRead-PUQKFI73.js → localDialogRead-BTFJ4V2I.js} +2 -2
  117. package/{localRuntimeDb-P37ZTX55.js → localRuntimeDb-SYQGUF4U.js} +1 -1
  118. package/{machineCommands-4OT7KVCD.js → machineCommands-LES3MCTZ.js} +58 -56
  119. package/{machineWsRunDispatch-TR3EYESP.js → machineWsRunDispatch-FZLFAUUP.js} +56 -54
  120. package/{memberThunks-KATHH3F4.js → memberThunks-5T4J6KXQ.js} +9 -9
  121. package/{models-GS72DVJS.js → models-WW7VFNXB.js} +2 -2
  122. package/{offlineMarxistsAgentCommand-GEH6SNNA.js → offlineMarxistsAgentCommand-JEWCIAWM.js} +1 -1
  123. package/package.json +1 -1
  124. package/providerPresetApply-OCWWKBSD.js +214 -0
  125. package/providerRegistry-ZJQU7AJ7.js +31 -0
  126. package/{read-LC6HVYBN.js → read-M2Q6WEKB.js} +5 -4
  127. package/{readDocTool-N3ERJHHF.js → readDocTool-T37P3YPB.js} +1 -1
  128. package/{readlineWorkspace-GSL5CYNJ.js → readlineWorkspace-OZBKHD4T.js} +195 -110
  129. package/{removeDialogAgentAction-F5GPTALR.js → removeDialogAgentAction-HB3JBVAI.js} +11 -11
  130. package/{runAgentClientLoop-NE5EHXSS.js → runAgentClientLoop-3NDADLVE.js} +45 -45
  131. package/{runtimeDoctorCommands-CROTMULY.js → runtimeDoctorCommands-X6WDBEQX.js} +2 -2
  132. package/{setDialogExtraReferencesAction-AY4ZCF3A.js → setDialogExtraReferencesAction-4XLHRV37.js} +9 -9
  133. package/{setPrimaryDialogAgentAction-HPMG7V3R.js → setPrimaryDialogAgentAction-C3JOFC4W.js} +11 -11
  134. package/{settingSlice-OEJA4NQO.js → settingSlice-CZRURSTH.js} +10 -10
  135. package/{spaceCommands-MRP5U3C3.js → spaceCommands-ENYCUUZH.js} +29 -27
  136. package/{streamAgentChatTurn-A6L6O22P.js → streamAgentChatTurn-634OFUSR.js} +57 -56
  137. package/{switchDialogAgentAction-HMDZTZ4I.js → switchDialogAgentAction-C6KVUKJP.js} +8 -8
  138. package/{tableCommands-SUNTHAYX.js → tableCommands-O6NWHFKV.js} +1 -1
  139. package/{toolApiClient-VGYUB4P5.js → toolApiClient-7PSIFQPJ.js} +2 -2
  140. package/{tools-JS475NYO.js → tools-ILBLCF7D.js} +41 -39
  141. package/tuiSummaryLlmCaller-LFUBZKXK.js +127 -0
  142. package/{updateCommands-Y363MC3L.js → updateCommands-2M74UL7P.js} +2 -2
  143. package/{updateDialogTitleAction-GMZUT6RP.js → updateDialogTitleAction-RKFET73N.js} +45 -28
  144. package/chunk-3IT2PFHL.js +0 -611
  145. package/chunk-I42VC5KR.js +0 -15
  146. package/codingSkills-E6KSDNSJ.js +0 -48
  147. package/tuiSummaryLlmCaller-3Z24VUWM.js +0 -116
  148. package/{chunk-3RAG2NAD.js → chunk-UKWGR5SS.js} +3 -3
  149. package/{db-VQSAOWAO.js → db-WK5MDZVN.js} +1 -1
  150. package/{localRuntimeAuthority-R5UBODT3.js → localRuntimeAuthority-6IR6BBXE.js} +3 -3
@@ -6,9 +6,8 @@ import {
6
6
  } from "./chunk-HS7MLR74.js";
7
7
  import {
8
8
  clipMultilineText,
9
- fetchAndSerializeTable,
10
- resolveBuiltinSkillPage
11
- } from "./chunk-MEVSATIF.js";
9
+ fetchAndSerializeTable
10
+ } from "./chunk-WXPVOQD7.js";
12
11
  import {
13
12
  isGatewayHttpStatus
14
13
  } from "./chunk-NF64D32W.js";
@@ -20,7 +19,7 @@ import {
20
19
  } from "./chunk-3L2WKC3W.js";
21
20
  import {
22
21
  slateToSimplifiedMarkdown
23
- } from "./chunk-UDQWGU7F.js";
22
+ } from "./chunk-ZBT3WNBK.js";
24
23
  import {
25
24
  waitForAbortableDelay
26
25
  } from "./chunk-N4G4PKQ6.js";
@@ -29,25 +28,26 @@ import {
29
28
  } from "./chunk-MEYIRKDN.js";
30
29
  import {
31
30
  fetchAndCacheMessages
32
- } from "./chunk-D74EWXL4.js";
31
+ } from "./chunk-HMEMJ7GH.js";
33
32
  import {
34
33
  shouldUseServerProxy
35
34
  } from "./chunk-YYLHWIW6.js";
36
35
  import {
37
36
  fetchServerSyncedCredential
38
- } from "./chunk-QUH3XHL5.js";
37
+ } from "./chunk-TVNI5FLG.js";
39
38
  import {
40
39
  buildSkillGuidancePromptBlock,
41
40
  extractRuntimePageCapabilities,
41
+ resolveBuiltinSkillPage,
42
42
  resolveSkillGraphFromRoots
43
- } from "./chunk-3IT2PFHL.js";
43
+ } from "./chunk-2ADBVBEM.js";
44
44
  import {
45
45
  buildIdentityBlock,
46
46
  buildRuntimeGuidanceBlocks,
47
47
  compileContextLayers,
48
48
  normalizeChatCompletionsBodyForProvider,
49
49
  resolveToolGuidedSections
50
- } from "./chunk-ZLPA7K55.js";
50
+ } from "./chunk-N3OAPEZE.js";
51
51
  import {
52
52
  convertMessagesToResponsesInput,
53
53
  getUsageRequestOptions,
@@ -57,26 +57,26 @@ import {
57
57
  import {
58
58
  ANTIGRAVITY_CLOUD_CODE_BASE_URL,
59
59
  isAntigravityOAuthAgent
60
- } from "./chunk-PGSKWZCB.js";
60
+ } from "./chunk-MJHQ3NRV.js";
61
61
  import {
62
62
  buildProviderAuthHeaders
63
- } from "./chunk-CMH2SYHX.js";
63
+ } from "./chunk-K7M3MWCE.js";
64
+ import {
65
+ estimateTokenCount
66
+ } from "./chunk-PSCNXBYA.js";
64
67
  import {
65
68
  isOpenAiResponsesModel,
66
69
  resolvePlatformChatCompletionsEndpoint,
67
70
  resolvePlatformResponsesEndpoint
68
- } from "./chunk-K7AG465Q.js";
69
- import {
70
- estimateTokenCount
71
- } from "./chunk-PSCNXBYA.js";
71
+ } from "./chunk-ND2J3NRB.js";
72
72
  import {
73
73
  clampReasoningEffort,
74
74
  getModelConfig,
75
75
  isModelSupportReasoningEffort
76
- } from "./chunk-UJ63UXGE.js";
76
+ } from "./chunk-VRLI2WNW.js";
77
77
  import {
78
78
  createFileCredentialBroker
79
- } from "./chunk-3JQ2NRYU.js";
79
+ } from "./chunk-HVURBGF3.js";
80
80
  import {
81
81
  toErrorMessage
82
82
  } from "./chunk-HNMXYYJR.js";
@@ -91,32 +91,33 @@ import {
91
91
  import {
92
92
  isDeepInfraKimiModel,
93
93
  isFireworksKimiModel,
94
+ isPlatformMimoProviderModel,
94
95
  resolveFireworksKimiModel
95
- } from "./chunk-AJHEFRGJ.js";
96
+ } from "./chunk-ASGDO77C.js";
96
97
  import {
97
98
  createSpaceKey
98
99
  } from "./chunk-UAD2WT54.js";
99
100
  import {
100
101
  read
101
- } from "./chunk-YFADVSZE.js";
102
+ } from "./chunk-UA5S3LQQ.js";
102
103
  import {
103
104
  asTrimmedLowercaseString
104
105
  } from "./chunk-QSJ3HFEF.js";
105
106
  import {
106
107
  extractCustomId
107
- } from "./chunk-BJIRLHJR.js";
108
+ } from "./chunk-GII32WZW.js";
108
109
  import {
109
110
  getRuntimeServerContext
110
- } from "./chunk-3RAG2NAD.js";
111
+ } from "./chunk-UKWGR5SS.js";
111
112
  import {
112
113
  isAbortError
113
114
  } from "./chunk-QOKAKDPE.js";
114
- import {
115
- asTrimmedString
116
- } from "./chunk-3EUW3WEO.js";
117
115
  import {
118
116
  isRecord
119
117
  } from "./chunk-KUG52IAP.js";
118
+ import {
119
+ asTrimmedString
120
+ } from "./chunk-3EUW3WEO.js";
120
121
  import {
121
122
  API_ENDPOINTS
122
123
  } from "./chunk-LCBAMY2M.js";
@@ -367,10 +368,12 @@ function isResponsesConversationStateRejection(status, responseBody) {
367
368
  // packages/agent-runtime/agentCallPlan.ts
368
369
  var CODEX_RESPONSES_URL = "https://chatgpt.com/backend-api/codex/responses";
369
370
  var CURSOR_AGENT_URL = "https://api2.cursor.sh/agent.v1.AgentService/Run";
371
+ var DEVIN_CONNECT_URL = "https://server.codeium.com/exa.api_server_pb.ApiServerService/GetChatMessage";
370
372
  function resolveClientWire(plan) {
371
373
  if (plan.upstreamWire === "gemini-cca") return "chat.completions";
372
374
  if (plan.upstreamWire === "anthropic-messages") return "chat.completions";
373
375
  if (plan.upstreamWire === "cursor-connect") return "chat.completions";
376
+ if (plan.upstreamWire === "devin-connect") return "chat.completions";
374
377
  if (plan.upstreamWire === "responses" && plan.authMethod.kind === "oauth" && plan.authMethod.ref === "chatgpt") {
375
378
  return "chat.completions";
376
379
  }
@@ -450,6 +453,16 @@ function resolveAgentCallPlan(agentConfig, _env) {
450
453
  vendor: provider || "cursor"
451
454
  };
452
455
  }
456
+ if (apiKeyRef === "devin" || provider === "devin") {
457
+ return {
458
+ authMethod: { kind: "oauth", ref: "devin" },
459
+ transport: "server-proxy",
460
+ upstreamWire: "devin-connect",
461
+ endpoint: DEVIN_CONNECT_URL,
462
+ requiredHeaders: ["connect-protocol-version"],
463
+ vendor: provider || "devin"
464
+ };
465
+ }
453
466
  if (agentConfig.cliProvider || agentConfig.apiSource === "cli" || provider === "cli") {
454
467
  return {
455
468
  authMethod: { kind: "cli", provider: agentConfig.cliProvider || provider || "codex" },
@@ -706,9 +719,12 @@ var shouldInjectLlamaCppThinkingToggle = (agentConfig) => {
706
719
  if (!isLoopbackUrl(agentConfig.customProviderUrl)) return false;
707
720
  return /qwen/i.test(agentConfig.model ?? "");
708
721
  };
709
- var shouldDisableMiMoThinking = (agentConfig) => {
722
+ var shouldDisableMiMoThinking = (agentConfig, resolvedModel) => {
710
723
  if (agentConfig.enableThinking === true) return false;
711
- return /xiaomimimo\.com/i.test(agentConfig.customProviderUrl ?? "") || (agentConfig.provider ?? "").toLowerCase() === "mimo";
724
+ if (/xiaomimimo\.com/i.test(agentConfig.customProviderUrl ?? "") || (agentConfig.provider ?? "").toLowerCase() === "mimo") {
725
+ return true;
726
+ }
727
+ return isPlatformMimoProviderModel(agentConfig.provider, resolvedModel);
712
728
  };
713
729
  var shouldDisableKimiThinking = (agentConfig, providerName, resolvedModel) => {
714
730
  if (agentConfig.enableThinking !== false) return false;
@@ -823,7 +839,7 @@ var generateOpenAIRequestBody = (agentConfig, providerName, messages, contexts,
823
839
  enable_thinking: agentConfig.enableThinking
824
840
  };
825
841
  }
826
- if (shouldDisableMiMoThinking(agentConfig)) {
842
+ if (shouldDisableMiMoThinking(agentConfig, resolvedModel)) {
827
843
  requestBody.thinking = { type: "disabled" };
828
844
  }
829
845
  if (shouldDisableKimiThinking(agentConfig, providerName, resolvedModel)) {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  dialogMessageRange
3
- } from "./chunk-NHRQCXIQ.js";
3
+ } from "./chunk-VMFTFOWF.js";
4
4
  import {
5
5
  isTombstoneRecord
6
6
  } from "./chunk-GBRG75BQ.js";
@@ -2,7 +2,7 @@ import {
2
2
  deleteDbRecord,
3
3
  queryUserRecords,
4
4
  readDbRecord
5
- } from "./chunk-QA6YKM3H.js";
5
+ } from "./chunk-UTCCPWB2.js";
6
6
  import {
7
7
  mergeAndDedupUserData
8
8
  } from "./chunk-KQHGZWSV.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getRuntimeServerContext,
3
3
  scheduleDeleteReplication
4
- } from "./chunk-3RAG2NAD.js";
4
+ } from "./chunk-UKWGR5SS.js";
5
5
  import {
6
6
  fetchFromClientDb
7
7
  } from "./chunk-QOKAKDPE.js";
@@ -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
  };
@@ -1,7 +1,13 @@
1
+ import {
2
+ buildSkillDocMarkdown
3
+ } from "./chunk-Q554LLSI.js";
1
4
  import {
2
5
  SYSTEM_AGENT_CAPABILITIES,
3
6
  SYSTEM_AGENT_CAPABILITY_IDS
4
- } from "./chunk-UZ6XXCVR.js";
7
+ } from "./chunk-RZANZZL2.js";
8
+ import {
9
+ createKey
10
+ } from "./chunk-VMFTFOWF.js";
5
11
 
6
12
  // packages/ai/tools/codeWorkDiscipline.ts
7
13
  var CODE_WORK_DISCIPLINE_BODY = `## \u6548\u7387\u4F18\u5148\uFF08\u7701 token\uFF09
@@ -44,6 +50,9 @@ var TOOL_PACKS = {
44
50
  // queryModelUsage / queryUserGrowthReport:server-only 工具(web/CLI executor
45
51
  // 直接返回 serverOnlyResult),不随 CORE 常驻——server 端由 agent 显式
46
52
  // tools 配置按需挂载(utilityServerTools 执行器),web 端不再挂死 schema。
53
+ // setTodoList 已移至「conversation-todo」系统能力包(defaultEnabled:true)
54
+ // 作为唯一 owner——single source of truth:普通 agent 默认仍有 setTodoList,
55
+ // 但关闭「对话 Todo」开关即可真正摘掉它(CORE 常驻时该开关形同虚设)。
47
56
  CORE: [
48
57
  "read",
49
58
  "createDoc",
@@ -52,8 +61,7 @@ var TOOL_PACKS = {
52
61
  "updateSelf",
53
62
  "ask_user",
54
63
  "createAgentAutomation",
55
- "notifyUser",
56
- "setTodoList"
64
+ "notifyUser"
57
65
  ],
58
66
  // L2 - 联网搜索:与 CAPABILITY_PACKS「web-search」对齐。
59
67
  // 社交读工具属于「social-reader」包,不得因 exa_search 被旁路注入。
@@ -73,9 +81,7 @@ var TOOL_PACKS = {
73
81
  "launchProcess",
74
82
  "listProcesses",
75
83
  "taskWait",
76
- "taskLogs",
77
84
  "taskStop",
78
- "tasks",
79
85
  // watchCompletion:push 后登记「业务终态订阅」,部署结束时服务端唤醒父对话
80
86
  // (等待期间 0 轮询 0 token)。与代码工作流同链路(push → CI → 通知),随
81
87
  // 「代码执行」能力包走。
@@ -274,7 +280,10 @@ function resolveEffectiveEnabledPacks(args) {
274
280
  ];
275
281
  }
276
282
  var SYSTEM_BUILTIN_SKILL_PACK_IDS = SYSTEM_AGENT_CAPABILITY_IDS;
277
- var DEFAULT_MOUNT_SYSTEM_CAPABILITY_IDS = ["agent-orchestration"];
283
+ var DEFAULT_MOUNT_SYSTEM_CAPABILITY_IDS = [
284
+ "agent-orchestration",
285
+ "conversation-todo"
286
+ ];
278
287
  function getDefaultSystemCapabilityTools() {
279
288
  const ids = DEFAULT_MOUNT_SYSTEM_CAPABILITY_IDS;
280
289
  return SYSTEM_AGENT_CAPABILITY_PACKS.filter((pack) => ids.includes(pack.id)).flatMap((pack) => [...pack.tools]);
@@ -367,6 +376,160 @@ function applyDefaultWebToolPacks(args) {
367
376
  return [...enhanced];
368
377
  }
369
378
 
379
+ // packages/ai/skills/builtinObjectSkills.ts
380
+ var BUILTIN_OBJECT_SKILL_IDS = {
381
+ table: "builtin-table-skill-v1",
382
+ doc: "builtin-doc-skill-v1",
383
+ // key 改名为 code-style(它本来就叫「编码风格技能」,"code" 这个名字是它抢的,
384
+ // 与「代码执行」能力包撞车)。**id 值保持不变**——skillId 与页面 key 都从它派生,
385
+ // 改了会让存量 agent.references 失配。
386
+ "code-style": "builtin-code-skill-v1",
387
+ image: "builtin-image-skill-v1",
388
+ file: "builtin-file-skill-v1",
389
+ pagebuilder: "builtin-pagebuilder-skill-v1"
390
+ };
391
+ var SKILL_DEFS = {
392
+ doc: {
393
+ id: BUILTIN_OBJECT_SKILL_IDS.doc,
394
+ name: "\u6587\u6863\u7F16\u8F91\u6280\u80FD",
395
+ description: "\u63D0\u4F9B\u6587\u6863\u8BFB\u53D6\u4E0E\u66F4\u65B0\u80FD\u529B\uFF0C\u4F9B\u6587\u6863\u52A9\u624B\u4F7F\u7528\u3002\u89E6\u53D1\u8BCD\uFF1A\u6587\u6863\u3001\u6DA6\u8272\u3001\u6539\u5199\u3001\u7EED\u5199\u3001\u6392\u7248\u3001\u6587\u7AE0\u3001document\u3001polish\u3002",
396
+ toolNames: ["readDoc", "updateDoc"],
397
+ promptPatch: [
398
+ "\u6587\u6863\u7F16\u8F91\u6307\u5357\uFF1A",
399
+ "1. \u4FEE\u6539\u524D\u5148 readDoc \u8BFB\u53D6\u5F53\u524D\u6587\u6863\u771F\u503C\uFF0C\u518D\u57FA\u4E8E\u73B0\u6709\u5185\u5BB9\u7528 updateDoc \u505A\u5B9A\u70B9\u589E\u91CF\u7F16\u8F91\u3002",
400
+ "2. \u4E0D\u8981\u8131\u79BB\u73B0\u6709\u5185\u5BB9\u7A7A\u60F3\u91CD\u5199\uFF1B\u6DA6\u8272/\u6539\u5199/\u7EED\u5199\u90FD\u5E94\u4FDD\u7559\u7528\u6237\u539F\u6709\u7684\u7ED3\u6784\u4E0E\u4E8B\u5B9E\u3002"
401
+ ].join("\n")
402
+ },
403
+ table: {
404
+ id: BUILTIN_OBJECT_SKILL_IDS.table,
405
+ name: "\u8868\u683C\u7F16\u8F91\u6280\u80FD",
406
+ description: "\u63D0\u4F9B\u8868\u683C\u521B\u5EFA\u3001\u67E5\u8BE2\u3001\u65B0\u589E\u3001\u66F4\u65B0\u4E0E\u5220\u9664\u80FD\u529B\uFF0C\u4F9B\u8868\u683C\u52A9\u624B\u4F7F\u7528\u3002\u89E6\u53D1\u8BCD\uFF1A\u8868\u683C\u3001\u5EFA\u8868\u3001\u65B0\u589E\u4E00\u884C\u3001\u8BB0\u5F55\u3001\u5B57\u6BB5\u3001table\u3001spreadsheet\u3001csv\u3002",
407
+ // 与 app-builder 能力包共用同一份清单(TOOL_PACKS.TABLE)。
408
+ // 以前两边各抄一份,改一个忘另一个就会静默不同步。
409
+ toolNames: [...TOOL_PACKS.TABLE],
410
+ promptPatch: [
411
+ "\u8868\u683C\u64CD\u4F5C\u6307\u5357\uFF1A",
412
+ "1. \u7528\u6237\u8981\u65B0\u5EFA\u8868\u683C\u65F6\uFF0C\u8C03\u7528 createTable\uFF0C\u5E76\u4ECE\u9700\u6C42\u63A8\u65AD\u5408\u7406\u7684\u5B57\u6BB5\u8BBE\u8BA1\uFF08\u5B57\u6BB5\u540D\u3001\u7C7B\u578B\u3001\u5FC5\u586B\u3001\u53EF\u9009\u503C\uFF09\u3002",
413
+ "2. \u65B0\u589E\u8BB0\u5F55\u5FC5\u987B\u8C03\u7528 addTableRow / addTableRows\uFF0C\u4E0D\u8981\u53EA\u5728\u56DE\u7B54\u91CC\u53E3\u5934\u63CF\u8FF0\u3002",
414
+ "3. addTableRow \u7684 values \u662F\u5BF9\u8C61\uFF0Ckey \u5FC5\u987B\u7528\u5B57\u6BB5\u540D\uFF08name\uFF0C\u4E0D\u662F\u663E\u793A\u540D label\uFF09\uFF1B\u5C3D\u91CF\u4ECE\u7528\u6237\u81EA\u7136\u8BED\u8A00\u63A8\u65AD\u5E76\u586B\u6EE1\u76F8\u5173\u5B57\u6BB5\uFF0C\u5FC5\u586B\u5B57\u6BB5\u5C24\u5176\u6CE8\u610F\uFF1B\u7528\u6237\u6CA1\u63D0\u5230\u7684\u5B57\u6BB5\u53EF\u7528\u7A7A\u5B57\u7B26\u4E32\u6216 null \u5360\u4F4D\uFF1B\u7EDD\u4E0D\u8981\u4F20\u7A7A\u5BF9\u8C61 {}\u3002",
415
+ "4. \u66F4\u65B0\u6216\u5220\u9664\u524D\uFF0C\u5148\u7528 queryTableRows \u786E\u8BA4\u76EE\u6807\u884C\uFF0C\u5FC5\u8981\u65F6\u5411\u7528\u6237\u786E\u8BA4\u76EE\u6807\u884C/\u5B57\u6BB5\u3002"
416
+ ].join("\n")
417
+ },
418
+ "code-style": {
419
+ id: BUILTIN_OBJECT_SKILL_IDS["code-style"],
420
+ name: "\u7F16\u7801\u98CE\u683C\u6280\u80FD",
421
+ description: "\u63D0\u4F9B\u7F16\u7801\u89C4\u8303\u4E0E\u98CE\u683C\u7EA6\u675F\uFF0C\u4F9B\u4EE3\u7801\u4EFB\u52A1\u4F7F\u7528\u3002\u89E6\u53D1\u8BCD\uFF1A\u4EE3\u7801\u3001\u7F16\u7801\u3001\u91CD\u6784\u3001\u4FEEbug\u3001code\u3001refactor\u3001bugfix\u3001coding-style\u3002",
422
+ toolNames: [],
423
+ promptPatch: [
424
+ "\u7F16\u7801\u98CE\u683C\u4E0E\u89C4\u8303\u6307\u5357\uFF1A",
425
+ "1. \u6587\u4EF6\u62C6\u5206\uFF1A\u4F18\u5148\u62C6\u5206\u4E3A\u591A\u6587\u4EF6\uFF08MANY SMALL FILES\uFF09\uFF0C\u5178\u578B\u957F\u5EA6 200-400 \u884C\uFF0C\u5355\u6587\u4EF6\u6700\u591A 800 \u884C\uFF08800 max\uFF09\u3002",
426
+ "2. \u51FD\u6570\u4E0E\u5D4C\u5957\uFF1A\u51FD\u6570\u4FDD\u6301\u77ED\u5C0F\uFF08<50 lines\uFF09\uFF0C\u4F18\u5148\u4F7F\u7528 early returns \u63D0\u524D\u8FD4\u56DE\uFF0C\u5D4C\u5957\u5C42\u7EA7\u4E0D\u8D85\u8FC7 4 \u5C42\uFF08nesting \u22644\uFF09\u3002",
427
+ "3. \u4E0D\u53EF\u53D8\u6027\uFF08immutability\uFF09\uFF1A\u4FDD\u6301\u6570\u636E\u4E0D\u53EF\u53D8\uFF0C\u4E0D\u8981\u539F\u5730 mutate \u73B0\u6709\u5BF9\u8C61\u6216\u6570\u7EC4\uFF0C\u5FC5\u987B\u8FD4\u56DE\u65B0\u5BF9\u8C61/\u6570\u7EC4\u3002",
428
+ "4. \u9519\u8BEF\u5904\u7406\u4E0E\u6821\u9A8C\uFF1A\u663E\u5F0F\u5904\u7406\u6240\u6709\u9519\u8BEF\uFF08explicit error handling\uFF09\uFF0C\u5728\u7CFB\u7EDF\u8FB9\u754C\u5B8C\u6210\u6821\u9A8C\uFF08validate at boundaries\uFF09\uFF0C\u4E0D\u9690\u5F0F\u541E\u9519\u3002",
429
+ "5. \u5B8C\u6210\u524D Checklist\uFF1A\u5B8C\u6210\u524D\u81EA\u67E5\u51FD\u6570/\u6587\u4EF6\u5C3A\u5BF8\u3001\u5D4C\u5957\u6DF1\u5EA6\u3001\u4E0D\u53EF\u53D8\u6027\u4E0E\u8FB9\u754C\u9519\u8BEF\u5904\u7406\u3002"
430
+ ].join("\n")
431
+ },
432
+ image: {
433
+ id: BUILTIN_OBJECT_SKILL_IDS.image,
434
+ name: "\u56FE\u7247\u5206\u6790\u6280\u80FD",
435
+ description: "\u63D0\u4F9B\u56FE\u7247\u7406\u89E3\u3001\u63CF\u8FF0\u4E0E\u6574\u7406\u5EFA\u8BAE\u80FD\u529B\uFF0C\u4F9B\u56FE\u7247\u52A9\u624B\u4F7F\u7528\u3002\u89E6\u53D1\u8BCD\uFF1A\u56FE\u7247\u3001\u56FE\u50CF\u3001\u5206\u6790\u3001\u63CF\u8FF0\u3001\u547D\u540D\u3001\u6574\u7406\u3001image\u3001photo\u3001picture\u3002",
436
+ toolNames: [],
437
+ promptPatch: [
438
+ "\u56FE\u7247\u5206\u6790\u6307\u5357\uFF1A",
439
+ "1. \u5F53\u524D\u9636\u6BB5\u91CD\u70B9\u56F4\u7ED5\u5F53\u524D\u56FE\u7247\u505A\u7406\u89E3\u3001\u63CF\u8FF0\u3001\u63D0\u70BC\u91CD\u70B9\u3001\u7ED9\u51FA\u547D\u540D/\u6574\u7406\u5EFA\u8BAE\u548C\u540E\u7EED\u5904\u7406\u5EFA\u8BAE\u3002",
440
+ "2. \u4E0D\u8981\u5047\u88C5\u5DF2\u7ECF\u5177\u5907\u590D\u6742\u56FE\u7247\u7F16\u8F91\u80FD\u529B\uFF1B\u5982\u679C\u7528\u6237\u8981\u66F4\u5F3A\u64CD\u4F5C\uFF0C\u660E\u786E\u8BF4\u660E\u5F53\u524D\u53EF\u505A\u7684\u662F\u5206\u6790\u4E0E\u7EC4\u7EC7\u3002"
441
+ ].join("\n")
442
+ },
443
+ file: {
444
+ id: BUILTIN_OBJECT_SKILL_IDS.file,
445
+ name: "\u6587\u4EF6\u5904\u7406\u6280\u80FD",
446
+ description: "\u63D0\u4F9B\u6587\u4EF6\u7406\u89E3\u3001\u6574\u7406\u4E0E\u5904\u7406\u5EFA\u8BAE\u80FD\u529B\uFF0C\u4F9B\u6587\u4EF6\u52A9\u624B\u4F7F\u7528\u3002\u89E6\u53D1\u8BCD\uFF1A\u6587\u4EF6\u3001\u89E3\u6790\u3001\u63D0\u53D6\u3001\u6574\u7406\u3001\u5904\u7406\u3001file\u3001document\u3001pdf\u3002",
447
+ toolNames: [],
448
+ promptPatch: [
449
+ "\u6587\u4EF6\u5904\u7406\u6307\u5357\uFF1A",
450
+ "1. \u5F53\u524D\u9636\u6BB5\u91CD\u70B9\u56F4\u7ED5\u5F53\u524D\u6587\u4EF6\u63D0\u4F9B\u7406\u89E3\u3001\u6574\u7406\u3001\u63D0\u53D6\u4E0E\u540E\u7EED\u5904\u7406\u5EFA\u8BAE\u3002",
451
+ "2. \u4E0D\u8981\u5047\u88C5\u5DF2\u7ECF\u5B8C\u6210\u6587\u4EF6\u5185\u5BB9\u89E3\u6790\uFF1B\u5FC5\u8981\u65F6\u660E\u786E\u544A\u8BC9\u7528\u6237\u5F53\u524D\u66F4\u591A\u662F\u5360\u4F4D\u578B\u5DE5\u4F5C\u6D41\u5165\u53E3\uFF0C\u7B49\u5F85\u540E\u7EED\u63A5\u5165\u66F4\u5B8C\u6574\u7684\u6587\u4EF6\u5904\u7406\u80FD\u529B\u3002"
452
+ ].join("\n")
453
+ },
454
+ pagebuilder: {
455
+ id: BUILTIN_OBJECT_SKILL_IDS.pagebuilder,
456
+ name: "\u52A8\u6001\u4EA4\u4E92\u7EC4\u4EF6\u751F\u6210\u6280\u80FD",
457
+ description: "\u628A\u4E00\u53E5\u8BDD\u9700\u6C42\u53D8\u6210\u53EF\u770B\u7684\u4EA4\u4E92\u9875\u9762\u3001\u62A5\u544A\u3001\u770B\u677F\u3001\u4E3B\u9875\u3001\u6559\u7A0B\u3001\u5BF9\u6BD4\u9875\u6216\u8BA1\u5212\u9875\u3002\u4EFB\u4F55 agent \u5728\u9700\u8981\u8F93\u51FA\u53EF\u4EA4\u4E92\u53EF\u89C6\u5316\u6D88\u606F\u65F6\u6309\u9700\u52A0\u8F7D\u3002\u89E6\u53D1\u8BCD\uFF1A\u9875\u9762\u3001\u62A5\u8868\u3001\u770B\u677F\u3001\u65E5\u62A5\u3001\u5468\u62A5\u3001\u4E3B\u9875\u3001\u6559\u7A0B\u3001\u5BF9\u6BD4\u9875\u3001\u8BA1\u5212\u9875\u3001\u53EF\u89C6\u5316\u3001\u4EA4\u4E92\u9875\u9762\u3001\u4EEA\u8868\u76D8\u3001dashboard\u3001report\u3001page\u3001landing\u3002",
458
+ toolNames: [],
459
+ promptPatch: [
460
+ "\u52A8\u6001\u4EA4\u4E92\u7EC4\u4EF6\u751F\u6210\u89C4\u5219\uFF1A",
461
+ "\u4F60\u73B0\u5728\u7684\u4EFB\u52A1\u662F\u628A\u7528\u6237\u9700\u6C42\u53D8\u6210\u4E00\u4E2A\u53EF\u770B\u7684\u4EA4\u4E92\u9875\u9762/\u62A5\u544A/\u770B\u677F/\u4E3B\u9875/\u6559\u7A0B/\u5BF9\u6BD4\u9875/\u8BA1\u5212\u9875\u3002\u7528\u6237\u770B\u4E0D\u5230\u6E90\u7801\uFF0C\u53EA\u4F1A\u770B\u5230\u9875\u9762\u7ED3\u679C\u3002",
462
+ "",
463
+ "\u7EDD\u5BF9\u89C4\u5219\uFF1A",
464
+ "1. \u53EA\u8F93\u51FA\u4E00\u4E2A Markdown \u4EE3\u7801\u5757\uFF0C\u4EE3\u7801\u5757\u8BED\u8A00\u5FC5\u987B\u662F tsx preview\u3002",
465
+ "2. \u4EE3\u7801\u5757\u5916\u4E0D\u8981\u8F93\u51FA\u89E3\u91CA\u3001\u524D\u8A00\u3001\u7ED3\u5C3E\u3001\u6E05\u5355\u6216\u601D\u8003\u8FC7\u7A0B\u3002",
466
+ "3. \u4EE3\u7801\u5FC5\u987B\u5B9A\u4E49\u9876\u5C42 function Example()\uFF0C\u4E0D\u8981\u8C03\u7528 render()\uFF0C\u4E0D\u8981 export default\u3002",
467
+ "4. \u4E0D\u8981\u5199 import\u3002\u8FD0\u884C\u73AF\u5883\u5DF2\u7ECF\u63D0\u4F9B React\u3001useState\u3001useEffect\u3001useMemo\u3001useCallback\u3001useRef\u3001ReactECharts\u3001react-icons/lu \u7684\u56FE\u6807\u7EC4\u4EF6\u3002",
468
+ "5. \u6240\u6709\u4EA4\u4E92\u5FC5\u987B\u5728 Example \u5185\u7528 React state \u5B9E\u73B0\uFF0C\u6309\u94AE\u3001Tab\u3001FAQ\u3001\u6B65\u9AA4\u5207\u6362\u3001\u7B5B\u9009\u90FD\u8981\u771F\u7684\u53EF\u70B9\u51FB\u3002",
469
+ "6. \u4E3A\u4E3B\u8981\u533A\u5757\u52A0 data-artifact-section \u5C5E\u6027\u3002",
470
+ "7. \u751F\u6210\u7ED3\u679C\u4F18\u5148\u662F\u4E00\u9875\u5B8C\u6574\u53EF\u7528\u7684\u9875\u9762\uFF0C\u4E0D\u8981\u53EA\u505A\u5B64\u7ACB\u5361\u7247\u6216\u4E00\u4E2A\u56FE\u3002",
471
+ "8. \u5982\u679C\u7528\u6237\u6CA1\u6709\u7ED9\u5177\u4F53\u6570\u636E\uFF0C\u53EF\u4EE5\u751F\u6210\u5408\u7406\u7684\u793A\u4F8B\u6570\u636E\uFF0C\u4F46\u8981\u4FDD\u6301\u4E1A\u52A1\u53EF\u4FE1\u3002",
472
+ "",
473
+ "\u5404\u7C7B\u9875\u9762\u9ED8\u8BA4\u7ED3\u6784\uFF1A",
474
+ "- \u4FE1\u606F\u5C55\u793A\u7C7B\uFF08\u4E3B\u9875\u3001\u4EA7\u54C1\u4ECB\u7ECD\u3001\u670D\u52A1\u9875\u3001\u4F5C\u54C1\u96C6\u3001\u6D3B\u52A8\u9875\uFF09\uFF1A\u9996\u5C4F\u5B9A\u4F4D\u3001\u670D\u52A1/\u80FD\u529B\u5361\u7247\u3001\u4EE3\u8868\u6210\u679C\u5361\u7247\u3001\u53EF\u4FE1\u80CC\u4E66\u3001\u8054\u7CFB\u6216\u884C\u52A8\u6309\u94AE\u3002",
475
+ "- \u6570\u636E\u5206\u6790\u7C7B\uFF08\u65E5\u62A5\u3001\u5468\u62A5\u3001\u770B\u677F\u3001\u8D28\u68C0\u3001\u9500\u552E\u6F0F\u6597\u3001\u53CD\u9988\u5206\u6790\uFF09\uFF1A\u9876\u90E8\u6458\u8981\u3001\u6838\u5FC3\u6307\u6807\u3001\u8D8B\u52BF\u56FE\u3001\u660E\u7EC6\u8868\u683C\u6216\u5F02\u5E38\u5217\u8868\u3001\u4E0B\u4E00\u6B65\u5EFA\u8BAE\u3002",
476
+ "- \u6D41\u7A0B\u8BF4\u660E\u7C7B\uFF08\u6559\u7A0B\u3001SOP\u3001onboarding\u3001\u64CD\u4F5C\u6307\u5357\u3001\u8BFE\u7A0B\u6B65\u9AA4\uFF09\uFF1A\u5B66\u4E60\u76EE\u6807\u3001\u6B65\u9AA4\u5361\u7247\u3001\u793A\u4F8B/\u7EC3\u4E60\u3001\u68C0\u67E5\u6E05\u5355\u6216\u4E0B\u4E00\u6B65\u6309\u94AE\u3002",
477
+ "- \u51B3\u7B56\u6BD4\u8F83\u7C7B\uFF08\u65B9\u6848\u5BF9\u6BD4\u3001\u4EA7\u54C1\u9009\u578B\u3001\u7ADE\u54C1\u5206\u6790\u3001\u91C7\u8D2D\u5EFA\u8BAE\uFF09\uFF1A\u5BF9\u6BD4\u7EF4\u5EA6\u8868\u683C\u3001\u4F18\u7F3A\u70B9\u5361\u7247\u3001\u8BC4\u5206\u6216\u9002\u914D\u5EA6\u3001\u63A8\u8350\u7ED3\u8BBA\u3002",
478
+ "- \u8BA1\u5212\u6392\u5E03\u7C7B\uFF08\u9879\u76EE\u8BA1\u5212\u3001\u5B66\u4E60\u8BA1\u5212\u3001\u5185\u5BB9\u65E5\u5386\u3001\u53D1\u5E03\u8282\u594F\uFF09\uFF1A\u9636\u6BB5\u76EE\u6807\u3001\u4EFB\u52A1\u5217\u8868\u3001\u4F18\u5148\u7EA7\u3001\u91CC\u7A0B\u7891\u5361\u7247\u3001\u98CE\u9669\u63D0\u9192\u3002",
479
+ "- \u6DF7\u5408\u6C47\u62A5\u7C7B\uFF08\u878D\u8D44\u9875\u3001\u9879\u76EE\u6982\u89C8\u3001\u590D\u6742\u6C47\u62A5\uFF09\uFF1A\u81F3\u5C11\u5305\u542B MetricCard\u3001Chart\u3001Table \u548C Section\uFF0C\u4E0D\u8981\u53EA\u505A\u5355\u4E00\u5217\u8868\u3002",
480
+ "- \u6559\u7A0B/\u6B65\u9AA4/FAQ/Tab/\u7B5B\u9009/\u9875\u9762\u5185\u8DF3\u8F6C\u5FC5\u987B\u505A\u6210\u771F\u5B9E\u53EF\u70B9\u51FB\u4EA4\u4E92\u3002",
481
+ "",
482
+ "\u4EE3\u7801\u98CE\u683C\uFF1A",
483
+ "1. \u4F7F\u7528\u5185\u8054 style \u6216\u7EC4\u4EF6\u5185 <style>\uFF0C\u4E0D\u8981\u4F9D\u8D56 Tailwind \u6216\u5916\u90E8 CSS\u3002",
484
+ "2. \u9875\u9762\u5BBD\u5EA6\u3001\u95F4\u8DDD\u3001\u5B57\u53F7\u8981\u9002\u5408\u6D88\u606F\u5185\u9884\u89C8\uFF1B\u4E0D\u8981\u7528\u8FC7\u5927\u7684\u843D\u5730\u9875 hero\u3002",
485
+ "3. \u989C\u8272\u8981\u514B\u5236\uFF0C\u6709\u5C42\u6B21\uFF1B\u907F\u514D\u6574\u9875\u5355\u4E00\u84DD\u7D2B\u6E10\u53D8\u3002",
486
+ "4. \u8868\u683C\u3001\u56FE\u8868\u3001\u5361\u7247\u3001\u6309\u94AE\u90FD\u8981\u6709 hover/active/focus \u7684\u7EC6\u8282\u3002",
487
+ "5. \u5FC5\u8981\u65F6\u4F7F\u7528 ReactECharts \u753B\u56FE\uFF1B\u7B80\u5355\u67F1\u72B6\u56FE\u4E5F\u53EF\u4EE5\u7528 div \u5B9E\u73B0\uFF0C\u4FDD\u8BC1\u7A33\u5B9A\u3002",
488
+ "6. \u4EE3\u7801\u5C3D\u91CF\u77ED\u800C\u5B8C\u6574\uFF0C\u9ED8\u8BA4 150-260 \u884C\u4EE5\u5185\u3002",
489
+ "",
490
+ "\u8F93\u51FA\u683C\u5F0F\u793A\u4F8B\uFF1A",
491
+ "```tsx preview",
492
+ "function Example() {",
493
+ " const [tab, setTab] = useState('overview');",
494
+ " return <main><section data-artifact-section>...</section></main>;",
495
+ "}",
496
+ "```"
497
+ ].join("\n")
498
+ }
499
+ };
500
+ function buildBuiltinObjectSkillConfig(kind) {
501
+ const def = SKILL_DEFS[kind];
502
+ return {
503
+ version: "0.1",
504
+ kind: "skill",
505
+ id: def.id,
506
+ name: def.name,
507
+ description: def.description,
508
+ triggerMode: "explicit",
509
+ toolNames: def.toolNames,
510
+ promptPatch: def.promptPatch
511
+ };
512
+ }
513
+ function buildBuiltinObjectSkillDbKey(kind, userId) {
514
+ return createKey("page" /* DOC */, userId, BUILTIN_OBJECT_SKILL_IDS[kind]);
515
+ }
516
+ function buildBuiltinObjectSkillReference(kind, userId) {
517
+ return {
518
+ dbKey: buildBuiltinObjectSkillDbKey(kind, userId),
519
+ title: SKILL_DEFS[kind].name,
520
+ type: "instruction"
521
+ };
522
+ }
523
+ function buildBuiltinObjectSkillPageContent(kind) {
524
+ const def = SKILL_DEFS[kind];
525
+ return buildSkillDocMarkdown({
526
+ body: `# ${def.name}
527
+
528
+ ${def.description}`,
529
+ skillConfig: buildBuiltinObjectSkillConfig(kind)
530
+ });
531
+ }
532
+
370
533
  export {
371
534
  buildCodeWorkDiscipline,
372
535
  TOOL_PACKS,
@@ -380,5 +543,10 @@ export {
380
543
  FORCED_TOOLS,
381
544
  applyDisabledTools,
382
545
  addDefaultLightWebToolsForConfiguredAgents,
383
- applyDefaultWebToolPacks
546
+ applyDefaultWebToolPacks,
547
+ BUILTIN_OBJECT_SKILL_IDS,
548
+ buildBuiltinObjectSkillConfig,
549
+ buildBuiltinObjectSkillDbKey,
550
+ buildBuiltinObjectSkillReference,
551
+ buildBuiltinObjectSkillPageContent
384
552
  };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  generatePkcePair,
3
3
  startCallbackServer
4
- } from "./chunk-GBPZKFYK.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-XWNRAIUL.js";
4
+ } from "./chunk-PH5J5VUY.js";
5
5
 
6
6
  // packages/ai/policy/runtimePolicy.ts
7
7
  var clampLevel = (value, fallback) => {