feat(agent): add skipBootstrap config to skip bootstrap file creation (#292)

This commit is contained in:
Onur
2026-01-07 01:02:51 +08:00
committed by GitHub
parent 38aaa8563b
commit 6cf3570c5b
6 changed files with 25 additions and 7 deletions

View File

@@ -434,7 +434,11 @@ async function dockerContainerState(name: string) {
return { exists: true, running: result.stdout.trim() === "true" };
}
async function ensureSandboxWorkspace(workspaceDir: string, seedFrom?: string) {
async function ensureSandboxWorkspace(
workspaceDir: string,
seedFrom?: string,
skipBootstrap?: boolean,
) {
await fs.mkdir(workspaceDir, { recursive: true });
if (seedFrom) {
const seed = resolveUserPath(seedFrom);
@@ -461,7 +465,10 @@ async function ensureSandboxWorkspace(workspaceDir: string, seedFrom?: string) {
}
}
}
await ensureAgentWorkspace({ dir: workspaceDir, ensureBootstrapFiles: true });
await ensureAgentWorkspace({
dir: workspaceDir,
ensureBootstrapFiles: !skipBootstrap,
});
}
function normalizeDockerLimit(value?: string | number) {
@@ -856,7 +863,11 @@ export async function resolveSandboxContext(params: {
: workspaceRoot;
const seedWorkspace =
params.workspaceDir?.trim() || DEFAULT_AGENT_WORKSPACE_DIR;
await ensureSandboxWorkspace(workspaceDir, seedWorkspace);
await ensureSandboxWorkspace(
workspaceDir,
seedWorkspace,
params.config?.agent?.skipBootstrap,
);
const containerName = await ensureSandboxContainer({
sessionKey: rawSessionKey,
@@ -899,7 +910,11 @@ export async function ensureSandboxWorkspaceForSession(params: {
: workspaceRoot;
const seedWorkspace =
params.workspaceDir?.trim() || DEFAULT_AGENT_WORKSPACE_DIR;
await ensureSandboxWorkspace(workspaceDir, seedWorkspace);
await ensureSandboxWorkspace(
workspaceDir,
seedWorkspace,
params.config?.agent?.skipBootstrap,
);
return {
workspaceDir,