nolo-cli 0.16.0-alpha.16 → 0.16.0-alpha.17

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 (99) hide show
  1. package/{_executeModel-UD2KY354.js → _executeModel-GP2DXECM.js} +34 -30
  2. package/{action-F5JACQBG.js → action-TK62YXTY.js} +6 -5
  3. package/{addContentAction-AQXEYRBE.js → addContentAction-IEEBATAA.js} +5 -4
  4. package/{addDialogAgentAction-EJHHJZWW.js → addDialogAgentAction-XUZNC36X.js} +4 -3
  5. package/{agentDeleteCommand-UVL3YSRK.js → agentDeleteCommand-6C77LXAA.js} +23 -21
  6. package/{agentEmailCommands-77H4MECZ.js → agentEmailCommands-7KZPAGIW.js} +45 -41
  7. package/{agentListCommands-J2F4E5C6.js → agentListCommands-EFFASIR2.js} +21 -19
  8. package/{agentMachineCommands-DKDXHUDO.js → agentMachineCommands-XHLRGCLP.js} +21 -19
  9. package/{agentPullCommand-6HWUT3SW.js → agentPullCommand-ZZGU5KOY.js} +4 -4
  10. package/{agentRecordCommands-KESYXWJZ.js → agentRecordCommands-ITBT7MPU.js} +40 -36
  11. package/{agentRunCommand-LZMUCDVH.js → agentRunCommand-HEBSX6ER.js} +41 -37
  12. package/{agentRuntimeLocal-44OVOJQ7.js → agentRuntimeLocal-KV6MQJQS.js} +14 -12
  13. package/{agentSlice-R4TX7ZSI.js → agentSlice-HOLDB2UY.js} +5 -4
  14. package/{appDeleteCommands-KXZCWKF2.js → appDeleteCommands-ROPKN6PL.js} +18 -16
  15. package/{appDeployCommands-JNXA3HP7.js → appDeployCommands-65E4ARQN.js} +18 -16
  16. package/{appDeployStatusCommands-IZ225RMY.js → appDeployStatusCommands-RFWMQDSJ.js} +18 -16
  17. package/{appGetCommands-WALF7VTA.js → appGetCommands-LDO2HNAL.js} +18 -16
  18. package/{appListCommands-Y3KMGFVO.js → appListCommands-S4MBG4KD.js} +18 -16
  19. package/{authCommand-MSSBXCQ6.js → authCommand-WJZPOLSS.js} +9 -8
  20. package/{authCommands-YXGOXNBZ.js → authCommands-XTBV7OFZ.js} +6 -5
  21. package/{chunk-IWLUTMYX.js → chunk-27MGYWLZ.js} +1 -1
  22. package/{chunk-PXZY7NIS.js → chunk-3J6QER3H.js} +5 -5
  23. package/{chunk-SOTZ6RDN.js → chunk-3Q7WHGCB.js} +1 -1
  24. package/{chunk-MTU75CZ2.js → chunk-B5TOXZAK.js} +1 -1
  25. package/{chunk-ARJBFRBT.js → chunk-CIF5XTPN.js} +37 -35
  26. package/{chunk-UIVHASVR.js → chunk-DS2YYH6W.js} +3 -3
  27. package/{chunk-Y62XMRMG.js → chunk-DXOUTEQC.js} +7 -7
  28. package/{chunk-X6LNYUFU.js → chunk-ETXKHE7J.js} +5 -5
  29. package/{chunk-IIHJMUV5.js → chunk-EWLAMUG5.js} +4 -4
  30. package/{chunk-LBOJLRSS.js → chunk-HETVWFFQ.js} +362 -314
  31. package/{chunk-QW7K3Y7V.js → chunk-HRLDQJW7.js} +39 -157
  32. package/{chunk-5PWAAPWU.js → chunk-IG3SA64O.js} +4 -4
  33. package/{chunk-SOW2GCA5.js → chunk-IOOMJJ4Z.js} +1 -1
  34. package/{chunk-NKN2NIW7.js → chunk-JJPANCH2.js} +10 -8
  35. package/{chunk-YJKXGHJ6.js → chunk-JKUL77KQ.js} +2 -2
  36. package/{chunk-6HV3GSA4.js → chunk-JQOWVDDX.js} +6 -6
  37. package/{chunk-FQLNGLOX.js → chunk-KF27FHVT.js} +1 -1
  38. package/{chunk-EABWT43X.js → chunk-L2DKNKL4.js} +2 -2
  39. package/{chunk-IAXU3LK5.js → chunk-LD6DKWMF.js} +14 -14
  40. package/{chunk-IPY6NKPP.js → chunk-LFTQYP3K.js} +3 -3
  41. package/{chunk-TX6S7JCM.js → chunk-MT2DOPXQ.js} +2 -2
  42. package/{chunk-3ZLCL32L.js → chunk-N3IKVYLL.js} +1 -1
  43. package/{chunk-4PIVMGLG.js → chunk-N77EBDJJ.js} +2 -2
  44. package/{chunk-IRLFPNG7.js → chunk-NJYEXLKX.js} +2 -2
  45. package/{chunk-3S2VOMIF.js → chunk-NLQBLZUO.js} +2 -2
  46. package/{chunk-PVHN3TZV.js → chunk-PH7SXF5R.js} +133 -51
  47. package/{chunk-KMQPSTMJ.js → chunk-TRT4I4UD.js} +2 -2
  48. package/{chunk-HYURMZU3.js → chunk-V3A3PXQQ.js} +3 -3
  49. package/{chunk-DLH6BOUO.js → chunk-VE7PIZFT.js} +1 -1
  50. package/{chunk-W4NVOSFF.js → chunk-WFHXMLHZ.js} +1 -1
  51. package/{chunk-H33743XH.js → chunk-WJRJDX2W.js} +1 -1
  52. package/{setDialogExtraReferencesAction-LR6MSIXO.js → chunk-WVQXRCCZ.js} +2 -17
  53. package/{chunk-RADTZFVM.js → chunk-WWWIRXLT.js} +39 -47
  54. package/chunk-X4Q4UZEY.js +26 -0
  55. package/{chunk-KFHN5NGJ.js → chunk-XGJRT3IK.js} +1 -1
  56. package/{chunk-OSIJVBXP.js → chunk-XV5I4HHL.js} +14 -85
  57. package/{chunk-SR4IC7DS.js → chunk-Y3GNPBAB.js} +1 -1
  58. package/{chunk-RPDGJO4D.js → chunk-YPAO6HUT.js} +2 -2
  59. package/chunk-YZ2PZFC6.js +671 -0
  60. package/chunk-ZZ2MH7LE.js +84 -0
  61. package/{cliExecutor-K3F7DMRO.js → cliExecutor-DNE7TCC4.js} +2 -2
  62. package/codingSkills-3RK4CIL2.js +48 -0
  63. package/{createAgentAutomationAction-HXIGGMHG.js → createAgentAutomationAction-63XOK7PE.js} +14 -13
  64. package/{createDialogAction-HDNEXHMH.js → createDialogAction-NBFEO4SU.js} +16 -15
  65. package/{createPageAction-F37QJEHE.js → createPageAction-JYVUSH57.js} +20 -19
  66. package/{dbSlice-7KQH6GOU.js → dbSlice-CJJKYYXK.js} +4 -3
  67. package/{dialogCommands-6HHOMMSZ.js → dialogCommands-JO7YCVND.js} +19 -17
  68. package/{dialogSlice-ZCVFV3WX.js → dialogSlice-6SOMUMGM.js} +14 -13
  69. package/{docCreateCommands-C6DUOJZQ.js → docCreateCommands-H7KQ345X.js} +17 -15
  70. package/{docDeleteCommands-WAKYWSKE.js → docDeleteCommands-OSEFFFJ5.js} +18 -16
  71. package/{docReadCommands-QXWKU7NB.js → docReadCommands-7A5PGQ7J.js} +17 -15
  72. package/{docStore-CSWTGKJJ.js → docStore-K2SEQBBX.js} +15 -14
  73. package/{docUpdateCommands-7AX4KLZZ.js → docUpdateCommands-3COEELBB.js} +17 -15
  74. package/{fetchMessages-KTNM7QAR.js → fetchMessages-BMGVZVSE.js} +4 -3
  75. package/{handleSendMessageAction-3KHB7J7E.js → handleSendMessageAction-L6NJXNIP.js} +15 -14
  76. package/index.js +51 -51
  77. package/{localDialogRead-2VRI24F4.js → localDialogRead-HQZPVIE3.js} +1 -1
  78. package/{localRuntimeDb-LGDF6FQP.js → localRuntimeDb-THJZGAOJ.js} +1 -1
  79. package/{machineCommands-GKOAG4SD.js → machineCommands-DGDX3GHH.js} +47 -43
  80. package/{machineWsRunDispatch-CBRB2L3Q.js → machineWsRunDispatch-ZV6BHKXA.js} +38 -34
  81. package/package.json +1 -1
  82. package/queryRunOverlay-KQDJBH32.js +203 -0
  83. package/{readlineWorkspace-LTW3NLCR.js → readlineWorkspace-BUSQQXPY.js} +61 -57
  84. package/{removeDialogAgentAction-YDHBFEGI.js → removeDialogAgentAction-XRTUVGAN.js} +6 -5
  85. package/{runAgentClientLoop-LVE52RH4.js → runAgentClientLoop-2YPEUG3Q.js} +30 -26
  86. package/runOverlayPresentation-BHD5POEM.js +79 -0
  87. package/{runtimeDoctorCommands-THIHX2SY.js → runtimeDoctorCommands-E2OUORHK.js} +6 -6
  88. package/setDialogExtraReferencesAction-WNZINFOX.js +27 -0
  89. package/{setPrimaryDialogAgentAction-57GRIGX5.js → setPrimaryDialogAgentAction-ECVV6DJ3.js} +6 -5
  90. package/{settingSlice-O23YDK2O.js → settingSlice-UVDEFVMQ.js} +5 -4
  91. package/{spaceCommands-7RB3OWGN.js → spaceCommands-XPHOVJTB.js} +20 -18
  92. package/{spaceSlice-HLNFOVCA.js → spaceSlice-EGOJICFM.js} +14 -13
  93. package/{streamAgentChatTurn-VS5W3C3N.js → streamAgentChatTurn-LAFUD4KS.js} +62 -37
  94. package/{tools-RWQXREN7.js → tools-O6DVCZ3R.js} +24 -20
  95. package/types-ZSTJ7MPR.js +7 -0
  96. package/{updateDialogTitleAction-C6WFIIAW.js → updateDialogTitleAction-DVQFOG64.js} +17 -16
  97. package/{chunk-O4BU24WZ.js → chunk-6Y7A3OQQ.js} +3 -3
  98. package/{chunk-CMKUBIGW.js → chunk-X7W4TNB4.js} +3 -3
  99. package/{localRuntimeAuthority-TEGCOWX4.js → localRuntimeAuthority-4IXJCHZ7.js} +3 -3
