nolo-cli 0.78.0-alpha.1 → 0.78.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 (152) 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-W3X3EJ3V.js} +62 -60
  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-LMFOAEL4.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-FVVVCQFM.js} +59 -57
  14. package/{agentRunCommand-IRSZYCEU.js → agentRunCommand-HTBVIBGV.js} +60 -58
  15. package/{agentRunControl-T44MESII.js → agentRunControl-XLGD3UZ5.js} +1 -1
  16. package/{agentRuntimeLocal-PUZINLWJ.js → agentRuntimeLocal-2JFG4HDU.js} +28 -26
  17. package/{agentSlice-EACXUOWW.js → agentSlice-ZNLGFUB5.js} +10 -10
  18. package/{appDeleteCommands-U4NTEJYQ.js → appDeleteCommands-2UN4N2NR.js} +30 -28
  19. package/{appDeployCommands-FXF45Q7F.js → appDeployCommands-37D74KRR.js} +30 -28
  20. package/{appDeployStatusCommands-KONVRM53.js → appDeployStatusCommands-QBLWL2IA.js} +30 -28
  21. package/{appGetCommands-3VOGIZ7T.js → appGetCommands-6KXIDF2T.js} +30 -28
  22. package/{appListCommands-A6ROBW7P.js → appListCommands-G2WFGEWQ.js} +30 -28
  23. package/{authCommand-EVGFLAHO.js → authCommand-V2DJ7DB7.js} +164 -24
  24. package/{authCommands-ILTBI6JV.js → authCommands-RGOGCPP6.js} +4 -5
  25. package/builtinSkillRegistry-WBGYKIAZ.js +33 -0
  26. package/{chatQueueReduxAdapter-XEIJO5WR.js → chatQueueReduxAdapter-XCJHIY3R.js} +24 -24
  27. package/chunk-2ADBVBEM.js +1625 -0
  28. package/{chunk-FPTQQSS6.js → chunk-2AYMFHUG.js} +26 -5
  29. package/{chunk-EXMHJN7C.js → chunk-2F4VYGFW.js} +2 -2
  30. package/{chunk-C3FZR5EC.js → chunk-2F7RJC6L.js} +1 -1
  31. package/{chunk-HQUORJTM.js → chunk-3BMYXEUW.js} +1 -1
  32. package/{chunk-733J6D44.js → chunk-3CMTBX3X.js} +6 -6
  33. package/{chunk-PZM3EENV.js → chunk-3CR2LC6X.js} +1 -1
  34. package/{chunk-DWPNOYMB.js → chunk-3R5PH4IP.js} +1 -1
  35. package/{chunk-ZY4K4CZR.js → chunk-4BYPU626.js} +909 -304
  36. package/{chunk-ZZCJUXUI.js → chunk-4DRWWIOL.js} +2 -2
  37. package/{chunk-H7UKKEIS.js → chunk-576IMUGH.js} +1 -1
  38. package/{chunk-QRBAZ5PW.js → chunk-5DFFKASO.js} +3 -3
  39. package/{chunk-MGU5ADIQ.js → chunk-5NMZNPTN.js} +10 -10
  40. package/{chunk-5XTOKQLW.js → chunk-5UTFL4QJ.js} +6 -2
  41. package/{chunk-CDVGNZDA.js → chunk-5V4NJHRM.js} +11 -173
  42. package/chunk-5ZUL4CUO.js +10 -0
  43. package/{chunk-BJCWNHVU.js → chunk-6BEA566T.js} +2 -2
  44. package/{chunk-E6RGHPDR.js → chunk-6D6VBVEW.js} +4 -6
  45. package/{chunk-U6LKJRJB.js → chunk-7MYYE7WX.js} +42 -26
  46. package/{chunk-BYEJ7K2Z.js → chunk-7S4YWN7P.js} +1 -1
  47. package/{chunk-AFIWC5NH.js → chunk-A2C4AKKM.js} +1 -1
  48. package/{chunk-SREASRV5.js → chunk-ABQYVJBJ.js} +1 -1
  49. package/{chunk-XEEHSS64.js → chunk-AQZRTHDZ.js} +1200 -52
  50. package/{chunk-AJHEFRGJ.js → chunk-ASGDO77C.js} +122 -1
  51. package/{chunk-2KDR4CWE.js → chunk-BYMV6QZG.js} +24 -1
  52. package/{chunk-MYU3MJCF.js → chunk-CLI4LFSM.js} +175 -7
  53. package/{chunk-HH65VA5U.js → chunk-CPH3W5A7.js} +15 -3
  54. package/{chunk-PYXL2CJL.js → chunk-DNQPPRHY.js} +1 -1
  55. package/{chunk-3QPYFHAH.js → chunk-DPQ2WVBY.js} +1 -1
  56. package/{chunk-DSRXPQWA.js → chunk-F2CGG72C.js} +43 -43
  57. package/{chunk-P7FA2HMM.js → chunk-FQYMLZ6C.js} +13 -15
  58. package/{chunk-BJIRLHJR.js → chunk-GII32WZW.js} +1 -0
  59. package/{chunk-FSFQ3A7S.js → chunk-GRYGRGPS.js} +10 -10
  60. package/{chunk-D74EWXL4.js → chunk-HMEMJ7GH.js} +386 -46
  61. package/{chunk-OZX2IPKM.js → chunk-HQCSU3DI.js} +1 -1
  62. package/{chunk-3JQ2NRYU.js → chunk-HVURBGF3.js} +4 -4
  63. package/{chunk-ALGK6TIE.js → chunk-HYZHJ5GW.js} +3 -3
  64. package/{chunk-Q6FF2MCK.js → chunk-IIKPWSPX.js} +1 -1
  65. package/{chunk-X7Z7U4Z6.js → chunk-JBBZ5KUM.js} +15 -15
  66. package/{chunk-KC5FAHVS.js → chunk-JEDZAO7L.js} +1 -1
  67. package/{chunk-6XIE5ZGI.js → chunk-JPGCXHNM.js} +1 -1
  68. package/{chunk-4EJ5QYB5.js → chunk-JTK3TJYV.js} +1 -1
  69. package/{chunk-CMH2SYHX.js → chunk-K7M3MWCE.js} +2 -2
  70. package/{chunk-5J7W2VWW.js → chunk-L2ICPOAL.js} +6 -265
  71. package/{chunk-RXX4GDIH.js → chunk-LS2ZANRJ.js} +1 -1
  72. package/{chunk-EVBFYPDC.js → chunk-MC4XLIJ7.js} +6 -2
  73. package/{chunk-PGSKWZCB.js → chunk-MJHQ3NRV.js} +1 -1
  74. package/{chunk-ZLPA7K55.js → chunk-N3OAPEZE.js} +29 -10
  75. package/{chunk-K7AG465Q.js → chunk-ND2J3NRB.js} +4 -2
  76. package/{chunk-G3NT6BM3.js → chunk-NFMHIUY3.js} +142 -59
  77. package/{chunk-XWNRAIUL.js → chunk-PH5J5VUY.js} +6 -16
  78. package/{chunk-AETZ7AD6.js → chunk-Q554LLSI.js} +1 -1
  79. package/chunk-Q5FJJ6XI.js +103 -0
  80. package/{chunk-JYYZCK2Z.js → chunk-QFMFJZLO.js} +1 -1
  81. package/{chunk-KIS76A2P.js → chunk-QHETQ3KI.js} +38 -4
  82. package/{chunk-UZ6XXCVR.js → chunk-RZANZZL2.js} +15 -2
  83. package/{chunk-SPAQ4PVV.js → chunk-SAFZABH7.js} +1 -1
  84. package/{chunk-QC5LGHYP.js → chunk-SMZSWB44.js} +10 -5
  85. package/chunk-TL6L5XUT.js +266 -0
  86. package/{chunk-QUH3XHL5.js → chunk-TVNI5FLG.js} +7 -7
  87. package/{chunk-YFADVSZE.js → chunk-UA5S3LQQ.js} +6 -6
  88. package/{chunk-QA6YKM3H.js → chunk-UTCCPWB2.js} +32 -4
  89. package/{chunk-E36HZARC.js → chunk-VHJLQHPQ.js} +3 -3
  90. package/{chunk-NHRQCXIQ.js → chunk-VMFTFOWF.js} +13 -3
  91. package/{chunk-UJ63UXGE.js → chunk-VRLI2WNW.js} +1073 -752
  92. package/{chunk-NG4UT4K4.js → chunk-WS22FPWT.js} +1 -1
  93. package/{chunk-MEVSATIF.js → chunk-WXPVOQD7.js} +66 -792
  94. package/{chunk-AFIKMMGC.js → chunk-XKQJJK4F.js} +1 -1
  95. package/{chunk-SZLVDREM.js → chunk-XMGHGEN6.js} +3 -3
  96. package/{chunk-L2Y24GRM.js → chunk-XTUY5EL4.js} +16 -12
  97. package/{chunk-V3ZKNK5D.js → chunk-YOXYA2GU.js} +10 -10
  98. package/{chunk-GBPZKFYK.js → chunk-Z33ARZCP.js} +4 -4
  99. package/chunk-ZAB3A45K.js +677 -0
  100. package/{chunk-UDQWGU7F.js → chunk-ZBT3WNBK.js} +1 -1
  101. package/{contentThunks-3SPROFG5.js → contentThunks-VURN3DFW.js} +25 -25
  102. package/{createAgentAutomationAction-EIP2EG3O.js → createAgentAutomationAction-QZAAY77R.js} +25 -25
  103. package/{createDialogAction-RLUSTN4D.js → createDialogAction-CHGXVTAC.js} +28 -28
  104. package/{createPageAction-4Y52G7WG.js → createPageAction-IOGAFIN7.js} +26 -26
  105. package/{dbSlice-GKGGFNOB.js → dbSlice-YXQ6RYIH.js} +8 -8
  106. package/{deleteFile-LWSR674W.js → deleteFile-YG6QMJLU.js} +3 -3
  107. package/{dialogCommands-G223U5WU.js → dialogCommands-XREAP6WQ.js} +32 -30
  108. package/{dialogSlice-THY45JWM.js → dialogSlice-DOPGWGS4.js} +24 -24
  109. package/{docCreateCommands-2P47IJDK.js → docCreateCommands-3PYZGSCL.js} +31 -29
  110. package/{docDeleteCommands-N3EGDOIC.js → docDeleteCommands-3Y6MU44Q.js} +32 -30
  111. package/{docReadCommands-6BFV2HI7.js → docReadCommands-UBANMAFR.js} +31 -29
  112. package/{docStore-ZQ3ECOPY.js → docStore-SYYFBENY.js} +9 -9
  113. package/{docUpdateCommands-ZTMPXHC5.js → docUpdateCommands-4GK2X6BN.js} +31 -29
  114. package/{fetchMessages-DRABNDPZ.js → fetchMessages-EIU7UFFK.js} +3 -4
  115. package/{getPricing-HRMSOF3E.js → getPricing-F2C65RIX.js} +4 -4
  116. package/{handleSendMessageAction-CE4M5XIE.js → handleSendMessageAction-NPVTY2GE.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-I66X2XB7.js} +59 -57
  121. package/{machineWsRunDispatch-TR3EYESP.js → machineWsRunDispatch-W4FVBOUM.js} +57 -55
  122. package/{memberThunks-KATHH3F4.js → memberThunks-5T4J6KXQ.js} +9 -9
  123. package/{models-GS72DVJS.js → models-WW7VFNXB.js} +2 -2
  124. package/{offlineMarxistsAgentCommand-GEH6SNNA.js → offlineMarxistsAgentCommand-JEWCIAWM.js} +1 -1
  125. package/package.json +1 -1
  126. package/providerPresetApply-OCWWKBSD.js +214 -0
  127. package/providerRegistry-ZJQU7AJ7.js +31 -0
  128. package/{read-LC6HVYBN.js → read-M2Q6WEKB.js} +5 -4
  129. package/{readDocTool-N3ERJHHF.js → readDocTool-T37P3YPB.js} +1 -1
  130. package/{readlineWorkspace-GSL5CYNJ.js → readlineWorkspace-VY5AMOGR.js} +196 -111
  131. package/{removeDialogAgentAction-F5GPTALR.js → removeDialogAgentAction-HB3JBVAI.js} +11 -11
  132. package/{runAgentClientLoop-NE5EHXSS.js → runAgentClientLoop-3NDADLVE.js} +45 -45
  133. package/{runtimeDoctorCommands-CROTMULY.js → runtimeDoctorCommands-X6WDBEQX.js} +2 -2
  134. package/{setDialogExtraReferencesAction-AY4ZCF3A.js → setDialogExtraReferencesAction-4XLHRV37.js} +9 -9
  135. package/{setPrimaryDialogAgentAction-HPMG7V3R.js → setPrimaryDialogAgentAction-C3JOFC4W.js} +11 -11
  136. package/{settingSlice-OEJA4NQO.js → settingSlice-CZRURSTH.js} +10 -10
  137. package/{spaceCommands-MRP5U3C3.js → spaceCommands-ENYCUUZH.js} +29 -27
  138. package/{streamAgentChatTurn-A6L6O22P.js → streamAgentChatTurn-634OFUSR.js} +57 -56
  139. package/{switchDialogAgentAction-HMDZTZ4I.js → switchDialogAgentAction-C6KVUKJP.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-ILBLCF7D.js} +41 -39
  143. package/tuiSummaryLlmCaller-LFUBZKXK.js +127 -0
  144. package/{updateCommands-Y363MC3L.js → updateCommands-2M74UL7P.js} +2 -2
  145. package/{updateDialogTitleAction-GMZUT6RP.js → updateDialogTitleAction-RKFET73N.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
@@ -4,10 +4,10 @@ import {
4
4
  } from "./chunk-PUOC4YRO.js";
5
5
  import {
6
6
  AGENT_SELECTION_PRIORITY_INSTRUCTIONS
7
- } from "./chunk-V3ZKNK5D.js";
7
+ } from "./chunk-YOXYA2GU.js";
8
8
  import {
9
9
  getModelContextWindow
10
- } from "./chunk-DSRXPQWA.js";
10
+ } from "./chunk-F2CGG72C.js";
11
11
  import {
12
12
  estimateTokenCount
13
13
  } from "./chunk-PSCNXBYA.js";
