nolo-cli 0.204.0-alpha.3 → 0.205.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{_executeModel-ZUESBV6T.js → _executeModel-Y4Y6NSF2.js} +16 -16
- package/{agentDeleteCommand-INOBZ3HP.js → agentDeleteCommand-QDQJ3HRU.js} +22 -22
- package/{agentEmailCommands-J6UTZBJC.js → agentEmailCommands-CMMDVTMB.js} +24 -24
- package/{agentListCommands-6344UIVZ.js → agentListCommands-YVUCTMRI.js} +13 -13
- package/{agentMachineCommands-TE6IRTIB.js → agentMachineCommands-AHMFIF7U.js} +10 -10
- package/{agentProviderCommands-MEFUIECN.js → agentProviderCommands-SKW4L6NN.js} +2 -2
- package/{agentRecordCommands-34MHHVFX.js → agentRecordCommands-G6RARTFX.js} +22 -22
- package/{agentRunCommand-7OMDQBRA.js → agentRunCommand-G7IJ23OW.js} +23 -23
- package/{agentRuntimeLocal-EO6WCTF2.js → agentRuntimeLocal-7Q72MXKN.js} +8 -8
- package/{agentSlice-HUFGX25R.js → agentSlice-ZRGNTU3K.js} +1 -1
- package/{appDeleteCommands-3DCLKVYC.js → appDeleteCommands-ZUKOQOIM.js} +12 -12
- package/{appDeployCommands-X3MUBDOP.js → appDeployCommands-G5YC3DKA.js} +12 -12
- package/{appDeployStatusCommands-PXC3EHHS.js → appDeployStatusCommands-EMOTU2NU.js} +12 -12
- package/{appGetCommands-ETPPE6H7.js → appGetCommands-N3D2EBDM.js} +12 -12
- package/{appListCommands-OFIDLALN.js → appListCommands-DGSGMKJL.js} +12 -12
- package/{authCommand-KPTIANH2.js → authCommand-NZC3H2EN.js} +62 -8
- package/{chromeOpsCommands-O4J346EQ.js → chromeOpsCommands-ECVS6CAO.js} +1 -1
- package/{chunk-VXZ4YYNK.js → chunk-2U2DMUGG.js} +52 -37
- package/{chunk-266E37EL.js → chunk-354R5A62.js} +3 -3
- package/{chunk-33W4IFUU.js → chunk-5MXA4LWL.js} +1 -1
- package/{chunk-E4KACSRR.js → chunk-5OV4MVQK.js} +2 -2
- package/{chunk-IK6AAUGM.js → chunk-6AMR3AE6.js} +2 -2
- package/{chunk-QUJ3IHEK.js → chunk-767YOSGT.js} +2 -2
- package/{chunk-CJ37ZMCQ.js → chunk-7C45ONOU.js} +1 -1
- package/{chunk-BC4UX4EZ.js → chunk-7COVU5SP.js} +2 -2
- package/{chunk-CQHMBWZH.js → chunk-7NMNKOW5.js} +1 -1
- package/{chunk-EPJFGQYO.js → chunk-7T5TLIY4.js} +1 -1
- package/{chunk-SEEXRWNB.js → chunk-ACMRWLRR.js} +26 -20
- package/{chunk-BER2RSTL.js → chunk-DTLSKEXN.js} +2 -2
- package/{chunk-G7RFM5QA.js → chunk-EDSRC2JN.js} +2 -2
- package/{chunk-YR4MRACW.js → chunk-F6MQO3YY.js} +3 -3
- package/{chunk-IZLXIV5L.js → chunk-HSZ2YEPR.js} +1 -1
- package/{chunk-VCFU3BO5.js → chunk-JASKVAYJ.js} +2 -2
- package/{chunk-6I7ZP7KJ.js → chunk-JBWLZ3CB.js} +2 -2
- package/{chunk-UMIQZ7PX.js → chunk-JTLREMIA.js} +3 -3
- package/{chunk-M43VXSMX.js → chunk-JX2QFYIA.js} +2 -2
- package/{chunk-HNO2SEYI.js → chunk-KJCSY4TW.js} +8 -8
- package/{chunk-4KPB3KWX.js → chunk-LTI5T3A6.js} +309 -82
- package/{chunk-3MXJWFLO.js → chunk-MFUGGMIS.js} +1 -1
- package/{chunk-MZXWSY4E.js → chunk-MNWKNN6V.js} +1 -1
- package/{chunk-H7HWWNJB.js → chunk-PJILX6KS.js} +1 -1
- package/{chunk-E4LYPSYM.js → chunk-PPCUXO3E.js} +12 -0
- package/{chunk-NGJWYWCF.js → chunk-QEHXPNCZ.js} +5 -5
- package/{chunk-SXMTSDFS.js → chunk-RMLFNM3J.js} +2 -2
- package/{chunk-JH7KMNGT.js → chunk-RQDGDKFL.js} +1 -1
- package/{chunk-YPYNRTWB.js → chunk-SH52SBSW.js} +4 -4
- package/{chunk-DQ7PCRZ6.js → chunk-T6CHEJ27.js} +4 -4
- package/{chunk-6KWPMJ5C.js → chunk-TYKUYQDP.js} +6 -6
- package/{chunk-77GDSGRM.js → chunk-UETRBTZ2.js} +29 -12
- package/{chunk-SZXJVQ7L.js → chunk-VT3MVIIU.js} +7 -7
- package/{chunk-P4YLK2OD.js → chunk-XNOILBHV.js} +1 -1
- package/{chunk-VEUSD6OF.js → chunk-YF4ZRVP3.js} +5 -1
- package/{chunk-JL3YTCPQ.js → chunk-YHT3ZONH.js} +2 -2
- package/{chunk-NTLJGRAT.js → chunk-YT65GYRP.js} +1 -1
- package/{chunk-KCYY5F2P.js → chunk-ZIEPLFWS.js} +2 -2
- package/{commandRegistry-XBZJWVTJ.js → commandRegistry-HTURFH3S.js} +59 -59
- package/{contentThunks-V5NBNTC5.js → contentThunks-DYUKG2UT.js} +3 -3
- package/{cooldownCommands-BLRMLW7Q.js → cooldownCommands-WGVSKMU4.js} +1 -1
- package/{createAgentAutomationAction-4TXJ366P.js → createAgentAutomationAction-Y4BMH7SM.js} +3 -3
- package/{createDialogAction-4SPT75DB.js → createDialogAction-RY47EJA7.js} +4 -4
- package/{createPageAction-D4GMHUPC.js → createPageAction-RLV5IWBB.js} +3 -3
- package/{dialogCommands-6RRP5KUH.js → dialogCommands-UR3JECOS.js} +12 -12
- package/{dialogSlice-IGPTWSPB.js → dialogSlice-X23NSXGM.js} +2 -2
- package/{docCreateCommands-7ODYDGRL.js → docCreateCommands-AM3RDP6K.js} +11 -11
- package/{docDeleteCommands-OEIRM3CC.js → docDeleteCommands-KCRF23RY.js} +12 -12
- package/{docReadCommands-W56GNAWP.js → docReadCommands-M4SZAVQR.js} +11 -11
- package/{docStore-HEAGW26W.js → docStore-OCOEV524.js} +1 -1
- package/{docUpdateCommands-33Q3SEG7.js → docUpdateCommands-XU6NSHXX.js} +11 -11
- package/{handleSendMessageAction-R2E7VYHQ.js → handleSendMessageAction-JYLG2PGY.js} +10 -10
- package/index.js +7 -7
- package/{localRuntimeAdapter-J5GD66XZ.js → localRuntimeAdapter-GQCC7EJL.js} +20 -20
- package/{machineCommands-AT7B4LFO.js → machineCommands-SYG2QENB.js} +21 -21
- package/{machineWsRunDispatch-CRDELH46.js → machineWsRunDispatch-HJWCU2XA.js} +21 -21
- package/package.json +1 -1
- package/{providerPresetApply-HBBUUVJD.js → providerPresetApply-EQESXT6X.js} +1 -1
- package/{providerRegistry-5LK2NXYE.js → providerRegistry-PZ56P43E.js} +1 -1
- package/{readlineWorkspace-FPHZGNZP.js → readlineWorkspace-457FDLML.js} +28 -28
- package/{runAgentClientLoop-6AAA5HNQ.js → runAgentClientLoop-O6XYZPOG.js} +14 -14
- package/{secretCommands-S2DDPIQ4.js → secretCommands-RLIO3QK5.js} +1 -1
- package/{spaceCommands-LPKHBCPU.js → spaceCommands-SVGAP4C2.js} +10 -10
- package/{streamAgentChatTurn-WNNXYOLC.js → streamAgentChatTurn-VWPG52FR.js} +18 -18
- package/{tools-QLURHFLS.js → tools-WFCFBL74.js} +9 -9
- package/{tuiSummaryLlmCaller-73QO3HAD.js → tuiSummaryLlmCaller-CEIZAKUV.js} +4 -4
- package/{updateCommands-LEJRRVBB.js → updateCommands-N7K7TEU4.js} +3 -3
- package/{updateDialogTitleAction-5UVS3ADT.js → updateDialogTitleAction-ZBQOKKO4.js} +3 -3
- package/{windowsSelfUpdate-LSSQLXVS.js → windowsSelfUpdate-SVJKL6VH.js} +2 -2
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
|
+
adoptRequiredClaudeCodeVersion,
|
|
2
3
|
anthropicRefresh,
|
|
3
4
|
cursorRefresh,
|
|
5
|
+
getClaudeCodeUserAgent,
|
|
4
6
|
refreshAntigravityOAuthToken,
|
|
5
7
|
refreshOpenAiCodexToken,
|
|
8
|
+
resolveClaudeCodeVersion,
|
|
6
9
|
resolveServerSyncConfig,
|
|
7
10
|
xaiRefresh
|
|
8
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-LTI5T3A6.js";
|
|
9
12
|
import {
|
|
10
13
|
defaultLoopbackRequest
|
|
11
14
|
} from "./chunk-VP3BINY7.js";
|
|
@@ -68,7 +71,7 @@ import {
|
|
|
68
71
|
import {
|
|
69
72
|
inlineImageUrlsForCustomProvider,
|
|
70
73
|
prepareTools
|
|
71
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-7COVU5SP.js";
|
|
72
75
|
import {
|
|
73
76
|
getServerProviderSecret
|
|
74
77
|
} from "./chunk-HS7MLR74.js";
|
|
@@ -90,7 +93,7 @@ import {
|
|
|
90
93
|
resolveCliLocalRuntimeKeyCapability,
|
|
91
94
|
resolveCliLocalSpawnDispatch,
|
|
92
95
|
resolveStartAgentRunCwd
|
|
93
|
-
} from "./chunk-
|
|
96
|
+
} from "./chunk-ACMRWLRR.js";
|
|
94
97
|
import {
|
|
95
98
|
fetchWithTransientRetry,
|
|
96
99
|
isTransientFetchError
|
|
@@ -98,7 +101,7 @@ import {
|
|
|
98
101
|
import {
|
|
99
102
|
deriveCredentialGroup,
|
|
100
103
|
deriveCustomProviderCredentialGroup
|
|
101
|
-
} from "./chunk-
|
|
104
|
+
} from "./chunk-RQDGDKFL.js";
|
|
102
105
|
import {
|
|
103
106
|
resolveAgentRequiredPackIds,
|
|
104
107
|
resolveUserEnabledSkills
|
|
@@ -111,14 +114,14 @@ import {
|
|
|
111
114
|
resolveBuiltinPlatformAgentConfig,
|
|
112
115
|
runKeyed,
|
|
113
116
|
validateAskChoiceInput
|
|
114
|
-
} from "./chunk-
|
|
117
|
+
} from "./chunk-KJCSY4TW.js";
|
|
115
118
|
import {
|
|
116
119
|
BUILTIN_DIALOG_LLM_CHAT_FALLBACK_MODEL,
|
|
117
120
|
BUILTIN_TITLE_LLM_CONFIG
|
|
118
121
|
} from "./chunk-523DITKR.js";
|
|
119
122
|
import {
|
|
120
123
|
fetchServerSyncedCredential
|
|
121
|
-
} from "./chunk-
|
|
124
|
+
} from "./chunk-F6MQO3YY.js";
|
|
122
125
|
import {
|
|
123
126
|
getDefaultCliLocalRuntimeDb
|
|
124
127
|
} from "./chunk-P64WRQYV.js";
|
|
@@ -178,7 +181,7 @@ import {
|
|
|
178
181
|
runExecShellGates,
|
|
179
182
|
validateConfiguredRootExecutionLease,
|
|
180
183
|
verifyOwnerRouteAck
|
|
181
|
-
} from "./chunk-
|
|
184
|
+
} from "./chunk-TYKUYQDP.js";
|
|
182
185
|
import {
|
|
183
186
|
accumulateGeminiChunks,
|
|
184
187
|
buildGeminiGenerateContentRequest,
|
|
@@ -190,7 +193,7 @@ import {
|
|
|
190
193
|
resolveAntigravityFinishReason,
|
|
191
194
|
resolveGeminiModelQuirks,
|
|
192
195
|
shouldUseGeminiNativeToolRoute
|
|
193
|
-
} from "./chunk-
|
|
196
|
+
} from "./chunk-JASKVAYJ.js";
|
|
194
197
|
import {
|
|
195
198
|
PlatformStreamInterruptedError,
|
|
196
199
|
buildPlatformChatCompletionRequest,
|
|
@@ -201,20 +204,20 @@ import {
|
|
|
201
204
|
readPlatformChatSseCompletion,
|
|
202
205
|
resolvePlatformChatProviderConfig,
|
|
203
206
|
shouldUsePlatformChatProvider
|
|
204
|
-
} from "./chunk-
|
|
207
|
+
} from "./chunk-7NMNKOW5.js";
|
|
205
208
|
import {
|
|
206
209
|
readSseDataValues,
|
|
207
210
|
readSseFrames
|
|
208
211
|
} from "./chunk-HNUWUO75.js";
|
|
209
212
|
import {
|
|
210
213
|
resolveAgentRuntimeConfigFromRecord
|
|
211
|
-
} from "./chunk-
|
|
214
|
+
} from "./chunk-MNWKNN6V.js";
|
|
212
215
|
import {
|
|
213
216
|
resolveHistoricalToolContentCap
|
|
214
217
|
} from "./chunk-2WZXXAQD.js";
|
|
215
218
|
import {
|
|
216
219
|
resolveToolImagePolicy
|
|
217
|
-
} from "./chunk-
|
|
220
|
+
} from "./chunk-JBWLZ3CB.js";
|
|
218
221
|
import {
|
|
219
222
|
collectStablePromptPrefix,
|
|
220
223
|
convertMessagesToResponsesInput,
|
|
@@ -300,7 +303,7 @@ import {
|
|
|
300
303
|
} from "./chunk-LOEO7LRC.js";
|
|
301
304
|
import {
|
|
302
305
|
isAntigravityOAuthAgent
|
|
303
|
-
} from "./chunk-
|
|
306
|
+
} from "./chunk-YF4ZRVP3.js";
|
|
304
307
|
import {
|
|
305
308
|
ackRunRecord,
|
|
306
309
|
appendRunQueue,
|
|
@@ -384,7 +387,7 @@ import {
|
|
|
384
387
|
import {
|
|
385
388
|
agentRunCardLabels,
|
|
386
389
|
t
|
|
387
|
-
} from "./chunk-
|
|
390
|
+
} from "./chunk-PPCUXO3E.js";
|
|
388
391
|
import {
|
|
389
392
|
createTokenDialogIndexKey,
|
|
390
393
|
createTokenKey,
|
|
@@ -594,20 +597,12 @@ async function aggregateAnthropicMessageStream(body, onMeaningfulOutput, onTextD
|
|
|
594
597
|
var ANTHROPIC_MESSAGES_URL = "https://api.anthropic.com/v1/messages";
|
|
595
598
|
var ANTHROPIC_API_VERSION = "2023-06-01";
|
|
596
599
|
var ANTHROPIC_OAUTH_BETA = "oauth-2025-04-20";
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
if (!rawEnv) return DEFAULT_VERSION;
|
|
600
|
-
const trimmed = rawEnv.trim();
|
|
601
|
-
if (/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(trimmed)) {
|
|
602
|
-
return trimmed;
|
|
603
|
-
}
|
|
604
|
-
return DEFAULT_VERSION;
|
|
605
|
-
}
|
|
606
|
-
var CLAUDE_CODE_VERSION = resolveClaudeCodeVersion(
|
|
607
|
-
process.env.NOLO_CLAUDE_CODE_VERSION || process.env.CLAUDE_CODE_VERSION
|
|
608
|
-
);
|
|
609
|
-
var CLAUDE_CODE_USER_AGENT = `claude-cli/${CLAUDE_CODE_VERSION} (external, local-agent, agent-sdk/0.1.0)`;
|
|
600
|
+
var CLAUDE_CODE_VERSION = resolveClaudeCodeVersion();
|
|
601
|
+
var CLAUDE_CODE_USER_AGENT = getClaudeCodeUserAgent();
|
|
610
602
|
var ANTHROPIC_OAUTH_BETA_HEADER = `claude-code-20250219,${ANTHROPIC_OAUTH_BETA}`;
|
|
603
|
+
function buildAnthropicBetaHeader({ agentRequest }) {
|
|
604
|
+
return (agentRequest ? ["claude-code-20250219", ANTHROPIC_OAUTH_BETA] : [ANTHROPIC_OAUTH_BETA]).join(",");
|
|
605
|
+
}
|
|
611
606
|
var CLAUDE_CODE_SYSTEM_INSTRUCTION = "You are a Claude agent, built on Anthropic's Claude Agent SDK.";
|
|
612
607
|
var CLAUDE_CODE_IDENTITY_PATTERNS = [
|
|
613
608
|
CLAUDE_CODE_SYSTEM_INSTRUCTION,
|
|
@@ -1031,21 +1026,38 @@ async function fetchAnthropicMessagesCompletion(args) {
|
|
|
1031
1026
|
const upstreamStream = args.upstreamStream ?? resolveAnthropicUpstreamStream(process.env.NOLO_ANTHROPIC_STREAM);
|
|
1032
1027
|
const requestBody = buildAnthropicMessagesBody(args);
|
|
1033
1028
|
if (upstreamStream) requestBody.stream = true;
|
|
1034
|
-
const
|
|
1029
|
+
const isAgentRequest = Array.isArray(requestBody.tools) && requestBody.tools.length > 0;
|
|
1030
|
+
const buildHeaders = () => ({
|
|
1031
|
+
Authorization: `Bearer ${args.accessToken}`,
|
|
1032
|
+
"Content-Type": "application/json",
|
|
1033
|
+
Accept: upstreamStream ? "text/event-stream" : "application/json",
|
|
1034
|
+
"anthropic-version": ANTHROPIC_API_VERSION,
|
|
1035
|
+
"anthropic-beta": buildAnthropicBetaHeader({ agentRequest: isAgentRequest }),
|
|
1036
|
+
"User-Agent": getClaudeCodeUserAgent(),
|
|
1037
|
+
"x-app": "cli"
|
|
1038
|
+
});
|
|
1039
|
+
let response = await (args.fetchImpl ?? fetch)(ANTHROPIC_MESSAGES_URL, {
|
|
1035
1040
|
method: "POST",
|
|
1036
|
-
headers:
|
|
1037
|
-
Authorization: `Bearer ${args.accessToken}`,
|
|
1038
|
-
"Content-Type": "application/json",
|
|
1039
|
-
Accept: upstreamStream ? "text/event-stream" : "application/json",
|
|
1040
|
-
"anthropic-version": ANTHROPIC_API_VERSION,
|
|
1041
|
-
"anthropic-beta": ANTHROPIC_OAUTH_BETA_HEADER,
|
|
1042
|
-
"User-Agent": CLAUDE_CODE_USER_AGENT,
|
|
1043
|
-
"x-app": "cli"
|
|
1044
|
-
},
|
|
1041
|
+
headers: buildHeaders(),
|
|
1045
1042
|
body: JSON.stringify(requestBody),
|
|
1046
1043
|
signal: args.signal
|
|
1047
1044
|
});
|
|
1048
1045
|
let payload;
|
|
1046
|
+
if (response.status === 400) {
|
|
1047
|
+
const errorBody = await response.json().catch(async () => ({
|
|
1048
|
+
error: { message: await response.text().catch(() => response.statusText) }
|
|
1049
|
+
}));
|
|
1050
|
+
if (adoptRequiredClaudeCodeVersion(errorBody)) {
|
|
1051
|
+
response = await (args.fetchImpl ?? fetch)(ANTHROPIC_MESSAGES_URL, {
|
|
1052
|
+
method: "POST",
|
|
1053
|
+
headers: buildHeaders(),
|
|
1054
|
+
body: JSON.stringify(requestBody),
|
|
1055
|
+
signal: args.signal
|
|
1056
|
+
});
|
|
1057
|
+
} else {
|
|
1058
|
+
return { status: response.status, body: errorBody, headers: response.headers };
|
|
1059
|
+
}
|
|
1060
|
+
}
|
|
1049
1061
|
if (upstreamStream && response.ok) {
|
|
1050
1062
|
if (!response.body) {
|
|
1051
1063
|
return {
|
|
@@ -2971,11 +2983,14 @@ function buildOpenAiResponsesCustomNativeProvider(p) {
|
|
|
2971
2983
|
model,
|
|
2972
2984
|
complete: async (messages, options) => {
|
|
2973
2985
|
const responsesTools = toResponsesTools(tools);
|
|
2986
|
+
const maxOutputTokens = typeof options?.max_tokens === "number" ? options.max_tokens : typeof agentConfig.max_tokens === "number" ? agentConfig.max_tokens : void 0;
|
|
2987
|
+
const reasoningEffort = options?.reasoning_effort ?? agentConfig.reasoning_effort;
|
|
2974
2988
|
const body = {
|
|
2975
2989
|
model,
|
|
2976
2990
|
input: convertMessagesToResponsesInput(messages),
|
|
2977
2991
|
stream: true,
|
|
2978
|
-
...
|
|
2992
|
+
...maxOutputTokens !== void 0 ? { max_output_tokens: maxOutputTokens } : {},
|
|
2993
|
+
...reasoningEffort ? { reasoning: { effort: reasoningEffort } } : {},
|
|
2979
2994
|
...responsesTools?.length ? { tools: responsesTools, tool_choice: "auto" } : {}
|
|
2980
2995
|
};
|
|
2981
2996
|
log("provider.request.start", {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
listUserRecordsFromServers,
|
|
3
3
|
readLiveDbRecordAfterTombstoneMerge
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-PJILX6KS.js";
|
|
5
5
|
import {
|
|
6
6
|
agentRecordHasConfiguredCredential
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-7C45ONOU.js";
|
|
8
8
|
import {
|
|
9
9
|
deriveCredentialGroup
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-RQDGDKFL.js";
|
|
11
11
|
import {
|
|
12
12
|
isTombstoneRecord
|
|
13
13
|
} from "./chunk-D2MDMY2M.js";
|
|
@@ -15,10 +15,10 @@ import {
|
|
|
15
15
|
} from "./chunk-Y6ROFCZO.js";
|
|
16
16
|
import {
|
|
17
17
|
scheduleWindowsSelfUpdate
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-7T5TLIY4.js";
|
|
19
19
|
import {
|
|
20
20
|
t
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-PPCUXO3E.js";
|
|
22
22
|
|
|
23
23
|
// packages/cli/updateCommands.ts
|
|
24
24
|
import { existsSync, readFileSync, accessSync, constants } from "node:fs";
|
|
@@ -412,13 +412,13 @@ var TOOL_USE_GUIDANCE = `--- \u5DE5\u5177\u4F7F\u7528\u7EAA\u5F8B ---
|
|
|
412
412
|
- \u8F93\u51FA\u536B\u751F\uFF1A\u4E0D\u8981\u4E60\u60EF\u6027\u7528 2>&1 \u5408\u5E76\u9519\u8BEF\u6D41\uFF1B\u67E5\u8BE2\u7C7B\u547D\u4EE4\u4E3B\u52A8 2>/dev/null \u964D\u566A\uFF1B\u590D\u5408\u547D\u4EE4\u5BF9\u5173\u952E\u6B65\u9AA4\u5355\u72EC\u63A5\u9000\u51FA\u7801\uFF08echo rc=$?\uFF09\uFF1B\u6BCF\u6761\u547D\u4EE4\u5148\u626B\u8F93\u51FA\u4E2D\u7684\u9519\u8BEF\u5B57\u6837\uFF0C\u518D\u770B exitCode\uFF08exit 0 \u4E5F\u53EF\u80FD\u5E26\u9519\uFF09\u3002
|
|
413
413
|
- \u4E00\u6B21\u6027\u63A2\u9488/\u76D1\u63A7\u811A\u672C\u6309\u201C\u73AF\u5883\u4F1A\u53D8\u201D\u6765\u5199\uFF1A\u8BBE\u5907/\u8FDB\u7A0B\u53EF\u80FD\u4E2D\u9014\u6D88\u5931\uFF0C\u8BFB\u53D6\u5FAA\u73AF\u8981\u6709\u5F02\u5E38\u515C\u5E95\uFF0C\u907F\u514D\u672A\u6355\u83B7\u5F02\u5E38\u76F4\u63A5\u5D29\u6E83\u3002
|
|
414
414
|
- \u8C03\u7528\u5931\u8D25\u4E14\u539F\u56E0\u4E0D\u660E\u65F6\uFF0C\u5148\u68C0\u67E5\u526F\u4F5C\u7528\u4E0E\u72B6\u6001\u53D8\u5316\uFF0C\u518D\u51B3\u5B9A\u91CD\u8BD5\u6216\u56DE\u9000\u3002
|
|
415
|
-
- **\u7B49\u5F85\u5916\u90E8\u7CFB\u7EDF\u5230\u8FBE\u7EC8\u6001**\uFF08\u90E8\u7F72\u3001CI\u3001\u670D\u52A1\u5C31\u7EEA\u3001HTTP \u6761\u4EF6\uFF09\u65F6\uFF0C\u4E0D\u8981\u300C\u67E5\u4E00\u6B21 \u2192 \u7ED3\u675F\u56DE\u5408 \u2192 \u7B49\u7528\u6237\u8FFD\u95EE\u300D\uFF1A\u90A3\u4F1A\u8BA9\u4E8B\u60C5\u7684\u63A8\u8FDB\u6743\u843D\u5728\u7528\u6237\u8EAB\u4E0A\u3002\u5224\u636E\u662F\u300C\u7B49\u5F85\u5BF9\u8C61\u6709\u6CA1\u6709\u300E\u5B8C\u6210\u300F\u8FD9\u4EF6\u4E8B\u300D\uFF1A\u6709\u5C31\u7528 **execShell(background: true)** \u5305\u6210**\u81EA\u5E26\u8D85\u65F6\u9000\u51FA\u7684\u6709\u9650\u8F6E\u8BE2\u4EFB\u52A1**\uFF08\u63A2\u6D4B\u5230\u6EE1\u8DB3/\u5931\u8D25/\u8D85\u65F6\u5373 exit\uFF09\uFF0C\u9000\u51FA\u65F6\u7531\u5BBF\u4E3B\u81EA\u52A8\u5524\u9192\u5BF9\u8BDD\uFF1B**\u4E25\u7981\u7528 & \u6216 nohup \u540E\u53F0\u5316\u2014\u2014\u5E73\u53F0\u4E0D\u8FFD\u8E2A\u3001\u4E0D\u4F1A\u5524\u9192\uFF0C\u7B49\u4E8E\u6CA1\u7B49**\u3002\u6CA1\u6709\u7EC8\u6001\u624D\u662F\u771F\u9700\u8981\u4EBA\u6765\u51B3\u5B9A\u3002\u6CE8\u610F\u533A\u5206\uFF1A\u7B49 **agent run** \u7528 terminal wake\uFF08\u89C1\u300C\u591A Agent \u7F16\u6392\u300D\u6BB5\uFF0C\u90A3\u7C7B\u7981\u6B62\u8F6E\u8BE2\uFF09\uFF0C\u7B49**\u5916\u90E8\u7CFB\u7EDF**\u624D\u7528\u8FD9\u91CC\u7684\u5E26\u9000\u51FA\u6761\u4EF6\u7684\u540E\u53F0\u8F6E\u8BE2\uFF0C\u4E24\u8005\u4E0D\u8981\u6DF7\u3002`;
|
|
415
|
+
- **\u7B49\u5F85\u5916\u90E8\u7CFB\u7EDF\u5230\u8FBE\u7EC8\u6001**\uFF08\u90E8\u7F72\u3001CI\u3001\u670D\u52A1\u5C31\u7EEA\u3001HTTP \u6761\u4EF6\uFF09\u65F6\uFF0C\u4E0D\u8981\u300C\u67E5\u4E00\u6B21 \u2192 \u7ED3\u675F\u56DE\u5408 \u2192 \u7B49\u7528\u6237\u8FFD\u95EE\u300D\uFF1A\u90A3\u4F1A\u8BA9\u4E8B\u60C5\u7684\u63A8\u8FDB\u6743\u843D\u5728\u7528\u6237\u8EAB\u4E0A\u3002\u5224\u636E\u662F\u300C\u7B49\u5F85\u5BF9\u8C61\u6709\u6CA1\u6709\u300E\u5B8C\u6210\u300F\u8FD9\u4EF6\u4E8B\u300D\uFF1A\u6709\u5C31\u7528 **execShell(background: true)** \u5305\u6210**\u81EA\u5E26\u8D85\u65F6\u9000\u51FA\u7684\u6709\u9650\u8F6E\u8BE2\u4EFB\u52A1**\uFF08\u63A2\u6D4B\u5230\u6EE1\u8DB3/\u5931\u8D25/\u8D85\u65F6\u5373 exit\uFF09\uFF0C\u9000\u51FA\u65F6\u7531\u5BBF\u4E3B\u81EA\u52A8\u5524\u9192\u5BF9\u8BDD\uFF1B**\u4E25\u7981\u7528 & \u6216 nohup \u540E\u53F0\u5316\u2014\u2014\u5E73\u53F0\u4E0D\u8FFD\u8E2A\u3001\u4E0D\u4F1A\u5524\u9192\uFF0C\u7B49\u4E8E\u6CA1\u7B49**\u3002**\u4E25\u7981\u4F7F\u7528\u5355\u7EAF\u7684 \`sleep N\` \u6216 \`sleep N; echo ...\` \u5047\u88C5\u7B49\u5F85\u4EFB\u52A1**\uFF1A\u5B64\u7ACB sleep \u4E0D\u505A\u4EFB\u4F55\u72B6\u6001\u63A2\u6D4B\uFF0C\u4E14\u8D85\u8FC7 5 \u79D2\u5C31\u4F1A\u88AB\u7ACB\u5373 detach\uFF0C\u9020\u6210\u65E0\u610F\u4E49\u7684\u5B8C\u6210\u5524\u9192\u566A\u97F3\uFF1B\u8F6E\u8BE2\u4EFB\u52A1\u5FC5\u987B\u5305\u542B\u771F\u5B9E\u63A2\u9488\uFF08\u5982 \`while ! probe; do sleep 5; done\` \u6216\u8C03\u7528\u73B0\u6709 wait \u811A\u672C\uFF09\u3002\u6CA1\u6709\u7EC8\u6001\u624D\u662F\u771F\u9700\u8981\u4EBA\u6765\u51B3\u5B9A\u3002\u6CE8\u610F\u533A\u5206\uFF1A\u7B49 **agent run** \u7528 terminal wake\uFF08\u89C1\u300C\u591A Agent \u7F16\u6392\u300D\u6BB5\uFF0C\u90A3\u7C7B\u7981\u6B62\u8F6E\u8BE2\uFF09\uFF0C\u7B49**\u5916\u90E8\u7CFB\u7EDF**\u624D\u7528\u8FD9\u91CC\u7684\u5E26\u9000\u51FA\u6761\u4EF6\u7684\u540E\u53F0\u8F6E\u8BE2\uFF0C\u4E24\u8005\u4E0D\u8981\u6DF7\u3002`;
|
|
416
416
|
|
|
417
417
|
// packages/ai/agent/toolGuidedSections.ts
|
|
418
418
|
var AGENT_ORCHESTRATION_RUN_INSTRUCTIONS = `--- \u591A Agent \u7F16\u6392\uFF08\u540E\u53F0 Run\uFF09 ---
|
|
419
419
|
\u7528 startAgentRun \u542F\u52A8\u5B50 Agent\uFF08\u5F02\u6B65 fork+exec \u8FD4\u56DE runId\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
|
|
420
420
|
|
|
421
|
-
1. \u76EF\u68A2\uFF1A**\u5F02\u6B65\u6D3E\u53D1\u540E\u5148\u63A8\u8FDB\u72EC\u7ACB\u5DF2\u6388\u6743\u5DE5\u4F5C\uFF0C\u53EA\u6709\u65E0\u53EF\u63A8\u8FDB\u5DE5\u4F5C\u624D\u7ED3\u675F\u7B49\u5F85\u7EC8\u6001\u3002** \u5BF9\u7528\u6237\u627F\u8BFA\u300C\u4F1A\u901A\u77E5\u4F60\u300D\u4E4B\u524D\uFF0C\u5FC5\u987B\u5148\u786E\u8BA4\u8FD9\u4E2A\u7B49\u5F85\u4EFB\u52A1\u5728**\u5931\u8D25**\u65F6\u4E5F\u4F1A\u4EE5\u7EC8\u6001\u5524\u9192\uFF08tracked background\u3001\u6709\u754C\u8D85\u65F6\u3001\u5931\u8D25\u5373\u9000\u51FA\uFF09\uFF0C\u4E0D\u80FD\u53EA\u5728\u6210\u529F\u8DEF\u5F84\u4E0A\u6709\u901A\u77E5\uFF1B\u53D1\u5E03\u7B49\u5F85\u53EA\u80FD\u4F7F\u7528 \`scripts/ci/pushAndAwaitLive.ts\`\uFF0C\u7981\u6B62\u624B\u5199\u300Cpush + \u8F6E\u8BE2\u300D\u7684\u547D\u4EE4\u94FE\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 \u65E0\u5176\u4ED6\u53EF\u63A8\u8FDB\u5DE5\u4F5C\u65F6\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 \u65E0\u5176\u4ED6\u53EF\u63A8\u8FDB\u5DE5\u4F5C\u65F6\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\u4EE5 \`sleep N\` \u5F00\u5934\u4E14 N>5s \u7684\u547D\u4EE4\u4F1A\u88AB**\u7ACB\u5373 detach**\uFF08\`IMMEDIATE_DETACH_SLEEP_THRESHOLD_SECONDS\`\uFF0C\u4E0E execShell \u5DE5\u5177\u63CF\u8FF0\u540C\u6E90\u3001\u7531\u4E00\u81F4\u6027\u6D4B\u8BD5\u9501\u5B9A\uFF09\uFF1B\u5176\u4F59\u547D\u4EE4\u5219\u8D85\u8FC7 \`NOLO_EXEC_SHELL_DETACH_MS\`\uFF08\u9ED8\u8BA4 120s\uFF09\u624D detach\u3002\u4E24\u6761\u8DEF\u5F84\u90FD\u4F1A\u8BA9\u6BCF\u4E2A\u5B8C\u6210\u4EA7\u751F\u4E00\u6761\u901A\u77E5\uFF0C\u5F62\u6210\u566A\u97F3\u4E14\u5B8C\u5168\u65E0\u6548\u3002
|
|
421
|
+
1. \u76EF\u68A2\uFF1A**\u5F02\u6B65\u6D3E\u53D1\u540E\u5148\u63A8\u8FDB\u72EC\u7ACB\u5DF2\u6388\u6743\u5DE5\u4F5C\uFF0C\u53EA\u6709\u65E0\u53EF\u63A8\u8FDB\u5DE5\u4F5C\u624D\u7ED3\u675F\u7B49\u5F85\u7EC8\u6001\u3002** \u5BF9\u7528\u6237\u627F\u8BFA\u300C\u4F1A\u901A\u77E5\u4F60\u300D\u4E4B\u524D\uFF0C\u5FC5\u987B\u5148\u786E\u8BA4\u8FD9\u4E2A\u7B49\u5F85\u4EFB\u52A1\u5728**\u5931\u8D25**\u65F6\u4E5F\u4F1A\u4EE5\u7EC8\u6001\u5524\u9192\uFF08tracked background\u3001\u6709\u754C\u8D85\u65F6\u3001\u5931\u8D25\u5373\u9000\u51FA\uFF09\uFF0C\u4E0D\u80FD\u53EA\u5728\u6210\u529F\u8DEF\u5F84\u4E0A\u6709\u901A\u77E5\uFF1B\u53D1\u5E03\u7B49\u5F85\u53EA\u80FD\u4F7F\u7528 \`scripts/ci/pushAndAwaitLive.ts\`\uFF0C\u7981\u6B62\u624B\u5199\u300Cpush + \u8F6E\u8BE2\u300D\u7684\u547D\u4EE4\u94FE\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 \u65E0\u5176\u4ED6\u53EF\u63A8\u8FDB\u5DE5\u4F5C\u65F6\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 \u65E0\u5176\u4ED6\u53EF\u63A8\u8FDB\u5DE5\u4F5C\u65F6\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\u4EFB\u4F55\u4E8B\u7269\uFF08\u65E0\u8BBA agent run\u3001\u540E\u53F0\u8FDB\u7A0B\u3001git hook \u8FD8\u662F\u5916\u90E8\u670D\u52A1\uFF09\u7684\u6B63\u786E\u65B9\u5F0F**\uFF1A\u4EE5 \`sleep N\` \u5F00\u5934\u4E14 N>5s \u7684\u547D\u4EE4\u4F1A\u88AB**\u7ACB\u5373 detach**\uFF08\`IMMEDIATE_DETACH_SLEEP_THRESHOLD_SECONDS\`\uFF0C\u4E0E execShell \u5DE5\u5177\u63CF\u8FF0\u540C\u6E90\u3001\u7531\u4E00\u81F4\u6027\u6D4B\u8BD5\u9501\u5B9A\uFF09\uFF1B\u5176\u4F59\u547D\u4EE4\u5219\u8D85\u8FC7 \`NOLO_EXEC_SHELL_DETACH_MS\`\uFF08\u9ED8\u8BA4 120s\uFF09\u624D detach\u3002\u4E24\u6761\u8DEF\u5F84\u90FD\u4F1A\u8BA9\u6BCF\u4E2A\u5B8C\u6210\u4EA7\u751F\u4E00\u6761\u901A\u77E5\uFF0C\u5F62\u6210\u566A\u97F3\u4E14\u5B8C\u5168\u65E0\u6548\u3002\u7B49\u5F85\u5916\u90E8\u7CFB\u7EDF\u8BF7\u4F7F\u7528\u6709\u5177\u4F53\u63A2\u6D4B\u9000\u51FA\u7684\u6709\u9650\u8F6E\u8BE2\u4EFB\u52A1\u6216\u4E13\u7528 wait \u811A\u672C\u3002
|
|
422
422
|
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\u6D3E\u53D1\u7EAA\u5F8B\uFF08\u9ED8\u8BA4\u5E76\u884C / \u53EA\u6709\u771F\u5B9E\u4F9D\u8D56\u624D\u4E32\u884C / \u7981\u6B62\u7684\u4E32\u884C\u501F\u53E3\uFF09\u7531\u7CFB\u7EDF\u5C42\u56FA\u5B9A\u5757\u300C\u5E76\u884C\u662F\u9ED8\u8BA4 \xB7 \u6D3E\u53D1\u7EAA\u5F8B\u300D\uFF08agent-runtime/parallelDispatchDefault.ts\uFF0C\u56DB\u6761\u88C5\u914D\u7EBF\u65E0\u6761\u4EF6\u6CE8\u5165\uFF09\u627F\u8F7D\u2014\u2014\u672C\u6BB5\u4E0D\u91CD\u590D\uFF0C\u907F\u514D\u4E24\u5904\u771F\u503C\u3002
|
|
423
423
|
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**orphaned \u6216\u8FDB\u7A0B\u7ACB\u5373\u9000\u51FA\uFF080 tool calls\uFF09\u65F6\uFF0C\u7B2C\u4E00\u6B65\u5FC5\u987B\u770B logTail \u7684 stderr**\uFF0C\u5148\u6392\u9664\u8BED\u6CD5\u9519\u8BEF\u3001\u4F9D\u8D56\u7F3A\u5931\u4E0E\u6784\u5EFA\u5D29\u6E83\u2014\u2014CLI \u542F\u52A8\u5931\u8D25\u65F6\u8BF7\u6C42\u6839\u672C\u672A\u53D1\u51FA\uFF0C\u8868\u73B0\u6613\u88AB\u8BEF\u5224\u4E3A\u901A\u9053\u6545\u969C\uFF0C\u76F2\u76EE\u91CD\u6D3E\u65E0\u6CD5\u89E3\u51B3\u3002
|
|
424
424
|
4. \u4EC5 status=failed\u3001\u8D85\u65F6\u6216 progress \u957F\u671F\u65E0\u52A8\u9759\uFF08\u7591\u4F3C\u5361\u6B7B\uFF09\u624D\u62C9 tailLines:30 \u770B\u65E5\u5FD7\u3002**\u7EC8\u6001 run \u7ED3\u8BBA\u5FC5\u8BFB status \u91CC\u7684 resultFile\uFF08readFile \u539F\u6587\uFF09\uFF0C\u7981\u6B62\u7528\u5E26 ANSI \u7684 .log \u6216 2000 \u5B57 lastAssistantText \u6458\u8981\u4EE3\u66FF**\uFF1B\u4E2D\u65AD run \u6B63\u6587\u53EF\u80FD\u7559 dialog/.log\uFF0C\u4F46 resultFile \u7F3A\u5931\u6309\u300C\u65E0\u7ED3\u8BBA\u300D\u5904\u7406\u4E14\u4E0D\u5C5E\u5DE5\u5177\u6545\u969C\uFF0C\u4E0D\u64C5\u65AD\u7528\u6237\u4E2D\u65AD\uFF0C\u4EA6\u4E0D\u8981\u56DE\u5934\u5543\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/\u8FD0\u884C\u4E2D/\u5DF2\u7EC8\u6001\u7531\u63A7\u5236\u5E73\u9762\u5904\u7406\uFF08\u5DF2\u7EC8\u6001\u539F\u6837\u8FD4\u56DE\u3001\u4E0D\u8986\u76D6\uFF09\u3002
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
listUserRecordsFromServers,
|
|
8
8
|
readDbRecordFromServers,
|
|
9
9
|
readLiveDbRecordAfterTombstoneMerge
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-PJILX6KS.js";
|
|
11
11
|
import {
|
|
12
12
|
parsePositiveFiniteNumberOrFallback
|
|
13
13
|
} from "./chunk-Y5GCAMGP.js";
|
|
@@ -69,7 +69,7 @@ import {
|
|
|
69
69
|
} from "./chunk-4SN6J65J.js";
|
|
70
70
|
import {
|
|
71
71
|
t
|
|
72
|
-
} from "./chunk-
|
|
72
|
+
} from "./chunk-PPCUXO3E.js";
|
|
73
73
|
import {
|
|
74
74
|
asNonEmptyStringArray,
|
|
75
75
|
asTrimmedNonEmptyStringArray
|
|
@@ -558,7 +558,7 @@ async function buildCreatedAgentRecord(args) {
|
|
|
558
558
|
const resolvedAgentInput = resolveCliAgentKeyInput(args.parsed.agentInput);
|
|
559
559
|
const agentKey = resolvedAgentInput.startsWith("agent-") ? resolvedAgentInput : createAgentKey.private(userId || "local", resolvedAgentInput);
|
|
560
560
|
if (args.parsed.presetId) {
|
|
561
|
-
const { resolveProviderPresetFields } = await import("./providerPresetApply-
|
|
561
|
+
const { resolveProviderPresetFields } = await import("./providerPresetApply-EQESXT6X.js");
|
|
562
562
|
const fields = resolveProviderPresetFields(args.parsed.presetId);
|
|
563
563
|
if (fields.kind === "manual") {
|
|
564
564
|
throw new Error(
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
resolveDiscoveryScope,
|
|
7
7
|
resolvePaginationArgs,
|
|
8
8
|
toDiscoverySafeAgentSummary
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-RQDGDKFL.js";
|
|
10
10
|
import {
|
|
11
11
|
getUserDataItemTimestamp,
|
|
12
12
|
mergeAndDedupUserData
|
|
@@ -38,7 +38,7 @@ import {
|
|
|
38
38
|
toolRunUpdated,
|
|
39
39
|
uiCardFallback,
|
|
40
40
|
waitForAbortableDelay
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-ZIEPLFWS.js";
|
|
42
42
|
import {
|
|
43
43
|
isGatewayHttpStatus
|
|
44
44
|
} from "./chunk-NF64D32W.js";
|
|
@@ -55,7 +55,7 @@ import {
|
|
|
55
55
|
} from "./chunk-I5PBXF7O.js";
|
|
56
56
|
import {
|
|
57
57
|
createDocState
|
|
58
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-JX2QFYIA.js";
|
|
59
59
|
import {
|
|
60
60
|
ToolApiError,
|
|
61
61
|
buildToolRequestHeaders,
|
|
@@ -79,7 +79,7 @@ import {
|
|
|
79
79
|
} from "./chunk-63W5N6P3.js";
|
|
80
80
|
import {
|
|
81
81
|
createDialogAction
|
|
82
|
-
} from "./chunk-
|
|
82
|
+
} from "./chunk-EDSRC2JN.js";
|
|
83
83
|
import {
|
|
84
84
|
DEFAULT_COLLAPSED_CATEGORIES,
|
|
85
85
|
addContentToSpace,
|
|
@@ -96,7 +96,7 @@ import {
|
|
|
96
96
|
updateContentCategory,
|
|
97
97
|
updateContentTitle,
|
|
98
98
|
writeStoredCollapsedCategories
|
|
99
|
-
} from "./chunk-
|
|
99
|
+
} from "./chunk-HSZ2YEPR.js";
|
|
100
100
|
import {
|
|
101
101
|
getCurrentSpaceId,
|
|
102
102
|
getCurrentSpaceIdRaw,
|
|
@@ -119,14 +119,14 @@ import {
|
|
|
119
119
|
selectMsgById,
|
|
120
120
|
uiAskChoiceFunc,
|
|
121
121
|
uiAskChoiceFunctionSchema
|
|
122
|
-
} from "./chunk-
|
|
122
|
+
} from "./chunk-KJCSY4TW.js";
|
|
123
123
|
import {
|
|
124
124
|
createAgent,
|
|
125
125
|
deleteServerSyncedCredential,
|
|
126
126
|
runLlm,
|
|
127
127
|
streamAgentChatTurn,
|
|
128
128
|
updateAgent
|
|
129
|
-
} from "./chunk-
|
|
129
|
+
} from "./chunk-F6MQO3YY.js";
|
|
130
130
|
import {
|
|
131
131
|
buildMediaToolConfirmation,
|
|
132
132
|
normalizeMediaConfirmExecutionRevision
|
|
@@ -3507,6 +3507,22 @@ function resolveConfirmedDialogDeletionTargets(preview, confirmedDialogIds) {
|
|
|
3507
3507
|
return { targets, missingConfirmedDialogIds };
|
|
3508
3508
|
}
|
|
3509
3509
|
|
|
3510
|
+
// packages/ai/tools/workspaceCooldownHelper.ts
|
|
3511
|
+
async function loadWorkspaceCredentialCooldowns(env = process.env, now = Date.now()) {
|
|
3512
|
+
let localCooldowns = {};
|
|
3513
|
+
let resolveCooldownFn;
|
|
3514
|
+
try {
|
|
3515
|
+
const credModulePath = "../../agent-runtime/credentialAvailability";
|
|
3516
|
+
const credMod = await import(credModulePath);
|
|
3517
|
+
if (credMod?.readCredentialAvailability && credMod?.resolveEffectiveCredentialCooldown) {
|
|
3518
|
+
localCooldowns = await credMod.readCredentialAvailability(env, now).catch(() => ({}));
|
|
3519
|
+
resolveCooldownFn = credMod.resolveEffectiveCredentialCooldown;
|
|
3520
|
+
}
|
|
3521
|
+
} catch {
|
|
3522
|
+
}
|
|
3523
|
+
return { localCooldowns, resolveCooldownFn };
|
|
3524
|
+
}
|
|
3525
|
+
|
|
3510
3526
|
// packages/ai/tools/noloWorkspaceReadTools.ts
|
|
3511
3527
|
var jsonPreview = (value, maxLength = 1800) => {
|
|
3512
3528
|
const text = JSON.stringify(value, null, 2);
|
|
@@ -3882,7 +3898,7 @@ async function deleteDialogsFunc(args, thunkApi) {
|
|
|
3882
3898
|
const deletedDialogIds = [];
|
|
3883
3899
|
const deletedDialogKeys = [];
|
|
3884
3900
|
const failures = [];
|
|
3885
|
-
const { deleteDialog: deleteDialog2 } = await import("./dialogSlice-
|
|
3901
|
+
const { deleteDialog: deleteDialog2 } = await import("./dialogSlice-X23NSXGM.js");
|
|
3886
3902
|
for (const target of targets) {
|
|
3887
3903
|
try {
|
|
3888
3904
|
await thunkApi.dispatch(deleteDialog2(target.dbKey)).unwrap();
|
|
@@ -4024,17 +4040,7 @@ async function listAgentsFunc(args, thunkApi) {
|
|
|
4024
4040
|
const userId = runtime?.currentUserId ?? void 0;
|
|
4025
4041
|
const now = typeof args?.now === "number" ? args.now : Date.now();
|
|
4026
4042
|
const env = args?.env ?? process.env;
|
|
4027
|
-
|
|
4028
|
-
let resolveCooldownFn;
|
|
4029
|
-
try {
|
|
4030
|
-
const credModulePath = "../../agent-runtime/credentialAvailability";
|
|
4031
|
-
const credMod = await import(credModulePath);
|
|
4032
|
-
if (credMod?.readCredentialAvailability && credMod?.resolveEffectiveCredentialCooldown) {
|
|
4033
|
-
localCooldowns = await credMod.readCredentialAvailability(env, now).catch(() => ({}));
|
|
4034
|
-
resolveCooldownFn = credMod.resolveEffectiveCredentialCooldown;
|
|
4035
|
-
}
|
|
4036
|
-
} catch {
|
|
4037
|
-
}
|
|
4043
|
+
const { localCooldowns, resolveCooldownFn } = await loadWorkspaceCredentialCooldowns(env, now);
|
|
4038
4044
|
const allRecords = [...Array.from(recordsMap.values()), ...publicRecords];
|
|
4039
4045
|
const agents = allRecords.map((record) => {
|
|
4040
4046
|
const summary = toDiscoverySafeAgentSummary(record, {
|
|
@@ -18693,7 +18699,7 @@ async function updateDocFunc(args, thunkApi) {
|
|
|
18693
18699
|
updated_at: (/* @__PURE__ */ new Date()).toISOString()
|
|
18694
18700
|
};
|
|
18695
18701
|
await dispatch(write({ data: updatedPageData, customKey: id })).unwrap();
|
|
18696
|
-
const { getDocState, applyExternalDocUpdate } = await import("./docStore-
|
|
18702
|
+
const { getDocState, applyExternalDocUpdate } = await import("./docStore-OCOEV524.js");
|
|
18697
18703
|
if (getDocState().pageKey === id) {
|
|
18698
18704
|
applyExternalDocUpdate({
|
|
18699
18705
|
slateData: finalSlateData,
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
clipMultilineText,
|
|
3
3
|
fetchAndSerializeTable,
|
|
4
4
|
waitForAbortableDelay
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-ZIEPLFWS.js";
|
|
6
6
|
import {
|
|
7
7
|
isGatewayHttpStatus
|
|
8
8
|
} from "./chunk-NF64D32W.js";
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
} from "./chunk-AGIM7IMJ.js";
|
|
22
22
|
import {
|
|
23
23
|
fetchAndCacheMessages
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-KJCSY4TW.js";
|
|
25
25
|
import {
|
|
26
26
|
createSpaceKey
|
|
27
27
|
} from "./chunk-UAD2WT54.js";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
addContentToSpace
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-HSZ2YEPR.js";
|
|
4
4
|
import {
|
|
5
5
|
format,
|
|
6
6
|
prepareAndPersistMessage,
|
|
7
7
|
uiAskChoiceFunc,
|
|
8
8
|
uiAskChoiceFunctionSchema
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-KJCSY4TW.js";
|
|
10
10
|
import {
|
|
11
11
|
formatISO
|
|
12
12
|
} from "./chunk-ZRAU6T47.js";
|
|
@@ -458,7 +458,7 @@ var slice = createSliceWithThunks({
|
|
|
458
458
|
const overrides = {};
|
|
459
459
|
if (args.systemPromptOverride !== void 0) overrides.prompt = args.systemPromptOverride;
|
|
460
460
|
if (args.toolsOverride !== void 0) overrides.tools = args.toolsOverride;
|
|
461
|
-
const { _executeModel } = await import("./_executeModel-
|
|
461
|
+
const { _executeModel } = await import("./_executeModel-Y4Y6NSF2.js");
|
|
462
462
|
return _executeModel(
|
|
463
463
|
{
|
|
464
464
|
isStreaming: args.isStreaming ?? false,
|
|
@@ -479,7 +479,7 @@ var slice = createSliceWithThunks({
|
|
|
479
479
|
* - 循环直到无工具调用或触发其他运行时停止条件
|
|
480
480
|
*/
|
|
481
481
|
runAgent: create.asyncThunk(async (args, thunkApi) => {
|
|
482
|
-
const { runAgentClientLoop } = await import("./runAgentClientLoop-
|
|
482
|
+
const { runAgentClientLoop } = await import("./runAgentClientLoop-O6XYZPOG.js");
|
|
483
483
|
const { content: loopContent, toolCallCount } = await runAgentClientLoop(
|
|
484
484
|
{
|
|
485
485
|
agentKey: args.agentKey,
|
|
@@ -495,7 +495,7 @@ var slice = createSliceWithThunks({
|
|
|
495
495
|
* 聊天轮次流式 Agent 调用
|
|
496
496
|
*/
|
|
497
497
|
streamAgentChatTurn: create.asyncThunk(async (args, thunkApi) => {
|
|
498
|
-
const { streamAgentChatTurnHandler } = await import("./streamAgentChatTurn-
|
|
498
|
+
const { streamAgentChatTurnHandler } = await import("./streamAgentChatTurn-VWPG52FR.js");
|
|
499
499
|
return streamAgentChatTurnHandler(args, thunkApi);
|
|
500
500
|
}),
|
|
501
501
|
/**
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-HNUWUO75.js";
|
|
4
4
|
import {
|
|
5
5
|
resolveToolImagePolicy
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-JBWLZ3CB.js";
|
|
7
7
|
import {
|
|
8
8
|
projectOpenAiToolImages
|
|
9
9
|
} from "./chunk-E2BESSAW.js";
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
getAntigravityUserAgent,
|
|
12
12
|
readAntigravityProjectId,
|
|
13
13
|
resolveAntigravityCloudCodeBaseUrl
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-YF4ZRVP3.js";
|
|
15
15
|
import {
|
|
16
16
|
asOptionalTrimmedString
|
|
17
17
|
} from "./chunk-G3SUCT4W.js";
|
|
@@ -13,10 +13,10 @@ import {
|
|
|
13
13
|
resolveAgentRecordFromHybridStore,
|
|
14
14
|
sanitizeAgentRecordForCliOutput,
|
|
15
15
|
writeAgentRecord
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-7C45ONOU.js";
|
|
17
17
|
import {
|
|
18
18
|
clearCliLocalRuntimePreparedAgentCache
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-2U2DMUGG.js";
|
|
20
20
|
import {
|
|
21
21
|
readCredentialAvailability
|
|
22
22
|
} from "./chunk-HAB2UDLT.js";
|
|
@@ -244,7 +244,7 @@ async function runAgentCreateCommand(args, deps = {}) {
|
|
|
244
244
|
let verifyResult;
|
|
245
245
|
if (parsed.verify) {
|
|
246
246
|
try {
|
|
247
|
-
const { verifyCustomProvider } = await import("./agentProviderCommands-
|
|
247
|
+
const { verifyCustomProvider } = await import("./agentProviderCommands-SKW4L6NN.js");
|
|
248
248
|
const rec = built.nextRecord;
|
|
249
249
|
verifyResult = await verifyCustomProvider({
|
|
250
250
|
providerUrl: rec.customProviderUrl,
|
|
@@ -333,7 +333,7 @@ async function saveDocState(arg, { dispatch, getState }) {
|
|
|
333
333
|
).unwrap();
|
|
334
334
|
if (dbSpaceId) {
|
|
335
335
|
try {
|
|
336
|
-
const { updateContentTitle } = await import("./contentThunks-
|
|
336
|
+
const { updateContentTitle } = await import("./contentThunks-DYUKG2UT.js");
|
|
337
337
|
await dispatch(
|
|
338
338
|
updateContentTitle({
|
|
339
339
|
spaceId: dbSpaceId,
|
|
@@ -372,7 +372,7 @@ async function saveDocState(arg, { dispatch, getState }) {
|
|
|
372
372
|
}
|
|
373
373
|
}
|
|
374
374
|
async function createDocState(args, thunkApi) {
|
|
375
|
-
const { createPageAction } = await import("./createPageAction-
|
|
375
|
+
const { createPageAction } = await import("./createPageAction-RLV5IWBB.js");
|
|
376
376
|
return createPageAction(args, thunkApi);
|
|
377
377
|
}
|
|
378
378
|
function subscribe(listener) {
|