@@ -6,7 +6,7 @@ import {
6
6
  clipMultilineText,
7
7
  fetchAndSerializeTable,
8
8
  waitForAbortableDelay
9
- } from "./chunk-PVHN3TZV.js";
9
+ } from "./chunk-PH7SXF5R.js";
10
10
  import {
11
11
  createDrainExhaustedResponse,
12
12
  isCoreDrainingBody,
@@ -20,23 +20,25 @@ import {
20
20
  import {
21
21
  extractCategorizedMentions
22
22
  } from "./chunk-VP4WJWKW.js";
23
- import {
24
- resolvePageSkillMetadata
25
- } from "./chunk-VC6OZXO5.js";
26
23
  import {
27
24
  fetchAndCacheMessages,
28
25
  shouldUseServerProxy
29
- } from "./chunk-LBOJLRSS.js";
26
+ } from "./chunk-HETVWFFQ.js";
30
27
  import {
31
28
  fetchServerSyncedCredential
32
- } from "./chunk-PXZY7NIS.js";
29
+ } from "./chunk-3J6QER3H.js";
30
+ import {
31
+ buildSkillGuidancePromptBlock,
32
+ extractRuntimePageCapabilities,
33
+ resolveSkillGraphFromRoots
34
+ } from "./chunk-YZ2PZFC6.js";
33
35
  import {
34
36
  buildCurrentTimeBlock,
35
37
  buildIdentityBlock,
36
38
  buildRuntimeGuidanceBlocks,
37
39
  requiresBareImageUrl,
38
40
  toBareImageUrlMessages
39
- } from "./chunk-SOW2GCA5.js";
41
+ } from "./chunk-IOOMJJ4Z.js";
40
42
  import {
41
43
  convertMessagesToResponsesInput,
42
44
  preserveAgentStateFields
@@ -47,44 +49,41 @@ import {
47
49
  resolvePlatformChatCompletionsEndpoint,
48
50
  resolvePlatformResponsesEndpoint
49
51
  } from "./chunk-MUCU6ATG.js";
50
- import {
51
- canonicalizeToolNames
52
- } from "./chunk-OSIJVBXP.js";
53
52
  import {
54
53
  estimateTokenCount
55
- } from "./chunk-IIHJMUV5.js";
54
+ } from "./chunk-EWLAMUG5.js";
55
+ import {
56
+ createFileCredentialBroker
57
+ } from "./chunk-5CS33IBL.js";
56
58
  import {
57
59
  clampReasoningEffort,
58
60
  getModelConfig,
59
61
  isModelSupportReasoningEffort
60
62
  } from "./chunk-HQPG2PIV.js";
61
63
  import {
62
- createFileCredentialBroker
63
- } from "./chunk-5CS33IBL.js";
64
+ toErrorMessage
65
+ } from "./chunk-HNMXYYJR.js";
66
+ import {
67
+ createSpaceKey
68
+ } from "./chunk-27MGYWLZ.js";
64
69
  import {
65
70
  MEMORY_USE_GUIDANCE,
66
71
  wrapHistoricalSummaryWithReplayGuard
67
72
  } from "./chunk-4PWB7JRR.js";
73
+ import {
74
+ canonicalizeToolNames
75
+ } from "./chunk-ZZ2MH7LE.js";
68
76
  import {
69
77
  extractCustomId
70
78
  } from "./chunk-DFFIZ25G.js";
71
- import {
72
- toErrorMessage
73
- } from "./chunk-HNMXYYJR.js";
74
79
  import {
75
80
  isDeepInfraKimiModel,
76
81
  isFireworksKimiModel,
77
82
  resolveFireworksKimiModel
78
83
  } from "./chunk-O6W2O2DA.js";
79
- import {
80
- createSpaceKey
81
- } from "./chunk-IWLUTMYX.js";
82
84
  import {
83
85
  read
84
- } from "./chunk-3S2VOMIF.js";
85
- import {
86
- asNonEmptyStringArray
87
- } from "./chunk-I42VC5KR.js";
86
+ } from "./chunk-NLQBLZUO.js";
88
87
  import {
89
88
  asTrimmedLowercaseString
90
89
  } from "./chunk-QSJ3HFEF.js";
@@ -107,126 +106,6 @@ import {
107
106
  asOptionalTrimmedString
108
107
  } from "./chunk-G3SUCT4W.js";
109
108
 