@@ -18,7 +18,7 @@ import {
18
18
  PLATFORM_HOSTED_KIMI_K3_MODEL,
19
19
  isFireworksKimiModel,
20
20
  isNoloHostedProvider
21
- } from "./chunk-AJHEFRGJ.js";
21
+ } from "./chunk-ASGDO77C.js";
22
22
  import {
23
23
  asTrimmedLowercaseString
24
24
  } from "./chunk-QSJ3HFEF.js";
@@ -91,6 +91,13 @@ var buildStartupProtocolBlock = (options = {}) => {
91
91
  };
92
92
 
93
93
  // packages/agent-runtime/runtimeGuidance.ts
94
+ var NOLO_WORKING_PHILOSOPHY = [
95
+ "--- Nolo \u5DE5\u4F5C\u539F\u5219 ---",
96
+ "\u9002\u5E94\u7528\u6237\u7684\u5DE5\u4F5C\u65B9\u5F0F\uFF0C\u800C\u4E0D\u662F\u8981\u6C42\u7528\u6237\u9002\u5E94\u4F60\u3002\u4FDD\u62A4\u7528\u6237\u6709\u9650\u7684\u6CE8\u610F\u529B\uFF1A\u80FD\u53EF\u9760\u5904\u7406\u7684\u5E38\u89C4\u590D\u6742\u6027\u5C3D\u91CF\u81EA\u884C\u5904\u7406\uFF1B\u771F\u6B63\u5F71\u54CD\u76EE\u6807\u3001\u98CE\u9669\u3001\u5BA1\u7F8E\u3001\u8D39\u7528\u3001\u6743\u9650\u3001\u4E0D\u53EF\u9006\u540E\u679C\u548C\u65B9\u5411\u7684\u51B3\u5B9A\u7559\u7ED9\u7528\u6237\u3002",
97
+ "\u5C0A\u91CD\u7528\u6237\u7684\u610F\u56FE\u4E0E\u5224\u65AD\uFF0C\u4F46\u4E0D\u8981\u76F2\u4ECE\uFF1B\u5F53\u786E\u5B9E\u80FD\u6539\u53D8\u7ED3\u679C\u65F6\uFF0C\u6307\u51FA\u91CD\u8981\u76F2\u533A\u3001\u98CE\u9669\u3001\u66F4\u597D\u7684\u65B9\u6848\u6216\u65B0\u7684\u53EF\u80FD\u3002\u4E0D\u8981\u4E3A\u4E86\u663E\u5F97\u6709\u601D\u8003\u800C\u523B\u610F\u53CD\u9A73\u3002",
98
+ "\u5229\u7528\u76F8\u5173\u7684 Space\u3001\u8BB0\u5FC6\u3001\u5386\u53F2\u51B3\u5B9A\u548C\u5F53\u524D\u4E0A\u4E0B\u6587\uFF0C\u8BA9\u5408\u4F5C\u4EA7\u751F\u79EF\u7D2F\uFF1B\u4E0D\u8981\u56E0\u4E3A\u5B58\u5728\u65E7\u4E0A\u4E0B\u6587\u5C31\u5F3A\u884C\u5E26\u5165\u65E0\u5173\u4EFB\u52A1\uFF0C\u4E5F\u4E0D\u8981\u8BA9\u7528\u6237\u91CD\u590D\u8BF4\u660E\u5DF2\u7ECF\u53EF\u7528\u7684\u4FE1\u606F\u3002",
99
+ "\u76EE\u6807\u4E0D\u662F\u66FF\u7528\u6237\u505A\u6240\u6709\u51B3\u5B9A\uFF0C\u4E5F\u4E0D\u662F\u628A\u6240\u6709\u9009\u62E9\u91CD\u65B0\u4E22\u7ED9\u7528\u6237\uFF0C\u800C\u662F\u51CF\u5C11\u65E0\u610F\u4E49\u7684\u6253\u6270\uFF0C\u8BA9\u7528\u6237\u628A\u6CE8\u610F\u529B\u653E\u5728\u771F\u6B63\u9700\u8981\u5176\u5224\u65AD\u7684\u5730\u65B9\u3002"
100
+ ].join("\n");
94
101
  var normalizeToolName = (name) => name.replace(/[-_]/g, "").toLowerCase();
95
102
  var hasAnyTool = (normalizedTools, candidates) => candidates.some((candidate) => normalizedTools.has(normalizeToolName(candidate)));
96
103
  var hasAllTools = (normalizedTools, candidates) => candidates.every((candidate) => normalizedTools.has(normalizeToolName(candidate)));
