




















@@ -1,3 +1,4 @@
1+import type { BootstrapContextMode } from "../../agents/bootstrap-files.js";
12import { resolveCliRuntimeExecutionProvider } from "../../agents/model-runtime-aliases.js";
23import type { SkillSnapshot } from "../../agents/skills.js";
34import { normalizeToolList } from "../../agents/tool-policy.js";
@@ -60,6 +61,29 @@ function resolveCronOwnerOnlyToolAllowlist(toolsAllow: string[] | undefined): st
6061return ["cron"];
6162}
626364+const COMMAND_STYLE_CRON_PREFIX =
65+/^(?:(?:[A-Z_][A-Z0-9_]*=\S+\s+)+)?(?:cd\s+\S+|(?:\.{1,2}|~)?\/\S+|[A-Za-z]:[\\/]\S+|(?:bash|bun|cargo|deno|docker|gh|git|go|make|node|npm|npx|pnpm|python|python3|ruby|sh|tsx|uv|zsh)\b)/u;
66+67+export function isCommandStyleCronMessage(message: string): boolean {
68+const trimmed = message.trim();
69+if (!trimmed || trimmed.includes("\n")) {
70+return false;
71+}
72+return COMMAND_STYLE_CRON_PREFIX.test(trimmed);
73+}
74+75+function resolveCronBootstrapContextMode(
76+payload: AgentTurnPayload,
77+): BootstrapContextMode | undefined {
78+if (payload?.lightContext === true) {
79+return "lightweight";
80+}
81+if (payload?.lightContext === false) {
82+return undefined;
83+}
84+return isCommandStyleCronMessage(payload?.message ?? "") ? "lightweight" : undefined;
85+}
86+6387export type CronExecutionResult = {
6488runResult: CronPromptRunResult;
6589fallbackProvider: string;
@@ -180,6 +204,8 @@ export function createCronPromptExecutor(params: {
180204onExecutionPhase: params.onExecutionPhase,
181205 bootstrapPromptWarningSignaturesSeen,
182206 bootstrapPromptWarningSignature,
207+bootstrapContextMode: resolveCronBootstrapContextMode(params.agentPayload),
208+bootstrapContextRunKind: "cron",
183209senderIsOwner: params.senderIsOwner,
184210});
185211bootstrapPromptWarningSignaturesSeen = resolveBootstrapWarningSignaturesSeen(
@@ -234,7 +260,7 @@ export function createCronPromptExecutor(params: {
234260verboseLevel: params.resolvedVerboseLevel,
235261timeoutMs: params.timeoutMs,
236262runTimeoutOverrideMs: params.runTimeoutOverrideMs,
237-bootstrapContextMode: params.agentPayload?.lightContext ? "lightweight" : undefined,
263+bootstrapContextMode: resolveCronBootstrapContextMode(params.agentPayload),
238264bootstrapContextRunKind: "cron",
239265toolsAllow: params.agentPayload?.toolsAllow,
240266execOverrides: params.suppressExecNotifyOnExit
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。