110
- // packages/ai/skills/referenceRuntime.ts
111
- var joinUniqueStrings = (...groups) => Array.from(new Set(groups.flatMap((items) => asNonEmptyStringArray(items))));
112
- var extractRuntimePageCapabilities = (content) => {
113
- const meta = resolvePageSkillMetadata(content);
114
- const directTools = asNonEmptyStringArray(content?.tools);
115
- const skillConfig = meta?.skillConfig;
116
- const skillTools = skillConfig?.toolNames ?? [];
117
- const softSkillHints = asNonEmptyStringArray([
118
- skillConfig?.name,
119
- ...meta?.recommendedSkills ?? []
120
- ]);
121
- return {
122
- directTools,
123
- hardSkillKeys: meta?.requiredSkills ?? [],
124
- softSkillKeys: meta?.recommendedSkills ?? [],
125
- hardSkillTools: meta?.kind === "skill" ? skillTools : [],
126
- softSkillHints,
127
- promptPatches: skillConfig?.promptPatch ? [skillConfig.promptPatch] : [],
128
- shouldUpgradeReference: directTools.length > 0 || meta?.kind === "skill" || !!skillConfig?.promptPatch
129
- };
130
- };
131
- var buildSkillGuidancePromptBlock = (options) => {
132
- const title = asOptionalTrimmedString(options.title) ?? "--- \u6280\u80FD\u63D0\u793A ---";
133
- const recommendedSkillHints = joinUniqueStrings(options.recommendedSkillHints);
134
- const skillPromptPatches = joinUniqueStrings(options.skillPromptPatches);
135
- if (recommendedSkillHints.length === 0 && skillPromptPatches.length === 0) {
136
- return "";
137
- }
138
- return [
139
- title,
140
- recommendedSkillHints.length > 0 ? `\u4EE5\u4E0B\u6280\u80FD\u4E0E\u5F53\u524D\u4EFB\u52A1\u66F4\u76F8\u5173\uFF0C\u53EF\u4F18\u5148\u8003\u8651\uFF1A${recommendedSkillHints.join("\u3001")}` : "",
141
- ...skillPromptPatches
142
- ].filter(Boolean).join("\n");
143
- };
144
- var buildIdentifierCandidates = (identifier, contentByKey) => {
145
- const trimmed = identifier.trim();
146
- if (!trimmed || contentByKey.has(trimmed)) return trimmed;
147
- const candidateToKey = /* @__PURE__ */ new Map();
148
- for (const [key, page] of Array.from(contentByKey.entries())) {
149
- const meta = resolvePageSkillMetadata(page);
150
- for (const value of [key, page?.dbKey, page?.title, meta?.skillConfig?.id, meta?.skillConfig?.name]) {
151
- const trimmedValue = asOptionalTrimmedString(value);
152
- if (trimmedValue) {
153
- candidateToKey.set(trimmedValue, key);
154
- }
155
- }
156
- }
157
- return candidateToKey.get(trimmed) ?? trimmed;
158
- };
159
- async function resolveSkillGraphFromRoots(options) {
160
- const contentByKey = new Map(options.contentByKey ?? []);
161
- const requiredTools = /* @__PURE__ */ new Set();
162
- const recommendedTools = /* @__PURE__ */ new Set();
163
- const recommendedSkillHints = /* @__PURE__ */ new Set();
164
- const skillPromptPatches = /* @__PURE__ */ new Set();
165
- const visits = [];
166
- const visited = /* @__PURE__ */ new Set();
167
- const loadPageCached = async (identifier) => {
168
- const resolvedIdentifier = buildIdentifierCandidates(identifier, contentByKey);
169
- if (!resolvedIdentifier) return null;
170
- if (contentByKey.has(resolvedIdentifier)) {
171
- return contentByKey.get(resolvedIdentifier) ?? null;
172
- }
173
- const page = await options.loadPage(resolvedIdentifier);
174
- if (page) {
175
- contentByKey.set(resolvedIdentifier, page);
176
- if (page.dbKey) {
177
- contentByKey.set(page.dbKey, page);
178
- }
179
- }
180
- return page ?? null;
181
- };
182
- const visit = async (identifier, mode, sourceLabel) => {
183
- const page = await loadPageCached(identifier);
184
- if (!page?.dbKey) return;
185
- const visitKey = `${mode}:${page.dbKey}`;
186
- if (visited.has(visitKey)) return;
187
- visited.add(visitKey);
188
- const meta = resolvePageSkillMetadata(page);
189
- const directTools = canonicalizeToolNames(page.tools ?? []);
190
- const skillTools = canonicalizeToolNames(meta?.skillConfig?.toolNames ?? []);
191
- const mergedTools = joinUniqueStrings(directTools, skillTools);
192
- visits.push({
193
- dbKey: page.dbKey,
194
- title: page.title,
195
- mode,
196
- sourceLabel,
197
- meta
198
- });
199
- if (mode === "required") {
200
- mergedTools.forEach((toolName) => requiredTools.add(toolName));
201
- if (meta?.skillConfig?.promptPatch) {
202
- skillPromptPatches.add(meta.skillConfig.promptPatch);
203
- }
204
- } else {
205
- mergedTools.forEach((toolName) => recommendedTools.add(toolName));
206
- if (meta?.skillConfig?.name) {
207
- recommendedSkillHints.add(meta.skillConfig.name);
208
- }
209
- }
210
- const nextHard = meta?.requiredSkills ?? meta?.skillConfig?.requiredSkills ?? [];
211
- const nextSoft = meta?.recommendedSkills ?? meta?.skillConfig?.recommendedSkills ?? [];
212
- if (mode === "required") {
213
- await Promise.all(nextHard.map((childKey) => visit(childKey, "required", page.dbKey)));
214
- await Promise.all(nextSoft.map((childKey) => visit(childKey, "recommended", page.dbKey)));
215
- return;
216
- }
217
- await Promise.all([...nextHard, ...nextSoft].map((childKey) => visit(childKey, "recommended", page.dbKey)));
218
- };
219
- await Promise.all(options.roots.map((root) => visit(root.identifier, root.mode, root.sourceLabel)));
220
- return {
221
- requiredTools: Array.from(requiredTools),
222
- recommendedTools: Array.from(recommendedTools),
223
- recommendedSkillHints: Array.from(recommendedSkillHints),
224
- skillPromptPatches: Array.from(skillPromptPatches),
225
- contentByKey,
226
- visits
227
- };
228
- }
229
-
230
109
  // packages/ai/agent/referenceUtils.ts