@@ -146,11 +153,14 @@ var resolveRuntimeGuidanceToolOptions = (tools = []) => {
146
153
  var buildRuntimeGuidanceBlocks = (tools = []) => {
147
154
  const options = resolveRuntimeGuidanceToolOptions(tools);
148
155
  const normalizedTools = canonicalizeToolNames(tools);
156
+ const startupProtocol = buildStartupProtocolBlock({
157
+ hasCheckEnvTool: options.hasCheckEnvTool,
158
+ hasExecShellTool: options.hasExecShellTool
159
+ });
149
160
  return {
150
- startupProtocol: buildStartupProtocolBlock({
151
- hasCheckEnvTool: options.hasCheckEnvTool,
152
- hasExecShellTool: options.hasExecShellTool
153
- }),
161
+ // 复用现有 startup-protocol session-scope 槽位,保证 web/server/local 三条
162
+ // 装配线无需各自新增一份全局哲学;具体 startup protocol 为空时原则仍常驻。
163
+ startupProtocol: [NOLO_WORKING_PHILOSOPHY, startupProtocol].filter(Boolean).join("\n\n"),
154
164
  contextLayerContract: buildContextLayerContractBlock({
155
165
  hasRememberMemoryTool: options.hasRememberMemoryTool,
156
166
  hasDocTools: options.hasDocTools
@@ -190,13 +200,22 @@ var TOOL_USE_GUIDANCE = `--- \u5DE5\u5177\u4F7F\u7528\u7EAA\u5F8B ---
190
200
  var AGENT_ORCHESTRATION_RUN_INSTRUCTIONS = `--- \u591A Agent \u7F16\u6392\uFF08\u540E\u53F0 Run\uFF09 ---
191
201
  \u7528 startAgentRun \u542F\u52A8\u5B50 Agent\uFF08wait:false \u5F02\u6B65 fork+exec \u8FD4\u56DE runId\uFF1Bwait:true \u540C\u6B65\u7B49\u7ED3\u679C\uFF09\uFF0C\u7528 controlAgentRun \u63A7\u5236/\u8BCA\u65AD\u3002\u4F55\u65F6\u6D3E\u53D1\u89C1\u300C\u591A Agent \u534F\u4F5C\u300D\u6BB5\uFF1B\u672C\u6BB5\u53EA\u8BB2\u6D3E\u53D1\u4E4B\u540E\u7684\u76EF\u68A2\u4E0E\u6392\u9519\u3002
192
202
 
193
- 1. \u76EF\u68A2\uFF1A**\u5F02\u6B65\u6D3E\u53D1\u540E\u7ACB\u5373\u6536\u5C3E\uFF0C\u7B49\u7EC8\u6001\u901A\u77E5\u3002** \u4E32\u884C\u4F9D\u8D56\u4E0D\u662F\u963B\u585E\u5BF9\u8BDD\u7684\u7406\u7531\u3002\u662F\u5426\u5141\u8BB8\u963B\u585E\u7B49\u5F85\u7531\u5DE5\u5177\u8868\u56DE\u7B54\uFF0C\u4E0D\u7528\u731C\u73AF\u5883\uFF1AcontrolAgentRun \u6709 wait action \u5C31\u7528\u5B83\u963B\u585E\u5230\u7EC8\u6001\uFF08\u4E0D\u8981\u81EA\u5DF1\u5FAA\u73AF wait\u2014\u2014\u90A3\u662F\u4F2A\u88C5\u6210\u7B49\u5F85\u7684\u8F6E\u8BE2\uFF09\uFF1B\u6CA1\u6709\u5C31\u6309\u5DE5\u5177\u63CF\u8FF0\u5904\u7406\uFF0C\u4E0D\u8981\u63A8\u65AD\u4E00\u5B9A\u5B58\u5728 terminal wake\u3002
203
+ 1. \u76EF\u68A2\uFF1A**\u5F02\u6B65\u6D3E\u53D1\u540E\u7ACB\u5373\u6536\u5C3E\uFF0C\u7B49\u7EC8\u6001\u901A\u77E5\u3002** \u4E32\u884C\u4F9D\u8D56\u4E0D\u662F\u963B\u585E\u5BF9\u8BDD\u7684\u7406\u7531\u3002\u7B49\u5F85\u65B9\u5F0F\u6309\u73AF\u5883\u5206\u4E09\u79CD\uFF1A\u2460 controlAgentRun \u6709 wait action \u2192 \u7528\u5B83\u963B\u585E\u5230\u7EC8\u6001\uFF08\u4EC5\u9650\u9884\u8BA1 <100s \u4E14\u9A6C\u4E0A\u8981\u7528\u7ED3\u679C\u7684\u573A\u666F\uFF0C\u6216\u7528\u6237\u660E\u786E\u8981\u6C42\u540C\u6B65\u7B49\u5F85\uFF09\uFF1B\u2461 \u65E0 wait action \u4F46\u5BBF\u4E3B\u6709 terminal wake \u2192 \u6D3E\u53D1\u540E\u76F4\u63A5\u7ED3\u675F\u672C\u8F6E\u56DE\u590D\uFF0Crun \u5230\u7EC8\u6001\u65F6\u5BBF\u4E3B\u81EA\u52A8\u628A\u7236\u5BF9\u8BDD\u63A5\u56DE\u6765\uFF0C\u4E0D\u9700\u8981\u4EFB\u4F55\u4E3B\u52A8\u7B49\u5F85\uFF1B\u2462 \u65E0 wait action \u4E14\u65E0 terminal wake \u2192 \u6D3E\u53D1\u540E\u540C\u6837\u7ED3\u675F\u672C\u8F6E\u56DE\u590D\uFF0Crun \u7ED3\u675F\u65F6\u4E0D\u4F1A\u88AB\u81EA\u52A8\u63A5\u56DE\u6765\uFF0C\u8FD9\u662F\u5BBF\u4E3B\u9650\u5236\uFF0C\u5E94\u5728\u56DE\u590D\u4E2D\u5982\u5B9E\u544A\u77E5\u7528\u6237\u300Crun \u5DF2\u5728\u540E\u53F0\u8FD0\u884C\uFF0C\u7ED3\u679C\u9700\u624B\u52A8\u67E5\u8BE2\u300D\uFF0C\u800C\u4E0D\u662F\u7528 execShell sleep \u8F6E\u8BE2\u7ED5\u8FC7\u3002**execShell sleep \u6C38\u8FDC\u4E0D\u662F\u7B49\u5F85 agent run \u7684\u6B63\u786E\u65B9\u5F0F**\uFF1A\u547D\u4EE4\u8D85 5s \u4F1A\u88AB\u81EA\u52A8 detach \u6210\u540E\u53F0\u4EFB\u52A1\uFF0C\u6BCF\u4E2A\u5B8C\u6210\u90FD\u4EA7\u751F\u4E00\u6761\u901A\u77E5\uFF0C\u5F62\u6210\u566A\u97F3\u4E14\u5B8C\u5168\u65E0\u6548\u3002
194
204
  2. \u7981\u6B62\u8F6E\u8BE2\u3001\u7981\u7A7A\u8F6C\u3001\u522B\u590D\u8FF0 status\uFF1B\u8BED\u4E49\u4EE5\u5DE5\u5177\u63CF\u8FF0\u4E3A\u51C6\u3002status \u4EC5\u7528\u4E8E\u5F02\u5E38\u8BCA\u65AD\u2014\u2014\u6000\u7591\u5361\u6B7B\u3001failed \u540E\u770B\u8BE6\u60C5/\u65E5\u5FD7\u3001\u7528\u6237\u660E\u786E\u8BE2\u95EE\u6267\u884C\u7EC6\u8282\uFF08tailLines:0 \u53EA\u770B\u6458\u8981\uFF09\uFF1B\u5B83\u4E0D\u662F stop \u524D\u7684 preflight\u3002\u5E76\u884C\uFF1A\u65E0\u6587\u4EF6\u4EA4\u96C6\u3001\u65E0\u771F\u5B9E\u6570\u636E\u4F9D\u8D56\u7684\u72EC\u7ACB\u5B50\u4EFB\u52A1\u9ED8\u8BA4\u5E76\u53D1\u6D3E\u53D1\uFF1B\u4E0D\u8981\u56E0\u5171\u7528\u540C\u4E00\u6267\u884C agent/\u901A\u9053\u800C\u81EA\u884C\u52A0\u300C\u901A\u9053\u4E32\u884C\u300D\u4FDD\u5B88\u5047\u8BBE\uFF08\u540C\u901A\u9053\u5141\u8BB8\u5E76\u53D1 fork\uFF0C\u5B9E\u4F8B\u95F4\u65E0\u4E0A\u4E0B\u6587\u5171\u4EAB\uFF09\uFF0C\u53EA\u6709\u771F\u5B9E\u6587\u4EF6/\u6570\u636E\u4F9D\u8D56\u6216 brief \u660E\u793A\u51B2\u7A81\u9762\u65F6\u624D\u4E32\u884C\u3002
195
205
  3. \u6392\u9519\u5148\u5206\u8BCA\uFF1AagentKey \u6CA1\u7167\u6284 listAgents \u5C31\u5148\u4FEE key\uFF08\u4E0D\u7B97\u901A\u9053\u6545\u969C\uFF09\uFF1B\u62A5\u9519\u542B not found / invalid ref / Local agent config not found \u2192 \u5148 readAgent \u590D\u6838\uFF0C**\u7981\u6B62**\u636E\u6B64\u63A8\u65AD\u51ED\u8BC1\u7F3A\u5931\u6216\u901A\u9053\u5168\u6302\uFF1B\u540C\u4E00\u5DF2\u9A8C\u8BC1 key \u4ECD\u5931\u8D25\u4E14\u9519\u8BEF\u660E\u786E\u6307\u5411\u901A\u9053\uFF08429\u3001\u9274\u6743\u5931\u8D25\u3001machine offline\uFF09\u624D\u8BB0\u4E3A\u901A\u9053\u6545\u969C\u3002\u5224\u5B9A\u300C\u6D3E\u53D1\u901A\u9053\u6574\u4F53\u4E0D\u53EF\u7528\u300D\u9700 \u22652 \u4E2A\u4E0D\u540C\u5019\u9009\u5404\u81EA\u5B8C\u6210\u300C\u5DF2\u9A8C\u8BC1 key + \u4E00\u6B21\u771F\u5B9E\u6D3E\u53D1\u300D\u4E14\u5931\u8D25\uFF0C\u5019\u9009\u4E0D\u8DB3\u5C31\u5982\u5B9E\u62A5\u544A\u300C\u4EC5\u6B64\u5019\u9009\u4E14\u901A\u9053\u5931\u8D25\u300D\uFF0C\u4E0D\u5F97\u5938\u5927\u6210\u5168\u5E93\u4E0D\u53EF\u7528\u3002
196
206
  4. \u53EA\u6709 status=failed/\u8D85\u65F6\u6216 progress \u957F\u65F6\u95F4\u65E0\u52A8\u9759\uFF08\u7591\u4F3C\u5361\u6B7B\uFF09\u624D\u62C9 tailLines:30 \u770B\u65E5\u5FD7\u3002append \u53EF\u76F4\u63A5\u8C03\u7528\u2014\u2014not found/\u5DF2\u7EC8\u6001/\u8FD0\u884C\u4E2D\u5165\u961F\u7531 executor \u81EA\u8BC1\uFF1Bstop \u53EF\u76F4\u63A5\u8C03\u7528\uFF0Cnot found/\u5DF2\u7EC8\u6001/\u8FD0\u884C\u4E2D\u7531\u63A7\u5236\u5E73\u9762\u81EA\u884C\u5904\u7406\uFF08\u5DF2\u7EC8\u6001\u539F\u6837\u8FD4\u56DE\u3001\u4E0D\u4F1A\u88AB\u8986\u76D6\uFF09\u3002`;
197
207
  var AGENT_COLLABORATION_INSTRUCTIONS = `--- Agent \u7F16\u6392\u4E0E\u534F\u4F5C\uFF08\u591A Agent \u534F\u4F5C\uFF1A\u8BA1\u5212 \u2192 \u6309\u9700\u6D3E\u53D1 \u2192 \u5BA1\u67E5\uFF09 ---
198
208
  \u4EA7\u51FA\u4F18\u5148\uFF1A\u4E0D\u4E3A\u300C\u51D1\u6570\u91CF\u300D\u6D3E\u53D1\uFF0C\u4E5F\u4E0D\u5305\u529E\u53EF\u5E76\u884C\u7684\u72EC\u7ACB\u9886\u57DF\uFF1B\u6BCF\u8F6E\u63A8\u8FDB\u5F53\u524D\u6700\u6709\u4EF7\u503C\u7684\u52A8\u4F5C\uFF0C\u62FF\u8BC1\u636E\u518D\u5224\u65AD\u3002
199
209
 
210
+ **\u6D3E\u53D1\u4EF7\u503C\uFF08\u5148\u5224\u65AD\u503C\u4E0D\u503C\u5F97\u6D3E\uFF0C\u518D\u9009\u4EBA\uFF09**\uFF1A
211
+ - \u4E0D\u4E3A\u201C\u770B\u8D77\u6765\u50CF\u591A Agent\u201D\u800C\u6D3E\u53D1\u3002\u53EA\u6709\u9884\u671F\u65B0\u589E\u4EF7\u503C\u660E\u663E\u5927\u4E8E\u534F\u4F5C\u6210\u672C\u65F6\u624D\u6D3E\u3002
212
+ - \u4EF7\u503C\u4E0D\u53EA\u770B\u201C\u4E3B Agent \u505A\u4E0D\u52A8\u201D\u3002\u81F3\u5C11\u4ECE\u4E09\u79CD\u6760\u6746\u5224\u65AD\uFF1A
213
+ 1. **\u4E0A\u4E0B\u6587\u6760\u6746\uFF08Context leverage\uFF09**\uFF1A\u628A\u673A\u68B0 inventory\u3001\u5927\u8F93\u51FA\u3001\u91CD\u590D\u9A8C\u8BC1\u5FAA\u73AF\u3001\u8BC1\u636E\u641C\u96C6\u9694\u79BB\u51FA\u53BB\uFF0C\u4FDD\u62A4\u4E3B\u5BF9\u8BDD\u4E0A\u4E0B\u6587\u4E0E\u6CE8\u610F\u529B\u3002
214
+ 2. **\u5E76\u884C\u6760\u6746\uFF08Parallel leverage\uFF09**\uFF1A\u4E24\u4E2A\u6216\u66F4\u591A\u4E92\u4E0D\u4F9D\u8D56\u7684\u5DE5\u4F5C\u6D41\u53EF\u4EE5\u540C\u65F6\u63A8\u8FDB\uFF0C\u7F29\u77ED\u603B\u5B8C\u6210\u65F6\u95F4\u3002
215
+ 3. **\u8BA4\u77E5\u6760\u6746\uFF08Cognitive leverage\uFF09**\uFF1A\u72EC\u7ACB\u89C6\u89D2\u3001\u53CD\u65B9\u5BA1\u67E5\u3001\u521B\u610F\u5206\u652F\u3001\u9886\u57DF\u4E13\u5BB6\u6216\u4E0D\u540C\u6A21\u578B\u80FD\u663E\u8457\u63D0\u9AD8\u65B9\u6848\u8D28\u91CF\u3001\u53D1\u73B0\u76F2\u533A\u6216\u964D\u4F4E\u5171\u4EAB\u9519\u8BEF\u98CE\u9669\u3002\u4EA7\u54C1\u3001\u8BBE\u8BA1\u3001\u7814\u7A76\u3001\u5199\u4F5C\u3001\u6218\u7565\u548C\u590D\u6742\u51B3\u7B56\u540C\u6837\u9002\u7528\uFF0C\u4E0D\u9650\u4E8E\u4EE3\u7801\u3002
216
+ - **\u53CD\u7EA6\u675F**\uFF1A\u5982\u679C\u5B50 Agent \u9884\u8BA1\u53EA\u4F1A\u590D\u8FF0\u7236 Agent \u5DF2\u77E5\u4FE1\u606F\u3001\u6CA1\u6709\u72EC\u7ACB\u8BC1\u636E/\u89C6\u89D2/\u5E76\u884C\u6536\u76CA\uFF0C\u5C31\u4E0D\u8981\u6D3E\u3002\u4E0D\u8981\u628A\u534F\u8C03\u5F00\u9500\u4F2A\u88C5\u6210\u201C\u66F4\u8BA4\u771F\u201D\u3002
217
+ - **\u4FDD\u62A4\u7528\u6237\u6CE8\u610F\u529B**\uFF1A\u7F16\u6392\u8005\u5E94\u5148\u5728\u5185\u90E8\u5B8C\u6210\u80FD\u53EF\u9760\u5B8C\u6210\u7684\u6BD4\u8F83\u3001\u7B5B\u9009\u4E0E\u9ED8\u8BA4\u5224\u65AD\uFF1B\u53EA\u6709\u76EE\u6807\u3001\u98CE\u9669\u3001\u5BA1\u7F8E\u3001\u8D39\u7528\u3001\u6743\u9650\u3001\u4E0D\u53EF\u9006\u540E\u679C\u7B49\u771F\u6B63\u9700\u8981\u7528\u6237\u51B3\u5B9A\u7684\u4E8B\u9879\u624D\u6253\u65AD\u7528\u6237\u3002\u4E0D\u8981\u628A\u201C\u8BF7\u9009\u62E9 A/B/C\u201D\u5F53\u4F5C\u5DF2\u7ECF\u5B8C\u6210\u89C4\u5212\uFF1B\u6709\u8DB3\u591F\u4F9D\u636E\u65F6\u5148\u7ED9\u63A8\u8350\u4E0E\u7406\u7531\uFF0C\u5E76\u8BF4\u660E\u4F55\u79CD\u6761\u4EF6\u4E0B\u5E94\u6539\u9009\u3002
218
+
200
219
  **\u5E73\u53F0 Agent / \u5E73\u53F0\u79EF\u5206\u6263\u8D39\u786E\u8BA4\u786C\u95F8\u95E8\uFF08\u5FC5\u987B\u5148\u786E\u8BA4\uFF0C\u540E\u8C03\u7528\uFF09**\uFF1A
201
220
  - \u53EA\u8981\u5019\u9009 Agent \u7684 apiSource \u4E3A platform\uFF0C\u6216\u65E0\u6CD5\u786E\u8BA4\u8C03\u7528\u662F\u5426\u6D88\u8017\u5E73\u53F0\u79EF\u5206/\u989D\u5EA6\uFF0C\u5C31\u5FC5\u987B\u628A\u5B83\u89C6\u4E3A\u53EF\u80FD\u6263\u8D39\u7684\u9AD8\u6210\u672C\u8C03\u7528\u3002
202
221
  - **\u4EC5\u544A\u77E5\u7528\u6237\u201C\u4F1A\u6D88\u8017\u5E73\u53F0\u79EF\u5206\u201D\u4E0D\u7B49\u4E8E\u83B7\u5F97\u6388\u6743\u3002** \u8C03\u7528 startAgentRun \u524D\uFF0C\u5FC5\u987B\u5148\u5411\u7528\u6237\u8BF4\u660E\uFF1A\u539F\u4F18\u5148\u901A\u9053\u4E3A\u4F55\u4E0D\u53EF\u7528\u3001\u5019\u9009\u5E73\u53F0 Agent\u3001\u9884\u8BA1\u6263\u8D39/\u79EF\u5206\u5F71\u54CD\uFF0C\u5E76\u505C\u4E0B\u6765\u7B49\u5F85\u7528\u6237\u5F53\u6B21\u660E\u786E\u80AF\u5B9A\u6388\u6743\u3002
@@ -208,7 +227,7 @@ var AGENT_COLLABORATION_INSTRUCTIONS = `--- Agent \u7F16\u6392\u4E0E\u534F\u4F5C
208
227
  **\u6D3E\u53D1\u524D\u81EA\u68C0**\uFF1A\u6BCF\u6B21\u8C03\u7528 startAgentRun \u524D\uFF0C\u5148\u6838\u5BF9 agentKey \u7684 apiSource\u3001\u6536\u85CF/\u79C1\u6709\u72B6\u6001\u3001\u5360\u7528\u72B6\u6001\uFF08\u4EC5\u5F53\u5DE5\u5177/\u901A\u9053\u660E\u786E\u8FD4\u56DE\u8BE5\u5019\u9009\u4E0D\u53EF\u7528\uFF0C\u6216\u9879\u76EE\u660E\u786E\u89C4\u5B9A\u5B58\u5728\u540C\u4E00 Agent \u7684\u8D44\u6E90\u9501\u65F6\u6210\u7ACB\uFF09\u548C\u5F53\u524D\u6388\u6743\uFF1B\u65E0\u6CD5\u786E\u8BA4\u6263\u8D39\u72B6\u6001\u65F6\u6309\u53EF\u80FD\u6263\u8D39\u5904\u7406\uFF0C\u5148\u8BE2\u95EE\uFF0C\u4E0D\u5F97\u731C\u6D4B\u3002
209
228
 
210
229
  **\u5206\u6863\u6807\u51C6\uFF08\u4E24\u8D26\u5224\u636E\uFF1A\u4E0A\u4E0B\u6587\u8D26 / \u5E76\u884C\u8D26\uFF1B\u6A21\u578B\u6210\u672C\u4E0D\u6784\u6210\u6D3E\u53D1\u7406\u7531\uFF09**\uFF1A
211
- - **\u81EA\u5DF1\u505A**\uFF1A\u7EAF\u95EE\u7B54/\u54A8\u8BE2/\u95F2\u804A\u76F4\u63A5\u56DE\u7B54\uFF1B\u4E24\u8D26\u5747\u4E0D\u547D\u4E2D\u7684\u4E2D\u5C0F\u5B9E\u73B0\uFF08\u5178\u578B \u22643 \u4E2A\u6587\u4EF6\u30011~2 \u6B21\u9A8C\u8BC1\u5F80\u8FD4\u3001\u65E0\u5927\u8F93\u51FA\u3001\u65E0 \u22652 \u4E2A\u72EC\u7ACB\u9886\u57DF\uFF09\u76F4\u63A5\u5B8C\u6210\uFF0C\u4E0D\u58F0\u660E\u3001\u4E0D\u6D3E\u53D1\u3002
230
+ - **\u81EA\u5DF1\u505A**\uFF1A\u7EAF\u95EE\u7B54/\u54A8\u8BE2/\u95F2\u804A\u9ED8\u8BA4\u76F4\u63A5\u56DE\u7B54\u2014\u2014\u4F46\u82E5\u95EE\u9898\u672C\u8EAB\u662F\u5F00\u653E\u5F0F\u521B\u4F5C\u3001\u590D\u6742\u53D6\u820D\u3001\u957F\u671F\u4EA7\u54C1\u8BED\u4E49\u3001\u91CD\u5927\u51B3\u7B56\u6216\u660E\u786E\u5B58\u5728\u591A\u89C6\u89D2\u4EF7\u503C\uFF0C\u8BA4\u77E5\u6760\u6746\u547D\u4E2D\u5373\u6309\u53D1\u6563/\u4F1A\u5546\u6D3E\u53D1\uFF1B\u53EA\u6709\u786E\u5B9E\u6CA1\u6709\u65B0\u589E\u89C6\u89D2/\u8BC1\u636E/\u5E76\u884C\u6536\u76CA\u65F6\u624D\u76F4\u63A5\u56DE\u7B54\u3002\u4E24\u8D26\u5747\u4E0D\u547D\u4E2D\u7684\u4E2D\u5C0F\u5B9E\u73B0\uFF08\u5178\u578B \u22643 \u4E2A\u6587\u4EF6\u30011~2 \u6B21\u9A8C\u8BC1\u5F80\u8FD4\u3001\u65E0\u5927\u8F93\u51FA\u3001\u65E0 \u22652 \u4E2A\u72EC\u7ACB\u9886\u57DF\uFF09\u76F4\u63A5\u5B8C\u6210\uFF0C\u4E0D\u58F0\u660E\u3001\u4E0D\u6D3E\u53D1\u3002
212
231
  - **\u4E0A\u4E0B\u6587\u8D26\u547D\u4E2D \u2192 \u6D3E\u53D1**\uFF1A\u9A8C\u8BC1\u5FAA\u73AF \u22653 \u6B21\u300C\u8DD1\u547D\u4EE4\u2192\u770B\u62A5\u9519\u2192\u6539\u300D\uFF0C\u6216\u5355\u6B65\u5927\u8F93\u51FA\uFF08\u5168\u91CF typecheck \u62A5\u9519\u3001\u957F\u6D4B\u8BD5\u6808\u3001\u5927 diff\u3001\u5927\u6587\u4EF6\u8BFB\u53D6\uFF09\u2014\u2014\u91CD\u590D\u9A8C\u8BC1\u5FAA\u73AF\u3001\u5927\u8F93\u51FA\u5904\u7406\u4E0E\u673A\u68B0 inventory/\u8BC1\u636E\u5B9A\u4F4D\u4EA4\u7ED9\u5B50 Agent\uFF1B\u7236 Agent \u63A5\u6536\u7ED3\u6784\u5316\u8BC1\u636E\uFF0C\u5E76\u4EB2\u81EA\u590D\u6838\u6240\u6709\u5F71\u54CD\u5173\u952E\u51B3\u7B56\u7684\u539F\u59CB\u8BC1\u636E\u3002
213
232
  - **\u5173\u952E\u51B3\u7B56\u4E0A\u4E0B\u6587\u4E0D\u5916\u5305**\uFF1A\u4E0A\u4E0B\u6587\u8D26\u53EA\u51B3\u5B9A\u91CD\u590D\u9A8C\u8BC1\u5FAA\u73AF\u3001\u5927\u8F93\u51FA\u5904\u7406\u3001\u673A\u68B0 inventory/\u8BC1\u636E\u5B9A\u4F4D\u7684\u6D3E\u53D1\uFF1B\u6D89\u53CA\u67B6\u6784\u3001\u8BA1\u8D39\u3001\u5B89\u5168\u3001\u6743\u9650\u3001\u6570\u636E\u5B8C\u6574\u6027\u3001\u4E0D\u53EF\u9006\u8FC1\u79FB\u3001\u957F\u671F\u4EA7\u54C1\u8BED\u4E49\u65F6\uFF0C\u7F16\u6392\u8005\u5FC5\u987B\u4EB2\u81EA\u8BFB\u53D6\u8DB3\u4EE5\u51B3\u7B56\u7684\u4E00\u7EA7\u4EE3\u7801\u3001\u6B63\u5F0F\u771F\u503C\u3001\u539F\u59CB\u65E5\u5FD7\u548C\u771F\u5B9E\u6570\u636E\u8BC1\u636E\uFF1B\u5B50 Agent \u53EF\u505A\u5B9A\u4F4D\u3001\u673A\u68B0\u6536\u96C6\u3001\u72EC\u7ACB\u590D\u6838\u4E0E\u53CD\u65B9\u5BA1\u67E5\uFF0C\u4F46\u5176\u6458\u8981\u4E0D\u80FD\u66FF\u4EE3\u5173\u952E\u4E0A\u4E0B\u6587\u4EB2\u8BFB\u3002
214
233
  - **\u5E76\u884C\u8D26\u547D\u4E2D \u2192 \u6D3E\u53D1**\uFF1A\u22652 \u4E2A\u4E92\u4E0D\u4F9D\u8D56\u7684\u72EC\u7ACB\u9886\u57DF\uFF0C\u6216\u4ED3\u5E93\u6539\u52A8\uFF0B\u9A8C\u8BC1\uFF0B\u53D1\u5E03/\u8FC1\u79FB\u957F\u94FE\u8DEF \u2192 \u6309\u9886\u57DF\u5E76\u53D1\u6D3E\u53D1\u3002
@@ -283,7 +302,7 @@ var TOOL_ROUND_ECONOMY_INSTRUCTIONS = `--- \u5DE5\u5177\u8F6E\u6B21\u7ECF\u6D4E\
283
302
  - **\u5DF2\u7ECF\u77E5\u9053\u8981\u505A\u7684\u3001\u4E92\u4E0D\u4F9D\u8D56\u7684\u8C03\u7528\uFF0C\u5728\u540C\u4E00\u8F6E\u91CC\u4E00\u6B21\u53D1\u5B8C**\uFF08\u8BFB\u591A\u4E2A\u6587\u4EF6\u3001\u67E5\u591A\u5904\u5F15\u7528\u3001\u51E0\u5904\u72EC\u7ACB\u7684\u68C0\u67E5\uFF09\uFF0C\u4E0D\u8981\u4E00\u4E2A\u4E00\u4E2A\u6765\u56DE\u95EE\u3002
284
303
  - \u53EA\u6709\u300C\u4E0B\u4E00\u6B65\u8981\u505A\u4EC0\u4E48\u53D6\u51B3\u4E8E\u4E0A\u4E00\u6B65\u7684\u7ED3\u679C\u300D\u65F6\u624D\u5206\u8F6E\u3002
285
304
  - \u4E00\u6B21\u8C03\u7528\u91CC\u80FD\u8868\u8FBE\u7684\u5C31\u522B\u62C6\u6210\u591A\u6B21\uFF1A\u7528 glob \u7684\u82B1\u62EC\u53F7\u7EC4\u4E00\u6B21\u5339\u914D\u591A\u79CD\u540E\u7F00\u3001\u7528\u4E00\u6761\u547D\u4EE4\u4EE3\u66FF\u4E09\u6761\u3001\u6309\u9700\u8981\u7684\u884C\u8303\u56F4\u8BFB\u6587\u4EF6\u800C\u4E0D\u662F\u5148\u5168\u8BFB\u518D\u56DE\u5934\u627E\u3002
286
- - \u7B49\u5F85\u7C7B\u5DE5\u5177\uFF08taskWait \u7B49\uFF09\u6309\u9884\u8BA1\u8017\u65F6\u4E00\u6B21\u7ED9\u8DB3\u9884\u7B97\uFF0C\u4E0D\u8981\u7528\u77ED\u8D85\u65F6\u53CD\u590D\u7EED\u7B49\u2014\u2014\u90A3\u662F\u628A\u5FAA\u73AF\u653E\u5728\u4E86\u6700\u8D35\u7684\u5730\u65B9\u3002`;
305
+ - \u82E5\u5F53\u524D\u5BBF\u4E3B\u63D0\u4F9B\u7B49\u5F85\u7C7B\u5DE5\u5177\uFF0C\u6309\u9884\u8BA1\u8017\u65F6\u4E00\u6B21\u7ED9\u8DB3\u9884\u7B97\u3001\u4E0D\u8981\u7528\u77ED\u8D85\u65F6\u53CD\u590D\u7EED\u7B49\uFF08\u90A3\u662F\u628A\u5FAA\u73AF\u653E\u5728\u4E86\u6700\u8D35\u7684\u5730\u65B9\uFF09\uFF1B\u5DF2\u6709\u7EC8\u6001\u81EA\u52A8\u5524\u9192\u65F6\u4E0D\u5FC5\u518D\u7B49\u5F85\u3002`;
287
306
  var PRIVILEGE_ESCALATION_INSTRUCTIONS = `--- \u6743\u9650\u63D0\u5347 ---
288
307
  \u547D\u4EE4\u5931\u8D25\u4E14\u539F\u56E0\u6307\u5411\u6743\u9650\u4E0D\u8DB3\uFF08sudo: \u9700\u8981\u5BC6\u7801 / Permission denied / EACCES / Operation not permitted\uFF09\u65F6\uFF0C\u4F18\u5148\u628A\u300C\u8F93\u5BC6\u7801\u300D\u8FD9\u4E00\u6B65\u4EA4\u8FD8\u7ED9\u7528\u6237\u7684\u56FE\u5F62\u6388\u6743\u901A\u9053\uFF0C\u800C\u4E0D\u662F\u628A sudo \u547D\u4EE4\u629B\u56DE\u7ED9\u7528\u6237\u624B\u6284\uFF1A
289
308
  1. \u684C\u9762\u4F1A\u8BDD\uFF08Linux \u6709 DISPLAY/WAYLAND_DISPLAY\uFF09\u76F4\u63A5\u8DD1 \`pkexec <\u547D\u4EE4>\`\uFF1Apolkit \u4F1A\u5728\u7528\u6237\u5C4F\u5E55\u5F39 GUI \u5BC6\u7801\u6846\u3002\u5F39\u4E4B\u524D\u5148\u4E00\u53E5\u8BDD\u8BF4\u660E\u8981\u505A\u4EC0\u4E48\u3001\u4E3A\u4F55\u9700\u8981 root\uFF0C\u907F\u514D\u51ED\u7A7A\u5F39\u7A97\uFF1B\u590D\u6742\u547D\u4EE4\u5148\u5199\u6210\u811A\u672C\u518D \`pkexec bash /tmp/xxx.sh\`\u3002
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  getModelConfig
3
- } from "./chunk-UJ63UXGE.js";
3
+ } from "./chunk-VRLI2WNW.js";
4
4
  import {
5
5
  isPlatformHostedDeepseekModel,
6
6
  isPlatformHostedOpenAIImageModel,
7
7
  resolvePlatformHostedRouting
8
- } from "./chunk-AJHEFRGJ.js";
8
+ } from "./chunk-ASGDO77C.js";
9
9
  import {
10
10
  asTrimmedLowercaseString
11
11
  } from "./chunk-QSJ3HFEF.js";
@@ -25,6 +25,8 @@ var PLATFORM_CHAT_COMPLETIONS_ENDPOINTS = {
25
25
  qwen: "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions",
26
26
  // Moonshot AI(月之暗面)开放平台 OpenAI 兼容模式(按量计费)
27
27
  moonshot: "https://api.moonshot.cn/v1/chat/completions",
28
+ // 阶跃星辰(StepFun)开放平台 OpenAI 兼容模式
29
+ stepfun: "https://api.stepfun.com/v1/chat/completions",
28
30
  // 平台托管 GLM 5.3 Flash 的实际上游(RunInfra 独家廉价快档)
29
31
  runinfra: "https://api.runinfra.ai/v1/chat/completions"
30
32
  // 无 nolo 默认上游:平台托管模型全部显式分流,未识别模型返回 undefined
@@ -4,15 +4,15 @@ import {
4
4
  refreshAntigravityOAuthToken,
5
5
  refreshOpenAiCodexToken,
6
6
  xaiRefresh
7
- } from "./chunk-GBPZKFYK.js";
7
+ } from "./chunk-Z33ARZCP.js";
8
+ import {
9
+ defaultLoopbackRequest
10
+ } from "./chunk-EADNWBAZ.js";
8
11
  import {
9
12
  createChromeConnectorClient,
10
13
  createVerifiedChromeConnectorClient,
11
14
  executeChromeConnectorTool
12
15
  } from "./chunk-QCZX4FTW.js";
13
- import {
14
- defaultLoopbackRequest
15
- } from "./chunk-EADNWBAZ.js";
16
16
  import {
17
17
  ackRunRecord,
18
18
  appendRunQueue,
@@ -29,7 +29,7 @@ import {
29
29
  terminateRunProcess,
30
30
  transitionRunToTerminal,
31
31
  withQueueLock
32
- } from "./chunk-HH65VA5U.js";
32
+ } from "./chunk-CPH3W5A7.js";
33
33
  import {
34
34
  clearCredentialAvailability,
35
35
  markCredentialUnavailable,
@@ -40,27 +40,27 @@ import {
40
40
  } from "./chunk-DWUCB2A3.js";
41
41
  import {
42
42
  buildLocalAgentLookupKeys
43
- } from "./chunk-Q6FF2MCK.js";
43
+ } from "./chunk-IIKPWSPX.js";
44
44
  import {
45
45
  LOCAL_CODEX_AGENT_ID,
46
46
  LOCAL_CODEX_AGENT_KEY,
47
47
  NOLO_DEFAULT_AGENT_ID,
48
48
  NOLO_DEFAULT_AGENT_KEY
49
- } from "./chunk-SPAQ4PVV.js";
49
+ } from "./chunk-SAFZABH7.js";
50
50
  import {
51
51
  CliProviderQuotaError,
52
52
  executeCli
53
53
  } from "./chunk-MP64VFGD.js";
54
54
  import {
55
55
  inferCaptureIntent
56
- } from "./chunk-3QPYFHAH.js";
56
+ } from "./chunk-DPQ2WVBY.js";
57
57
  import {
58
58
  buildCliPrompt
59
59
  } from "./chunk-ATNTHIZI.js";
60
60
  import {
61
61
  inlineImageUrlsForCustomProvider,
62
62
  prepareTools
63
- } from "./chunk-ALGK6TIE.js";
63
+ } from "./chunk-HYZHJ5GW.js";
64
64
  import {
65
65
  getServerProviderSecret
66
66
  } from "./chunk-HS7MLR74.js";
@@ -78,11 +78,11 @@ import {
78
78
  rememberMemoryFunctionSchema,
79
79
  resolveAgentRequiredPackIds,
80
80
  setTodoListFunc
81
- } from "./chunk-MEVSATIF.js";
81
+ } from "./chunk-WXPVOQD7.js";
82
82
  import {
83
83
  fetchWithTransientRetry,
84
84
  isTransientFetchError
85
- } from "./chunk-5XTOKQLW.js";
85
+ } from "./chunk-5UTFL4QJ.js";
86
86
  import {
87
87
  TASK_PREVIEW_MAX,
88
88
  formatListRunsCard,
@@ -101,19 +101,20 @@ import {
101
101
  prepareTokenUsageData,
102
102
  resolveBuiltinPlatformAgentConfig,
103
103
  runKeyed
104
- } from "./chunk-D74EWXL4.js";
104
+ } from "./chunk-HMEMJ7GH.js";
105
105
  import {
106
+ BUILTIN_DIALOG_LLM_CHAT_FALLBACK_MODEL,
106
107
  BUILTIN_TITLE_LLM_CONFIG
107
- } from "./chunk-EVBFYPDC.js";
108
+ } from "./chunk-MC4XLIJ7.js";
108
109
  import {
109
110
  fetchServerSyncedCredential
110
- } from "./chunk-QUH3XHL5.js";
111
+ } from "./chunk-TVNI5FLG.js";
111
112
  import {
112
113
  require_date_fns
113
114
  } from "./chunk-M76ECQRD.js";
114
115
  import {
115
116
  getDefaultCliLocalRuntimeDb
116
- } from "./chunk-C3FZR5EC.js";
117
+ } from "./chunk-2F7RJC6L.js";
117
118
  import {
118
119
  FORCED_TOOLS,
119
120
  addDefaultLightWebToolsForConfiguredAgents,
@@ -123,7 +124,7 @@ import {
123
124
  applySystemBuiltinSkillFilter,
124
125
  expandEnabledPacks,
125
126
  resolveEffectiveEnabledPacks
126
- } from "./chunk-MYU3MJCF.js";
127
+ } from "./chunk-CLI4LFSM.js";
127
128
  import {
128
129
  DEFAULT_HYBRID_READ_TIMEOUT_MS,
129
130
  Duration_exports,
@@ -139,6 +140,7 @@ import {
139
140
  buildLocalWorkspaceToolset,
140
141
  buildNoloWorkspaceCliToolExecutors,
141
142
  codexStreamFailureStatus,
143
+ createDevinProvider,
142
144
  createHybridRecordStore,
143
145
  createLocalWorkspaceToolExecutors,
144
146
  evaluateFileWritePolicy,
@@ -159,7 +161,7 @@ import {
159
161
  resolveOpenAiCompatibleProviderConfig,
160
162
  shouldUseGeminiNativeToolRoute,
161
163
  summarizeToolArguments
162
- } from "./chunk-ZY4K4CZR.js";
164
+ } from "./chunk-4BYPU626.js";
163
165
  import {
164
166
  PlatformStreamInterruptedError,
165
167
  buildPlatformChatCompletionRequest,
@@ -171,53 +173,56 @@ import {
171
173
  readSseDataValues,
172
174
  resolvePlatformChatProviderConfig,
173
175
  shouldUsePlatformChatProvider
174
- } from "./chunk-QC5LGHYP.js";
176
+ } from "./chunk-SMZSWB44.js";
175
177
  import {
176
178
  resolveAgentRuntimeConfigFromRecord,
177
179
  resolveHistoricalToolContentCap
178
- } from "./chunk-KIS76A2P.js";
180
+ } from "./chunk-QHETQ3KI.js";
181
+ import {
182
+ isDevinOAuthAgent
183
+ } from "./chunk-5ZUL4CUO.js";
179
184
  import {
180
185
  collectStablePromptPrefix,
181
186
  convertMessagesToResponsesInput,
182
187
  stablePromptCacheKey,
183
188
  toResponsesTools
184
189
  } from "./chunk-PUOC4YRO.js";
185
- import {
186
- isAntigravityOAuthAgent
187
- } from "./chunk-PGSKWZCB.js";
188
- import {
189
- resolvePlatformAuthToken
190
- } from "./chunk-CMH2SYHX.js";
191
190
  import {
192
191
  buildNoloWorkspaceOpenAiTools,
193
192
  parseNoloWorkspaceToolArguments,
194
193
  resolveRuntimeToolSurfaceForAgent
195
- } from "./chunk-V3ZKNK5D.js";
194
+ } from "./chunk-YOXYA2GU.js";
196
195
  import {
197
196
  mergeAvailabilityDeadline,
198
197
  resolveAvailabilityAction,
199
198
  resolveCooldownGate
200
199
  } from "./chunk-CJCJF5XB.js";
200
+ import {
201
+ isAntigravityOAuthAgent
202
+ } from "./chunk-MJHQ3NRV.js";
203
+ import {
204
+ resolvePlatformAuthToken
205
+ } from "./chunk-K7M3MWCE.js";
201
206
  import {
202
207
  buildDialogFallbackTitleFromUserInput,
203
208
  normalizeDialogTitle
204
209
  } from "./chunk-2MBTWINN.js";
205
210
  import {
206
211
  normalizeUsage
207
- } from "./chunk-DSRXPQWA.js";
212
+ } from "./chunk-F2CGG72C.js";
208
213
  import {
209
214
  clipCompactText,
210
215
  createProviderCallTimingTracker,
211
216
  finalizeProviderCallTiming,
212
217
  observeMeaningfulProviderResponseAt,
213
218
  withProviderCallTimingFields
214
- } from "./chunk-E36HZARC.js";
219
+ } from "./chunk-VHJLQHPQ.js";
215
220
  import {
216
221
  estimateTokenCount
217
222
  } from "./chunk-PSCNXBYA.js";
218
223
  import {
219
224
  isAdaptiveThinkingModelId
220
- } from "./chunk-UJ63UXGE.js";
225
+ } from "./chunk-VRLI2WNW.js";
221
226
  import {
222
227
  compactWhitespace
223
228
  } from "./chunk-DWLEOOGR.js";
@@ -226,7 +231,7 @@ import {
226
231
  resolveCurrentRunRuntimeToolPolicy,
227
232
  resolveLocalWorkspaceExecutorOptionsFromPolicy,
228
233
  resolveRequestedRuntimeToolNames
229
- } from "./chunk-3JQ2NRYU.js";
234
+ } from "./chunk-HVURBGF3.js";
230
235
  import {
231
236
  createOAuthTokenStore,
232
237
  isTokenExpired,
@@ -251,19 +256,19 @@ import {
251
256
  createTokenStatsKey,
252
257
  createUserKey,
253
258
  dialogMessageRange
254
- } from "./chunk-NHRQCXIQ.js";
259
+ } from "./chunk-VMFTFOWF.js";
255
260
  import {
256
261
  asTrimmedLowercaseString
257
262
  } from "./chunk-QSJ3HFEF.js";
258
263
  import {
259
264
  isSystemBuiltinTrustedAgentKey
260
- } from "./chunk-5J7W2VWW.js";
261
- import {
262
- asTrimmedString
263
- } from "./chunk-3EUW3WEO.js";
265
+ } from "./chunk-TL6L5XUT.js";
264
266
  import {
265
267
  isRecord
266
268
  } from "./chunk-KUG52IAP.js";
269
+ import {
270
+ asTrimmedString
271
+ } from "./chunk-3EUW3WEO.js";
267
272
  import {
268
273
  NOLO_CLUSTER_SERVERS
269
274
  } from "./chunk-LCBAMY2M.js";
@@ -574,6 +579,10 @@ var STRINGS = {
574
579
  en: "\u2713 Copied the selection to the clipboard.",
575
580
  zh: "\u2713 \u5DF2\u590D\u5236\u9009\u533A\u5230\u526A\u8D34\u677F\u3002"
576
581
  },
582
+ copiedSelectionBusy: {
583
+ en: "\u2713 Copied the selection to the clipboard. Press Esc to stop generating.",
584
+ zh: "\u2713 \u5DF2\u590D\u5236\u9009\u533A\u5230\u526A\u8D34\u677F\u3002\u6309 Esc \u505C\u6B62\u751F\u6210\u3002"
585
+ },
577
586
  copiedAllHistory: {
578
587
  en: "\u2713 Copied the full conversation to the clipboard.",
579
588
  zh: "\u2713 \u5DF2\u590D\u5236\u5B8C\u6574\u5BF9\u8BDD\u5230\u526A\u8D34\u677F\u3002"
@@ -1715,6 +1724,9 @@ function buildCliChromeConnectorOpenAiTools(args) {
1715
1724
  function buildOpenAiTools(args) {
1716
1725
  const toolset = buildLocalWorkspaceToolsetForEnv(args);
1717
1726
  const workspaceToolNames = toolset.toolNames;
1727
+ const modelWorkspaceToolNames = (args.effectiveToolNames ?? workspaceToolNames).filter(
1728
+ (toolName) => toolName !== "taskWait" || !hasRunWakeChannel(args.env)
1729
+ );
1718
1730
  const toolNameSet = new Set(args.toolNames ?? []);
1719
1731
  const uiAskChoiceTools = toolNameSet.has("ask_user") ? prepareTools(["ask_user"]) : [];
1720
1732
  const readPastedTextTools = toolNameSet.has("readPastedText") ? [
@@ -1756,7 +1768,7 @@ function buildOpenAiTools(args) {
1756
1768
  ...uiAskChoiceTools,
1757
1769
  ...readPastedTextTools,
1758
1770
  ...buildLocalWorkspaceOpenAiTools({
1759
- toolNames: args.effectiveToolNames ?? workspaceToolNames,
1771
+ toolNames: modelWorkspaceToolNames,
1760
1772
  exposeShellTools: toolset.exposeShellTools
1761
1773
  }),
1762
1774
  ...buildCliChromeConnectorOpenAiTools({ toolNames: args.toolNames }),
@@ -9311,6 +9323,59 @@ var resolveCursorTransport = async (ctx) => {
9311
9323
  return null;
9312
9324
  };
9313
9325
 
9326
+ // packages/cli/client/providerResolution/devinTransport.ts
9327
+ var resolveDevinTransport = async (ctx) => {
9328
+ const {
9329
+ agentConfig,
9330
+ apiKeyRefResolver,
9331
+ deps,
9332
+ buildProviderOpenAiTools,
9333
+ additionalToolNames
9334
+ } = ctx;
9335
+ if (isDevinOAuthAgent(agentConfig)) {
9336
+ const accessToken = await apiKeyRefResolver("devin");
9337
+ if (!accessToken) {
9338
+ throw new Error(
9339
+ 'OAuth credential for "devin" not found locally. Run `nolo auth devin`.'
9340
+ );
9341
+ }
9342
+ const model = agentConfig.model || "swe-2-max";
9343
+ const { requestedToolNames, tools } = resolveProviderOpenAiToolBundle(
9344
+ agentConfig,
9345
+ deps.env,
9346
+ buildProviderOpenAiTools,
9347
+ additionalToolNames
9348
+ );
9349
+ const devinProvider = createDevinProvider({
9350
+ token: accessToken,
9351
+ model,
9352
+ fetchImpl: ctx.fetchImpl,
9353
+ tools,
9354
+ // agentConfig.temperature reaches every transport except the Devin one;
9355
+ // forward it so the agent form's sampling knob stops being a no-op here.
9356
+ // Left undefined it keeps the upstream client's value.
9357
+ temperature: typeof agentConfig.temperature === "number" ? agentConfig.temperature : void 0
9358
+ });
9359
+ logLocalRuntimeDiagnostic("provider.selected", {
9360
+ agentKey: agentConfig.key,
9361
+ transport: "devin-connect",
9362
+ provider: "devin",
9363
+ model,
9364
+ hasApiKey: true,
9365
+ toolCount: tools.length,
9366
+ requestedToolNames,
9367
+ temperature: typeof agentConfig.temperature === "number" ? agentConfig.temperature : null
9368
+ });
9369
+ return {
9370
+ model,
9371
+ complete: async (messages, options) => {
9372
+ return devinProvider.complete(messages, options);
9373
+ }
9374
+ };
9375
+ }
9376
+ return null;
9377
+ };
9378
+
9314
9379
  // packages/cli/client/providerResolution/directOpenAiCompatibleTransport.ts
9315
9380
  var resolveDirectOpenAiCompatibleTransport = async (ctx) => {
9316
9381
  const { agentConfig, deps, fetchImpl, loopbackRequest, additionalToolNames, buildProviderOpenAiTools, recordLocalAvailability, apiKeyRefResolver, credentialBroker, syncFetcher, serverUrl, authToken } = ctx;
@@ -9704,6 +9769,7 @@ var TRANSPORTS = [
9704
9769
  resolveAnthropicOAuthTransport,
9705
9770
  resolveCodexOAuthTransport,
9706
9771
  resolveCursorTransport,
9772
+ resolveDevinTransport,
9707
9773
  resolveGeminiNativeToolTransport,
9708
9774
  resolvePlatformProxyTransport,
9709
9775
  // 兜底必须留在最后。
@@ -11679,7 +11745,7 @@ var REFRESH_BY_PROVIDER = {
11679
11745
  cursor: cursorRefresh
11680
11746
  };
11681
11747
  function isOAuthProvider(value) {
11682
- return value === "chatgpt" || value === "xai" || value === "antigravity" || value === "claude" || value === "cursor";
11748
+ return value === "chatgpt" || value === "xai" || value === "antigravity" || value === "claude" || value === "cursor" || value === "devin";
11683
11749
  }
11684
11750
  function createOAuthApiKeyRefResolver(options = {}) {
11685
11751
  return async (ref, opts) => {
@@ -11771,13 +11837,18 @@ async function generateLocalDialogTitle(input) {
11771
11837
  return { title: fallbackTitle, source: "fallback" };
11772
11838
  }
11773
11839
  if (input.resolveProviderConfig && input.buildRequest && input.parseResponse) {
11774
- try {
11775
- const providerConfig = await input.resolveProviderConfig({
11776
- agentConfig: { ...BUILTIN_TITLE_LLM_CONFIG, key: BUILTIN_TITLE_LLM_CONFIG.id },
11777
- env
11778
- });
11779
- if (providerConfig?.authToken) {
11780
- const request = input.buildRequest({
11840
+ const resolveProviderConfig = input.resolveProviderConfig;
11841
+ const buildRequest = input.buildRequest;
11842
+ const parseResponse = input.parseResponse;
11843
+ const attemptPlatformTitle = async (model) => {
11844
+ try {
11845
+ const agentConfig = model ? { ...BUILTIN_TITLE_LLM_CONFIG, model } : BUILTIN_TITLE_LLM_CONFIG;
11846
+ const providerConfig = await resolveProviderConfig({
11847
+ agentConfig: { ...agentConfig, key: agentConfig.id },
11848
+ env
11849
+ });
11850
+ if (!providerConfig?.authToken) return null;
11851
+ const request = buildRequest({
11781
11852
  providerConfig,
11782
11853
  messages: [
11783
11854
  {
@@ -11809,21 +11880,26 @@ async function generateLocalDialogTitle(input) {
11809
11880
  body: JSON.stringify(patchedBody),
11810
11881
  signal: AbortSignal.timeout(timeoutMs)
11811
11882
  });
11812
- if (res.ok) {
11813
- const raw = await res.text().catch(() => "");
11814
- const data = safeParseJson(raw);
11815
- if (data) {
11816
- const parsed = input.parseResponse({ providerConfig, data });
11817
- const generated = normalizeDialogTitle(
11818
- extractTitleFromLlmContent(parsed.content)
11819
- );
11820
- if (generated) {
11821
- return { title: generated, source: "llm" };
11822
- }
11823
- }
11824
- }
11883
+ if (!res.ok) return null;
11884
+ const raw = await res.text().catch(() => "");
11885
+ const data = safeParseJson(raw);
11886
+ if (!data) return null;
11887
+ const parsed = parseResponse({ providerConfig, data });
11888
+ const generated = normalizeDialogTitle(
11889
+ extractTitleFromLlmContent(parsed.content)
11890
+ );
11891
+ return generated || null;
11892
+ } catch {
11893
+ return null;
11825
11894
  }
11826
- } catch {
11895
+ };
11896
+ const primaryTitle = await attemptPlatformTitle();
11897
+ if (primaryTitle) return { title: primaryTitle, source: "llm" };
11898
+ const fallbackModelTitle = await attemptPlatformTitle(
11899
+ BUILTIN_DIALOG_LLM_CHAT_FALLBACK_MODEL
11900
+ );
11901
+ if (fallbackModelTitle) {
11902
+ return { title: fallbackModelTitle, source: "llm" };
11827
11903
  }
11828
11904
  }
11829
11905
  if (input.resolveDirectProviderConfig) {
@@ -12583,7 +12659,14 @@ function createCliLocalRuntimeAdapter(deps) {
12583
12659
  agentKey: agentConfig?.key,
12584
12660
  ...runtimeToolExecutionLimits
12585
12661
  });
12586
- const exposedAgentConfig = agentConfig ? { ...agentConfig, exposedToolNames: activeAgentToolNames } : agentConfig;
12662
+ const exposedAgentConfig = agentConfig ? {
12663
+ ...agentConfig,
12664
+ exposedToolNames: activeAgentToolNames,
12665
+ toolSurface: {
12666
+ ...agentConfig.toolSurface ?? {},
12667
+ finalToolNames: activeAgentToolNames
12668
+ }
12669
+ } : agentConfig;
12587
12670
  if (exposedAgentConfig && !deps.pastedTextStore) {
12588
12671
  preparedAgentRuntimeCache.set(cacheKey, {
12589
12672
  agentConfig: exposedAgentConfig,
@@ -2,8 +2,9 @@ import {
2
2
  parsePositiveFiniteNumberOrFallback
3
3
  } from "./chunk-Y5GCAMGP.js";
4
4
  import {
5
- DEFAULT_SYSTEM_AGENT_CAPABILITIES
6
- } from "./chunk-UZ6XXCVR.js";
5
+ DEFAULT_SYSTEM_AGENT_CAPABILITIES,
6
+ noloAgentId
7
+ } from "./chunk-RZANZZL2.js";
7
8
  import {
8
9
  asRecordOrEmpty
9
10
  } from "./chunk-KX6YBIHG.js";
@@ -13,25 +14,22 @@ import {
13
14
  toTimestampMs,
14
15
  upsert,
15
16
  write
16
- } from "./chunk-YFADVSZE.js";
17
+ } from "./chunk-UA5S3LQQ.js";
17
18
  import {
18
19
  createUserKey,
19
20
  createUserPreferenceKey,
20
21
  ulid
21
- } from "./chunk-NHRQCXIQ.js";
22
+ } from "./chunk-VMFTFOWF.js";
22
23
  import {
23
24
  asTrimmedLowercaseString
24
25
  } from "./chunk-QSJ3HFEF.js";
25
- import {
26
- BUILTIN_NOLO_AGENT_KEY
27
- } from "./chunk-5J7W2VWW.js";
28
26
  import {
29
27
  asyncThunkCreator,
30
28
  buildCreateSlice,
31
29
  createAction,
32
30
  createAsyncThunk,
33
31
  createSelector
34
- } from "./chunk-3RAG2NAD.js";
32
+ } from "./chunk-UKWGR5SS.js";
35
33
  import {
36
34
  getAllServers,
37
35
  getIsDesktopApp,
@@ -1016,12 +1014,6 @@ var withSettingsRecordSchema = (changes) => ({
1016
1014
  schemaVersion: SETTINGS_RECORD_SCHEMA_VERSION
1017
1015
  });
1018
1016
 
1019
- // packages/core/init.ts
1020
- var nolotusId = "0e95801d90";
1021
- var ADMIN_IDS = /* @__PURE__ */ new Set([nolotusId]);
1022
- var isSystemAdmin = (userId) => userId != null && ADMIN_IDS.has(userId);
1023
- var noloAgentId = BUILTIN_NOLO_AGENT_KEY;
1024
-
1025
1017
  // packages/app/settings/settingNormalizers.ts
1026
1018
  var hasOwn = (target, key) => Object.prototype.hasOwnProperty.call(target, key);
1027
1019
  var normalizeDefaultAgentIdSetting = (value) => {
@@ -1994,8 +1986,6 @@ export {
1994
1986
  AGENT_UPDATE_FIELD_NAMES,
1995
1987
  normalizeAgentUpdateFieldList,
1996
1988
  SYSTEM_DEFAULT_AGENT_ID,
1997
- nolotusId,
1998
- isSystemAdmin,
1999
1989
  normalizeSettingChanges,
2000
1990
  LOCAL_FIRST_APPEARANCE_KEYS,
2001
1991
  LOCAL_ONLY_SETTINGS_KEYS,
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-KHCLMKZZ.js";
5
5
  import {
6
6
  asTrimmedNonEmptyStringArray
7
- } from "./chunk-I42VC5KR.js";
7
+ } from "./chunk-VMFTFOWF.js";
8
8
  import {
9
9
  asOptionalTrimmedString
10
10
  } from "./chunk-G3SUCT4W.js";