231
110
  function mergeReferences(base, extra) {
232
111
  const safeBase = Array.isArray(base) ? base : [];
@@ -762,8 +641,8 @@ var CONTEXT_USAGE_INSTRUCTIONS = `\u53C2\u8003\u8D44\u6599\u4F7F\u7528\u8BF4\u66
762
641
  var AGENT_ORCHESTRATION_RUN_INSTRUCTIONS = `--- \u591A Agent \u7F16\u6392\uFF08\u540E\u53F0 Run\uFF09 ---
763
642
  \u4F60\u53EF\u7528 startAgentRun \u540E\u53F0\u542F\u52A8\u5B50 Agent\uFF08fork+exec\uFF0C\u8FD4\u56DE runId\uFF09\uFF0C\u7528 controlAgentRun \u89C2\u5BDF/\u505C\u6B62\uFF08wait+signal+proc\uFF09\u3002\u6838\u5FC3\u7EAA\u5F8B\uFF08\u53CD\u9762\u6559\u6750\uFF1A\u5B50\u4EE3\u7406\u5D29\u6E83/\u6302\u8D77\u800C\u7F16\u6392\u5668\u6BEB\u65E0\u5BDF\u89C9\uFF09\uFF1A
764
643
  1. \u5148\u53D1\u73B0\u518D\u6D3E\u53D1\u3002\u8C03\u7528 listAgents \u8BFB\u53D6\u5B89\u5168\u6458\u8981\u3002\u9009\u4EBA\u6309\u4F18\u5148\u7EA7\uFF1A\u7279\u5B9A\u5DE5\u5177\u9700\u6C42 \u2192 \u81EA\u5EFA agent \u4F18\u5148\uFF08isOwned=true \u6216 apiSource="custom"\uFF1A\u8D70\u7528\u6237\u81EA\u5DF1\u7684 API/OAuth\uFF0C\u4E0D\u6D88\u8017\u5E73\u53F0 credits\uFF0C\u4E0D\u82B1\u94B1\uFF09\u2192 \u4EFB\u52A1\u6863\u4E0E\u6210\u672C/\u80FD\u529B\u5339\u914D \u2192 \u80DC\u4EFB\u8005\u4E2D\u7684 isFavorite \u2192 modelAbility / inputPrice/outputPrice\u3002
765
- - \u6D3E\u53D1\u524D\u5148\u5224\u65AD"\u8BE5\u4E0D\u8BE5\u6D3E\u53D1"\uFF1A\u7236 agent \u8F6E\u8BE2 + \u4E0A\u4E0B\u6587\u4F20\u9012\u672C\u8EAB\u6709\u6210\u672C\uFF0C\u5B50\u4EE3\u7406\u5355\u4EF7\u4F4E\u4E0D\u7B49\u4E8E\u603B\u6210\u672C\u66F4\u4F4E\u3002\u5C0F\u4EFB\u52A1\u76F4\u63A5\u505A\uFF1B\u53EA\u6709\u4EFB\u52A1\u5927\u5230\u5355 agent \u88C5\u4E0D\u4E0B\u3001\u6216\u53EF\u5E76\u884C\u7701\u65F6\u95F4\uFF0C\u7F16\u6392\u624D\u5212\u7B97\u3002
766
- - \u5148\u4F30\u4EFB\u52A1\u6863\uFF1A\u5FAE/\u7B80\u5355\uFF08\u22642 \u6B65\u3001\u6587\u6848\u3001\u5355\u70B9 polish\uFF09\uFF5C\u4E2D\uFF08\u591A\u6587\u4EF6\u8BFB\u6539\u9A8C\uFF09\uFF5C\u9AD8\uFF08\u67B6\u6784\u3001\u6DF1 review\u3001\u9AD8\u98CE\u9669\u63A8\u7406\uFF09\u3002
644
+ - \u6D3E\u53D1\u524D\u5148\u5224\u65AD"\u62C6\u4E0D\u62C6"\uFF1A\u672C\u7CFB\u7EDF\u9ED8\u8BA4\u5E76\u53D1\u3002\u51E1\u662F\u80FD\u62C6\u6210\u591A\u4E2A\u81EA\u5305\u542B\u5B50\u4EFB\u52A1\u7684\uFF0C\u5C31**\u5E76\u884C\u6D3E\u53D1**\uFF08\u4E00\u6B21 startAgentRun \u591A\u4E2A\uFF09\uFF0C\u4E0D\u8981\u81EA\u5DF1\u95F7\u5934\u4E32\u884C\u505A\u3002\u53EA\u6709\u5355\u4E2A\u539F\u5B50\u4EFB\u52A1\uFF08\u65E0\u6CD5\u62C6\u5206\u3001\u5FC5\u987B\u4E00\u6B65\u5B8C\u6210\uFF09\u624D\u81EA\u5DF1\u76F4\u63A5\u505A\u3002
645
+ - \u5148\u4F30\u4EFB\u52A1\u6863\uFF1A\u5FAE/\u7B80\u5355\uFF08\u22642 \u6B65\u3001\u6587\u6848\u3001\u5355\u70B9 polish\uFF09\uFF5C\u4E2D\uFF08\u591A\u6587\u4EF6\u8BFB\u6539\u9A8C\uFF09\uFF5C\u9AD8\uFF08\u67B6\u6784\u3001\u6DF1 review\u3001\u9AD8\u98CE\u9669\u63A8\u7406\uFF09\u3002\u591A\u8DEF\u72EC\u7ACB\u5B50\u4EFB\u52A1\u4F18\u5148\u5E76\u884C\uFF0C\u800C\u4E0D\u662F\u9010\u8DEF\u7B49\u5F85\u3002
767
646
  - \u81EA\u52A8\u59D4\u6258\u7684\u9AD8\u7AEF\u6A21\u578B\u786C\u95E8\uFF1AOpus 5\u3001GPT-5.6 Sol \u53CA\u540C\u7EA7\u9876\u6863\u4EC5\u7528\u4E8E\u590D\u6742\u67B6\u6784/\u8DE8\u57DF\u8BBE\u8BA1\u3001\u91CD\u5927\u4E8B\u6545\u6216\u5B89\u5168/\u6570\u636E\u5B8C\u6574\u6027\u9AD8\u98CE\u9669\u5206\u6790\u3001\u6DF1 review\uFF08\u89C1\u4E0B\u91CF\u5316\u95E8\u69DB\uFF09\u3001\u6216\u4F4E\u4EF7\u80DC\u4EFB\u6A21\u578B\u5DF2\u6709\u5931\u8D25\u8BC1\u636E\u540E\u5347\u7EA7\u3002\u5FAE\u5C0F\u3001\u7B80\u5355\u548C\u666E\u901A\u4E2D\u7B49\u4EFB\u52A1\u7981\u6B62\u81EA\u52A8\u9009\u62E9\uFF1B\u7528\u6237\u660E\u786E\u70B9\u540D\u4F7F\u7528\u4E0D\u53D7\u6B64\u81EA\u52A8\u59D4\u6258\u9650\u5236\u3002
768
647
  - \u6DF1 review \u91CF\u5316\u95E8\u69DB\uFF08\u8FBE\u5230\u624D\u5141\u8BB8\u9876\u6863\uFF09\uFF1A\u6539\u52A8\u6587\u4EF6\u6570 \u2265 30 \u4E14\u6D89\u53CA\u8BA1\u8D39/\u5B89\u5168/\u6570\u636E\u5B8C\u6574\u6027/\u6838\u5FC3\u8DEF\u7531\u5173\u952E\u8DEF\u5F84\uFF1B\u6216\u4F4E\u4EF7 reviewer \u5DF2\u7ED9\u51FA BLOCK/\u901A\u9053\u5931\u8D25\u540E\u7684\u5347\u7EA7\u3002\u666E\u901A review \u9ED8\u8BA4\u6D3E\u4E2D\u6863\u4F4E\u4EF7\u6A21\u578B\uFF08\u5982 DeepSeek V4 Flash\u3001agy-flash\u3001GLM \u7B49\uFF09\uFF0C\u4E0D\u6D3E\u9876\u6863\u3002
769
648
  - \u9009\u62E9\u9876\u6863\u524D\u5FC5\u987B\u5728\u56DE\u590D\u4E2D\u7B80\u8FF0\u590D\u6742\u6027\u7406\u7531\uFF08\u5F15\u7528\u91CF\u5316\u95E8\u69DB\uFF09\uFF1B\u5931\u8D25\u5347\u7EA7\u5FC5\u987B\u6307\u51FA\u4F4E\u4EF7\u5019\u9009\u7684\u5177\u4F53\u5931\u8D25\u8BC1\u636E\u3002\u7981\u6B62\u51ED\u540D\u5B57\u7F16\u9020\u7EC6\u80FD\u529B\uFF0C\u4F46\u5141\u8BB8\u7528\u4EF7\u683C\u3001modelAbility \u53CA\u660E\u663E\u9876\u6863\u65CF\u7CFB\u505A\u7C97\u6863\u4F4D\u5339\u914D\u3002
@@ -775,25 +654,28 @@ var AGENT_ORCHESTRATION_RUN_INSTRUCTIONS = `--- \u591A Agent \u7F16\u6392\uFF08\
775
654
  5. \u5F02\u5E38\u624D\u62C9\u65E5\u5FD7\u3002tailLines:0 \u663E\u793A running \u4E14\u8FDB\u5EA6\u6B63\u5E38 \u2192 \u7EE7\u7EED\u8F7B\u8F6E\u8BE2\uFF1B\u53EA\u6709 status=failed/\u8D85\u65F6/\u7591\u4F3C\u5361\u6B7B\u624D controlAgentRun(action:"status", runId, tailLines:30) \u62C9\u65E5\u5FD7\u8BCA\u65AD\u3002\u6B63\u5E38\u5B8C\u6210\u7684\u5B50 agent \u770B\u72B6\u6001\u6458\u8981\u5373\u53EF\uFF0C\u4E0D\u5FC5\u62C9\u5B8C\u6574\u65E5\u5FD7\u3002
776
655
  6. stop \u524D\u5148\u770B\u65E5\u5FD7\u3002\u7528 status(tailLines:30) \u5224\u65AD\u662F\u771F\u5361\u6B7B\u8FD8\u662F\u6B63\u5E38\u8DD1\uFF0C\u786E\u8BA4\u9700\u8981\u53EB\u505C\u518D controlAgentRun(action:"stop", runId)\uFF1B\u7528 list/status \u786E\u8BA4 run \u771F\u5B9E\u5B58\u5728\u4E14\u975E\u7EC8\u6001\uFF0C\u522B\u5047\u8BBE"\u6D3E\u53D1\u4E86\u5C31\u5728\u8DD1"\u3002
777
656
  \u5DE5\u5177\u9009\u62E9\uFF1A\u5B50\u4EFB\u52A1 <100s \u4E14\u8981\u7ACB\u5373\u62FF\u7ED3\u679C \u2192 callAgent\uFF08\u540C\u6B65\uFF09\uFF1B\u957F\u4EFB\u52A1 / \u5E76\u884C / \u9700\u8981\u89C2\u5BDF\u6216\u53EB\u505C \u2192 startAgentRun\uFF08\u672C\u6BB5\uFF09\u3002`;
778
- var AGENT_COLLABORATION_INSTRUCTIONS = `--- \u591A Agent \u534F\u4F5C\uFF08\u8BA1\u5212 \u2192 \u6D3E\u53D1 \u2192 \u5BA1\u67E5\uFF09 ---
779
- \u7528\u5B50\u4EE3\u7406\u5B8C\u6210\u4E2D\u5927\u578B\u4EFB\u52A1\u65F6\uFF0C\u6309\u4E09\u6BB5\u7EAA\u5F8B\u6267\u884C\uFF1A
780
- 1. \u8BA1\u5212\u5148\u884C\uFF1A\u52A8\u624B\u524D\u5148\u60F3\u6E05\u695A\u76EE\u6807\u3001\u8FB9\u754C\u3001\u9A8C\u8BC1\u65B9\u5F0F\u548C\u505C\u6B62\u6761\u4EF6\uFF1B\u9884\u8BA1 3 \u6B65\u4EE5\u4E0A\uFF08\u8BFB\u6539\u9A8C\u3001\u591A\u6587\u4EF6\u3001\u4EFB\u4F55\u6D3E\u53D1\uFF09\u5148\u5B9A\u8BA1\u5212\uFF0C\u518D\u51B3\u5B9A\u81EA\u5DF1\u505A\u5B8C\u8FD8\u662F\u6D3E\u53D1\u3002
781
- - \u6D3E\u53D1\u524D\u505A\u6210\u672C\u6743\u8861\uFF1A\u7236 agent \u8F6E\u8BE2\u3001\u4E0A\u4E0B\u6587\u4F20\u9012\u3001\u534F\u8C03\u5F00\u9500\u672C\u8EAB\u8981\u6D88\u8017 token\uFF1B\u5B50\u4EE3\u7406\u66F4\u4FBF\u5B9C\u4E0D\u7B49\u4E8E\u7F16\u6392\u4E00\u5B9A\u66F4\u7701\u3002\u7B80\u5355/\u4E2D\u7B49\u4EFB\u52A1\u7528\u5F3A\u6A21\u578B\u76F4\u63A5\u505A\uFF0C\u5F80\u5F80\u6BD4"\u5F3A\u6A21\u578B\u6307\u6325 + \u5F31\u6A21\u578B\u5B9E\u73B0"\u66F4\u7701\uFF08\u5B9E\u6D4B\uFF1A\u6307\u6325+\u5B9E\u73B0\u7684\u53CC\u5C42 credits \u5E38\u8D85\u8FC7\u5355\u5C42\u5F3A\u6A21\u578B\u76F4\u505A\uFF09\u3002\u53EA\u6709\u4EFB\u52A1\u8DB3\u591F\u5927\uFF08\u591A\u6587\u4EF6\u6DF1\u6539\u3001\u53EF\u5E76\u884C\u3001\u5355 agent \u4E0A\u4E0B\u6587\u88C5\u4E0D\u4E0B\uFF09\u65F6\uFF0C\u7F16\u6392\u7684\u62C6\u5206\u6536\u76CA\u624D\u660E\u663E\u8D85\u8FC7\u534F\u8C03\u6210\u672C\u3002
782
- 2. \u6D3E\u53D1\u539F\u5219\uFF1A\u5B50\u4EFB\u52A1\u81EA\u5305\u542B\u3001\u8FB9\u754C\u6E05\u6670\u3001\u80FD\u5E76\u884C\u5219\u5E76\u884C\uFF1B\u7ED9\u6267\u884C\u8005\u5199\u6E05\u4EFB\u52A1\u3001\u9A8C\u6536\u548C\u7981\u533A\uFF0C\u4E0D\u4F20\u65E0\u5173\u5386\u53F2\u3002\u6D3E\u53D1\u540E\u8F6E\u8BE2\u7ED3\u679C\uFF0C\u4E0D\u5047\u8BBE\u6210\u529F\u3002
783
- 3. \u72EC\u7ACB\u5BA1\u67E5\uFF08commit \u524D\u786C\u95E8\uFF09\uFF1A\u9664 \u22642 \u6B65\u96F6\u903B\u8F91\u98CE\u9669\u7684\u673A\u68B0\u6539\u52A8\u5916\uFF0C\u6240\u6709\u4EE3\u7801\u53D8\u66F4 commit \u524D\u5FC5\u987B\u5148\u6D3E**\u5176\u4ED6 agent**\uFF08\u4E0D\u540C\u6A21\u578B\u5BB6\u65CF\u4F18\u5148\uFF09review\u3002reviewer \u4E0D\u53EF\u662F\u81EA\u5DF1\u3002\u65E0 review \u4E0D commit\u2014\u2014\u8FD9\u662F\u786C\u95E8\uFF0C\u4E0D\u662F\u5EFA\u8BAE\u3002\u8BE6\u7EC6\u6D41\u7A0B\uFF08\u591A\u8F6E\u65E0\u4E0A\u4E0B\u6587 review\u3001\u901A\u8FC7\u6761\u4EF6\u3001ephemeral \u6D3E\u53D1\u3001\u9003\u9038\u673A\u5236\uFF09\u89C1 nolo-commit skill \u7684\u63D0\u4EA4\u524D\u81EA\u68C0\u7B2C 0 \u9879\u3002
784
- \u6700\u5C0F\u5B9E\u73B0\uFF1A\u80FD\u5220\u89E3\u51B3\u5C31\u4E0D\u52A0\uFF0C\u80FD\u590D\u7528\u5C31\u4E0D\u65B0\u5EFA\uFF1B\u65B0\u62BD\u8C61\u524D\u5148\u641C\u5DF2\u6709\u5B9E\u73B0\u3002\u4E0D\u8981\u4E3A\u4E86\u663E\u5F97\u5FD9\u788C\u800C\u6D3E\u53D1\u6216\u8FC7\u5EA6\u8BBE\u8BA1\u3002`;
657
+ var AGENT_COLLABORATION_INSTRUCTIONS = `--- \u591A Agent \u534F\u4F5C\uFF08\u8BA1\u5212 \u2192 \u5E76\u53D1\u6D3E\u53D1 \u2192 \u5BA1\u67E5\uFF09 ---
658
+ \u672C\u7CFB\u7EDF\u5929\u751F\u591A agent\u3001\u591A review\uFF1A**\u9ED8\u8BA4\u5E76\u53D1\u4F7F\u7528\u591A\u4E2A agent \u540C\u65F6\u5904\u7406\u591A\u4EF6\u4E8B**\uFF0C\u800C\u4E0D\u662F\u4E32\u884C\u81EA\u5DF1\u6162\u6162\u505A\u3002\u6309\u4EE5\u4E0B\u7EAA\u5F8B\u6267\u884C\uFF1A
659
+ 1. \u8BA1\u5212\u5148\u884C\uFF1A\u52A8\u624B\u524D\u5148\u60F3\u6E05\u695A\u76EE\u6807\u3001\u8FB9\u754C\u3001\u9A8C\u8BC1\u65B9\u5F0F\u548C\u505C\u6B62\u6761\u4EF6\uFF1B\u9884\u8BA1 3 \u6B65\u4EE5\u4E0A\uFF08\u8BFB\u6539\u9A8C\u3001\u591A\u6587\u4EF6\u3001\u4EFB\u4F55\u6D3E\u53D1\uFF09\u5148\u5B9A\u8BA1\u5212\u3002
660
+ - **\u9ED8\u8BA4\u5E76\u53D1\u62C6\u5206**\uFF1A\u628A\u4EFB\u52A1\u62C6\u6210\u81EA\u5305\u542B\u3001\u8FB9\u754C\u6E05\u6670\u3001\u4E92\u4E0D\u4F9D\u8D56\u7684\u5B50\u4EFB\u52A1\uFF0C**\u540C\u65F6**\uFF08\u4E00\u6B21 startAgentRun \u591A\u4E2A\uFF09\u6D3E\u7ED9\u4E0D\u540C agent \u5E76\u884C\u6267\u884C\uFF0C\u7236 agent \u7528\u4E00\u4E2A turn \u6D3E\u53D1 + \u4E00\u4E2A turn \u6536\u96C6\u7ED3\u679C\uFF0C\u800C\u4E0D\u662F\u4E32\u884C\u7B49\u5F85 N \u4E2A turn\u3002
661
+ - \u80FD\u62C6\u5C31\u62C6\uFF1A\u591A\u4E2A\u72EC\u7ACB\u4E8B\u9879\uFF08\u591A\u6587\u4EF6\u6539\u52A8\u3001\u591A\u6A21\u5757\u5206\u6790\u3001\u591A\u7EC4\u7814\u7A76\u3001\u591A\u8DEF review\uFF09**\u4F18\u5148\u5E76\u884C**\uFF0C\u800C\u4E0D\u662F\u81EA\u5DF1\u9010\u4E2A\u505A\u6216\u4E32\u884C\u6D3E\u53D1\u3002\u7236 agent \u662F\u534F\u8C03\u8005\uFF0C\u4E0D\u662F\u6267\u884C\u8005\u3002
662
+ - **\u5E76\u53D1 \u2260 \u6D6A\u8D39\u94B1**\uFF1A\u5E76\u53D1\u4E0B\u4F9D\u7136\u7701\u94B1\u2014\u2014\u6BCF\u4E2A\u5B50 agent \u7528**\u4FBF\u5B9C\u80DC\u4EFB**\u7684\u6A21\u578B\uFF08\u4F18\u5148\u81EA\u5EFA agent \u8D70\u7528\u6237\u81EA\u5DF1\u7684 API/OAuth\u3001\u4F18\u5148\u4F4E\u4EF7\u80DC\u4EFB\u5019\u9009\uFF0C\u4E0D\u6D3E\u9876\u6863\u505A\u666E\u901A\u5B50\u4EFB\u52A1\uFF09\uFF0C\u7236 agent \u8D1F\u8D23\u591A\u8BFB\u6C47\u603B\uFF0C\u628A\u5E76\u53D1\u5E26\u6765\u7684\u541E\u5410\u4F18\u52BF\u8F6C\u5316\u4E3A\u6210\u672C/\u65F6\u95F4\u53CC\u8D62\u3002\u5E76\u884C\u8BA9\u6BCF\u4E2A\u5B50 agent \u4E0A\u4E0B\u6587\u805A\u7126\u3001\u4E92\u4E0D\u6C61\u67D3\uFF0C\u6BD4\u7236 agent \u81EA\u5DF1\u80CC\u5168\u90E8\u4E0A\u4E0B\u6587\u4E32\u884C\u505A\u66F4\u7701\u3001\u66F4\u5FEB\u3002
663
+ 2. \u6D3E\u53D1\u539F\u5219\uFF1A\u5B50\u4EFB\u52A1\u81EA\u5305\u542B\u3001\u8FB9\u754C\u6E05\u6670\uFF1B**\u7ED9\u6267\u884C\u8005\u5199\u6E05\u4EFB\u52A1\u3001\u9A8C\u6536\u548C\u7981\u533A\uFF0C\u4FDD\u8BC1\u4EFB\u52A1\u786E\u5B9A\u6027**\uFF08\u7ED3\u679C\u53EF\u6838\u5BF9\u3001\u4E0D\u4F20\u65E0\u5173\u5386\u53F2\u3001\u660E\u786E\u5B8C\u6210\u6761\u4EF6\uFF09\uFF0C\u6D3E\u53D1\u540E\u8F7B\u8F6E\u8BE2\u7ED3\u679C\uFF0C\u4E0D\u5047\u8BBE\u6210\u529F\u3002
664
+ 3. \u72EC\u7ACB\u5BA1\u67E5\uFF08commit \u524D\u786C\u95E8\uFF09\uFF1A\u9664 \u22642 \u6B65\u96F6\u903B\u8F91\u98CE\u9669\u7684\u673A\u68B0\u6539\u52A8\u5916\uFF0C\u6240\u6709\u4EE3\u7801\u53D8\u66F4 commit \u524D\u5FC5\u987B\u5148\u6D3E**\u5176\u4ED6 agent**\uFF08\u4E0D\u540C\u6A21\u578B\u5BB6\u65CF\u4F18\u5148\uFF09review\u3002reviewer \u4E0D\u53EF\u662F\u81EA\u5DF1\u3002\u65E0 review \u4E0D commit\u2014\u2014\u8FD9\u662F\u786C\u95E8\uFF0C\u4E0D\u662F\u5EFA\u8BAE\u3002\u591A\u4E2A\u72EC\u7ACB\u6539\u52A8\u9762\u4F18\u5148\u5E76\u884C\u6D3E\u591A\u4E2A reviewer \u5404\u5BA1\u5404\u7684\u3002\u8BE6\u7EC6\u6D41\u7A0B\u89C1 coding-review\uFF08\u4EE3\u7801\u5C42\uFF09\u7684 Dispatch \u89C4\u8303\u3002
665
+ \u6700\u5C0F\u5B9E\u73B0\uFF1A\u80FD\u5220\u89E3\u51B3\u5C31\u4E0D\u52A0\uFF0C\u80FD\u590D\u7528\u5C31\u4E0D\u65B0\u5EFA\uFF1B\u65B0\u62BD\u8C61\u524D\u5148\u641C\u5DF2\u6709\u5B9E\u73B0\u3002**\u4E0D\u8981\u56E0\u4E3A"\u89C9\u5F97\u6D3E\u53D1\u663E\u5F97\u5FD9"\u5C31\u81EA\u5DF1\u95F7\u5934\u4E32\u884C\u505A\u2014\u2014\u5E76\u53D1\u662F\u672C\u7CFB\u7EDF\u7684\u9ED8\u8BA4\u5DE5\u4F5C\u65B9\u5F0F\uFF1B\u5E76\u53D1\u65F6\u4F9D\u7136\u8981\u7701\u94B1\u3001\u8981\u7ED9\u786E\u5B9A\u6027\u4EFB\u52A1\u3001\u8981\u7236 agent \u6C47\u603B\u3002**`;
785
666
  var MENU_USAGE_INSTRUCTIONS = `--- \u4EA4\u4E92\u8BF4\u660E ---
786
667
  \u6240\u6709\u7528\u6237\u8F93\u5165\u5747\u4E3A\u7EAF\u6587\u672C\u6D88\u606F\uFF0C\u76F4\u63A5\u7406\u89E3\u5373\u53EF\uFF0C\u4E0D\u8981\u5728\u56DE\u590D\u4E2D\u63D0\u53CA\u6309\u94AE\u3001\u83DC\u5355\u3001\u754C\u9762\u7B49 UI \u5143\u7D20\u3002
787
668
 
788
- ## \u4F55\u65F6\u8C03\u7528 ui_ask_choice
789
- \u9ED8\u8BA4\u503E\u5411"\u76F4\u63A5\u884C\u52A8"\uFF1A\u5F53\u4F60\u80FD\u57FA\u4E8E\u73B0\u6709\u4E0A\u4E0B\u6587\u7ED9\u51FA\u9AD8\u8D28\u91CF\u7B54\u6848\u6216\u6267\u884C\u65F6\uFF0C\u4F18\u5148\u76F4\u63A5\u505A\uFF0C\u4E0D\u8981\u4E3A\u4E86\u95EE\u800C\u95EE\u3002\u4EC5\u5728\u4EE5\u4E0B\u60C5\u51B5\u8C03\u7528 ui_ask_choice\uFF1A
669
+ ## \u4F55\u65F6\u8C03\u7528 ask_user
670
+ \u9ED8\u8BA4\u503E\u5411"\u76F4\u63A5\u884C\u52A8"\uFF1A\u5F53\u4F60\u80FD\u57FA\u4E8E\u73B0\u6709\u4E0A\u4E0B\u6587\u7ED9\u51FA\u9AD8\u8D28\u91CF\u7B54\u6848\u6216\u6267\u884C\u65F6\uFF0C\u4F18\u5148\u76F4\u63A5\u505A\uFF0C\u4E0D\u8981\u4E3A\u4E86\u95EE\u800C\u95EE\u3002\u4EC5\u5728\u4EE5\u4E0B\u60C5\u51B5\u8C03\u7528 ask_user\uFF1A
790
671
  1\uFF09\u7528\u6237\u9700\u6C42\u5BBD\u6CDB\u6216\u6A21\u7CCA\uFF0C\u4E14\u4F60\u80FD\u7ED9\u51FA 2\uFF5E5 \u4E2A\u4E92\u65A5\u3001\u90FD\u5408\u7406\u7684\u65B9\u5411\u5019\u9009\u2014\u2014\u8BA9\u7528\u6237\u5148\u9009\u4E00\u4E2A\u65B9\u5411\u518D\u6DF1\u5165\uFF1B
791
672
  2\uFF09\u8BA1\u5212/\u6D41\u7A0B\u5230\u4E86\u771F\u6B63\u7684\u5206\u652F\u8282\u70B9\uFF0C\u4E0D\u540C\u9009\u62E9\u4F1A\u5BFC\u81F4\u663E\u8457\u4E0D\u540C\u7684\u6210\u672C\u3001\u9690\u79C1\u6216\u7ED3\u679C\u8D70\u5411\uFF0C\u4E14\u4F60\u65E0\u6CD5\u4ECE\u4E0A\u4E0B\u6587\u63A8\u65AD\u7528\u6237\u504F\u597D\uFF1B
792
673
  3\uFF09\u65B0\u4F1A\u8BDD\u5F00\u5934\uFF0C\u6839\u636E\u7528\u6237\u753B\u50CF\u7ED9\u51FA\u82E5\u5E72"\u63A5\u4E0B\u6765\u53EF\u4EE5\u5C1D\u8BD5\u7684\u4E8B\u60C5"\u4F5C\u4E3A\u529F\u80FD\u5BFC\u822A\u6216\u4F7F\u7528\u5F15\u5BFC\u3002
793
674
 
794
- ## \u8C03\u7528 ui_ask_choice \u7684\u89C4\u8303
675
+ ## \u8C03\u7528 ask_user \u7684\u89C4\u8303
795
676
  - \u8C03\u7528\u524D\u5FC5\u987B\u5148\u5728\u666E\u901A\u56DE\u590D\u6587\u672C\u91CC\u5199\u6E05\u80CC\u666F\u3001\u7406\u7531\u6216\u6743\u8861\uFF08\u5148\u89E3\u91CA\uFF0C\u518D\u8C03\u7528\u5DE5\u5177\uFF09\uFF1B
796
- - \u63D0\u4F9B 2\uFF5E5 \u4E2A\u4E92\u65A5\u9009\u9879\uFF1B\u5982\u679C\u4F60\u6709\u63A8\u8350\u65B9\u5411\uFF0C\u628A\u5B83\u653E\u5728 choices \u7684\u7B2C\u4E00\u4F4D\uFF1B
677
+ - \u63D0\u4F9B 2\uFF5E5 \u4E2A\u4E92\u65A5\u9009\u9879\uFF1B\u5982\u679C\u4F60\u6709\u63A8\u8350\u65B9\u5411\uFF0C\u628A\u5B83\u653E\u5728 choices \u7684\u7B2C\u4E00\u4F4D\uFF0C\u5E76\u7ED9\u8BE5\u9009\u9879\u6807 recommended: true\uFF1B
678
+ - \u82E5\u6CA1\u6709\u660E\u786E\u7684\u63A8\u8350\u9879\uFF0C\u5FC5\u987B\u5728\u8C03\u7528\u524D\u7684\u666E\u901A\u56DE\u590D\u6587\u672C\u91CC\u7B80\u8981\u8BF4\u660E\u6BCF\u4E2A\u9009\u9879\u7684\u4F18\u7F3A\u70B9\uFF08\u6216\u5404\u9009\u9879\u7684\u5173\u952E\u5DEE\u5F02\uFF09\uFF0C\u5E2E\u52A9\u7528\u6237\u6743\u8861\uFF0C\u800C\u4E0D\u662F\u53EA\u5217\u51FA\u9009\u9879\u5C31\u5B8C\u4E8B\uFF1B
797
679
  - \u9009\u9879\u53EA\u627F\u8F7D\u9002\u5EA6\u4FE1\u606F\uFF1Alabel \u4E3A\u7B80\u77ED\u6309\u94AE\u6587\u6848\uFF1Bdetail \u4E3A\u53EF\u9009\u3001\u81F3\u591A\u4E00\u53E5\u8BDD\u7684\u7B80\u77ED\u8865\u5145\uFF1B\u7981\u6B62\u628A\u957F\u6BB5\u89E3\u91CA\u6216\u6743\u8861\u585E\u8FDB choices/detail\uFF1B
798
680
  - \u6BCF\u4E2A\u9009\u9879\u7684 userMessage \u5199\u6210\u5B8C\u6574\u7684\u4E0B\u4E00\u53E5\u8BDD\uFF0C\u65B9\u4FBF\u7528\u6237\u70B9\u51FB\u540E\u4E0A\u4E0B\u6587\u8FDE\u8D2F\uFF1B
799
681
  - \u4E0D\u8981\u5728\u9009\u9879\u5217\u8868\u91CC\u653E"\u5176\u4ED6/Other"\u2014\u2014\u5BA2\u6237\u7AEF\u4F1A\u81EA\u52A8\u4E3A\u7528\u6237\u8FFD\u52A0\u81EA\u7531\u8F93\u5165\u7684\u9000\u8DEF\uFF1B
@@ -909,7 +791,7 @@ var TOOL_GUIDED_SECTIONS = [
909
791
  ],
910
792
  build: () => AGENT_COLLABORATION_INSTRUCTIONS
911
793
  },
912
- { id: "menuUsage", triggerTools: ["ui_ask_choice"], build: () => MENU_USAGE_INSTRUCTIONS },
794
+ { id: "menuUsage", triggerTools: ["ask_user"], build: () => MENU_USAGE_INSTRUCTIONS },
913
795
  {
914
796
  id: "webAccess",
915
797
  triggerTools: ["exa_search", "fetchWebpage", "browser_openSession", "read_x_post"],
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  readDbRecord,
3
3
  writeAgentRecord
4
- } from "./chunk-4PIVMGLG.js";
4
+ } from "./chunk-N77EBDJJ.js";
5
5
  import {
6
6
  buildSkillSummaryMarker
7
7
  } from "./chunk-VF4K2QE6.js";
8
+ import {
9
+ createSpaceKey
10
+ } from "./chunk-27MGYWLZ.js";
8
11
  import {
9
12
  parseUserIdFromAuthToken,
10
13
  readOption,
11
14
  resolveAuthToken,
12
15
  resolveServerUrl
13
16
  } from "./chunk-A7GB5UGH.js";
14
- import {
15
- createSpaceKey
16
- } from "./chunk-IWLUTMYX.js";
17
17
  import {
18
18
  asTrimmedLowercaseString
19
19
  } from "./chunk-QSJ3HFEF.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-KFEVY3ST.js";
4
4
  import {
5
5
  canonicalizeToolNames
6
- } from "./chunk-OSIJVBXP.js";
6
+ } from "./chunk-ZZ2MH7LE.js";
7
7
  import {
8
8
  asTrimmedLowercaseString
9
9
  } from "./chunk-QSJ3HFEF.js";
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-AAODAAUQ.js";
8
8
  import {
9
9
  parseToolArgumentsJson
10
- } from "./chunk-Y62XMRMG.js";
10
+ } from "./chunk-DXOUTEQC.js";
11
11
  import {
12
12
  createThinkParserState,
13
13
  createToolCallAccumulator,
@@ -18,7 +18,7 @@ import {
18
18
  import {
19
19
  requiresBareImageUrl,
20
20
  toBareImageUrlMessages
21
- } from "./chunk-SOW2GCA5.js";
21
+ } from "./chunk-IOOMJJ4Z.js";
22
22
  import {
23
23
  shouldStripReasoningContentForOutbound,
24
24
  toOpenAiCompatibleMessages
@@ -28,25 +28,27 @@ import {
28
28
  buildProviderExecutionPlan
29
29
  } from "./chunk-MUCU6ATG.js";
30
30
  import {
31
- canonicalizeToolName,
32
31
  createGlob,
33
32
  resolveExecutableOnPath
34
- } from "./chunk-OSIJVBXP.js";
33
+ } from "./chunk-XV5I4HHL.js";
35
34
  import {
36
35
  toErrorMessage
37
36
  } from "./chunk-HNMXYYJR.js";
37
+ import {
38
+ canonicalizeToolName
39
+ } from "./chunk-ZZ2MH7LE.js";
38
40
  import {
39
41
  asRecordOrEmpty
40
42
  } from "./chunk-KX6YBIHG.js";
41
43
  import {
42
44
  dialogMessageKey
43
- } from "./chunk-O4BU24WZ.js";
44
- import {
45
- asTrimmedNonEmptyStringArray
46
- } from "./chunk-I42VC5KR.js";
45
+ } from "./chunk-6Y7A3OQQ.js";
47
46
  import {
48
47
  asOptionalFiniteNumber
49
48
  } from "./chunk-WWC7I6TA.js";
49
+ import {
50
+ asTrimmedNonEmptyStringArray
51
+ } from "./chunk-I42VC5KR.js";
50
52
  import {
51
53
  asTrimmedLowercaseString
52
54
  } from "./chunk-QSJ3HFEF.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  selectCurrentServer,
3
3
  selectRemoteServers
4
- } from "./chunk-EABWT43X.js";
4
+ } from "./chunk-L2DKNKL4.js";
5
5
  import {
6
6
  createUserKey,
7
7
  extractAgentInfo,
@@ -10,7 +10,7 @@ import {
10
10
  sanitizeShareData,
11
11
  shareKey,
12
12
  toNonEmptyString
13
- } from "./chunk-O4BU24WZ.js";
13
+ } from "./chunk-6Y7A3OQQ.js";
14
14
  import {
15
15
  noloDeleteRequest,
16
16
  noloWriteRequest,
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  updateContentTitle
3
- } from "./chunk-LBOJLRSS.js";
3
+ } from "./chunk-HETVWFFQ.js";
4
4
  import {
5
5
  require_date_fns
6
6
  } from "./chunk-M76ECQRD.js";
7
- import {
8
- require_react
9
- } from "./chunk-3ASDTTEI.js";
10
7
  import {
11
8
  toErrorMessage
12
9
  } from "./chunk-HNMXYYJR.js";
10
+ import {
11
+ require_react
12
+ } from "./chunk-3ASDTTEI.js";
13
13
  import {
14
14
  patch,
15
15
  readAndWait
16
- } from "./chunk-3S2VOMIF.js";
16
+ } from "./chunk-NLQBLZUO.js";
17
17
  import {
18
18
  asOptionalTrimmedString
19
19
  } from "./chunk-G3SUCT4W.js";
@@ -367,7 +367,7 @@ async function saveDocState(arg, { dispatch, getState }) {
367
367
  }
368
368
  }
369
369
  async function createDocState(args, thunkApi) {
370
- const { createPageAction } = await import("./createPageAction-F37QJEHE.js");
370
+ const { createPageAction } = await import("./createPageAction-JYVUSH57.js");
371
371
  return createPageAction(args, thunkApi);
372
372
  }
373
373
  function subscribe(listener) {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  requireTokenUser
3
- } from "./chunk-5PWAAPWU.js";
3
+ } from "./chunk-IG3SA64O.js";
4
4
  import {
5
5
  resolveServerUrl
6
6
  } from "./chunk-A7GB5UGH.js";
@@ -10,12 +10,12 @@ import {
10
10
  toTimestampMs,
11
11
  upsert,
12
12
  write
13
- } from "./chunk-3S2VOMIF.js";
13
+ } from "./chunk-NLQBLZUO.js";
14
14
  import {
15
15
  createUserKey,
16
16
  createUserPreferenceKey,
17
17
  ulid
18
- } from "./chunk-O4BU24WZ.js";
18
+ } from "./chunk-6Y7A3OQQ.js";
19
19
  import {
20
20
  asTrimmedLowercaseString
21
21
  } from "./chunk-QSJ3HFEF.js";
@@ -5,10 +5,10 @@ import {
5
5
  inlineImageUrlsForCustomProvider,
6
6
  prepareTools,
7
7
  shouldInlineImageUrlsForAgent
8
- } from "./chunk-TX6S7JCM.js";
8
+ } from "./chunk-MT2DOPXQ.js";
9
9
  import {
10
10
  performFetchRequest
11
- } from "./chunk-QW7K3Y7V.js";
11
+ } from "./chunk-HRLDQJW7.js";
12
12
  import {
13
13
  createSSEParser,
14
14
  createToolRunId,
@@ -19,7 +19,7 @@ import {
19
19
  toolRunSetPending,
20
20
  toolRunStarted,
21
21
  toolRunSucceeded
22
- } from "./chunk-PVHN3TZV.js";
22
+ } from "./chunk-PH7SXF5R.js";
23
23
  import {
24
24
  getPublicImageAgentMode
25
25
  } from "./chunk-VIDPVFP3.js";
@@ -29,13 +29,13 @@ import {
29
29
  messageStreaming,
30
30
  selectCurrentSpaceId,
31
31
  updateToolMessage
32
- } from "./chunk-LBOJLRSS.js";
32
+ } from "./chunk-HETVWFFQ.js";
33
33
  import {
34
34
  streamAgentChatTurn
35
- } from "./chunk-PXZY7NIS.js";
35
+ } from "./chunk-3J6QER3H.js";
36
36
  import {
37
37
  EMPTY_ASSISTANT_REPAIR_PROMPT
38
- } from "./chunk-Y62XMRMG.js";
38
+ } from "./chunk-DXOUTEQC.js";
39
39
  import {
40
40
  accumulateToolCallDelta,
41
41
  createThinkParserState,
@@ -47,10 +47,13 @@ import {
47
47
  } from "./chunk-LSFAWXKC.js";
48
48
  import {
49
49
  getModelInfo
50
- } from "./chunk-IIHJMUV5.js";
50
+ } from "./chunk-EWLAMUG5.js";
51
51
  import {
52
52
  getApiEndpoint
53
53
  } from "./chunk-HQPG2PIV.js";
54
+ import {
55
+ toErrorMessage
56
+ } from "./chunk-HNMXYYJR.js";
54
57
  import {
55
58
  extractCustomId
56
59
  } from "./chunk-DFFIZ25G.js";
@@ -59,20 +62,17 @@ import {
59
62
  removeActiveController,
60
63
  tokenUsageLiveUpdate
61
64
  } from "./chunk-3ASDTTEI.js";
62
- import {
63
- toErrorMessage
64
- } from "./chunk-HNMXYYJR.js";
65
65
  import {
66
66
  selectCurrentServer
67
- } from "./chunk-EABWT43X.js";
67
+ } from "./chunk-L2DKNKL4.js";
68
68
  import {
69
69
  write
70
- } from "./chunk-3S2VOMIF.js";
70
+ } from "./chunk-NLQBLZUO.js";
71
71
  import {
72
72
  createDialogMessageKeyAndId,
73
73
  dialogMessageKey,
74
74
  toTrimmedString
75
- } from "./chunk-O4BU24WZ.js";
75
+ } from "./chunk-6Y7A3OQQ.js";
76
76
  import {
77
77
  createAsyncThunk,
78
78
  selectIdentityToken
@@ -507,7 +507,7 @@ var processToolData = createAsyncThunk(
507
507
  ...llmContext ? { llmContext } : {},
508
508
  ...activity ? { activity } : {}
509
509
  };
510
- const isUiAskChoice = canonicalName === "ui_ask_choice";
510
+ const isUiAskChoice = canonicalName === "ask_user";
511
511
  const blocking = typeof executionToolArgs?.blocking === "boolean" ? executionToolArgs.blocking : true;
512
512
  const hasPendingInteraction = isUiAskChoice && blocking === true;
513
513
  return {
@@ -3,7 +3,7 @@ import {
3
3
  prepareAndPersistMessage,
4
4
  uiAskChoiceFunc,
5
5
  uiAskChoiceFunctionSchema
6
- } from "./chunk-LBOJLRSS.js";
6
+ } from "./chunk-HETVWFFQ.js";
7
7
  import {
8
8
  require_date_fns
9
9
  } from "./chunk-M76ECQRD.js";
@@ -21,7 +21,7 @@ import {
21
21
  removeCachedEntity,
22
22
  upsertSSREntity,
23
23
  write
24
- } from "./chunk-3S2VOMIF.js";
24
+ } from "./chunk-NLQBLZUO.js";
25
25
  import {
26
26
  createAgentKey,
27
27
  createDialogKey,
@@ -30,7 +30,7 @@ import {
30
30
  dialogMessageRange,
31
31
  memoryOwnerRange,
32
32
  memorySubjectKindRange
33
- } from "./chunk-O4BU24WZ.js";
33
+ } from "./chunk-6Y7A3OQQ.js";
34
34
  import {
35
35
  selectIdentityUserId
36
36
  } from "./chunk-DVRHHFEA.js";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  i18n_default,
3
3
  toolRegistry
4
- } from "./chunk-PVHN3TZV.js";
4
+ } from "./chunk-PH7SXF5R.js";
5
5
  import {
6
6
  canonicalizeToolNames
7
- } from "./chunk-OSIJVBXP.js";
7
+ } from "./chunk-ZZ2MH7LE.js";
8
8
  import {
9
9
  isNoloHostedProvider
10
10
  } from "./chunk-O6W2O2DA.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  fetchReferenceContents,
3
3
  resolveReferenceAssets
4
- } from "./chunk-QW7K3Y7V.js";
4
+ } from "./chunk-HRLDQJW7.js";
5
5
 
6
6
  // packages/ai/agent/fetchAgentContexts.ts
7
7
  async function fetchAgentContexts(references, dispatch) {
@@ -2,7 +2,7 @@ import {
2
2
  buildLocalAgentLookupKeys,
3
3
  normalizeAgentHandle,
4
4
  shouldReadAgentKeyRemotely
5
- } from "./chunk-SR4IC7DS.js";
5
+ } from "./chunk-Y3GNPBAB.js";
6
6
  import {
7
7
  resolveCliAgentKeyInput
8
8
  } from "./chunk-VHBWHNVT.js";
@@ -22,7 +22,7 @@ import {
22
22
  } from "./chunk-A7GB5UGH.js";
23
23
  import {
24
24
  createAgentKey
25
- } from "./chunk-O4BU24WZ.js";
25
+ } from "./chunk-6Y7A3OQQ.js";
26
26
 
27
27
  // packages/cli/agentRecordHelpers.ts
28
28
  import { readFileSync } from "node:fs";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  listUserRecordsFromServers,
3
3
  readLiveDbRecordAfterTombstoneMerge
4
- } from "./chunk-DLH6BOUO.js";
4
+ } from "./chunk-VE7PIZFT.js";
5
5
  import {
6
6
  agentRecordHasConfiguredCredential
7
- } from "./chunk-4PIVMGLG.js";
7
+ } from "./chunk-N77EBDJJ.js";
8
8
  import {
9
9
  toSafeAgentSummary
10
10
  } from "./chunk-XJITGCTM.js";