fix: 修复 runner Codex shell 工具环境

This commit is contained in:
Codex
2026-06-09 01:06:19 +08:00
parent 437822e5fd
commit aeb49460b7
9 changed files with 92 additions and 15 deletions
+9 -1
View File
@@ -46,12 +46,15 @@ export function createBackendSession(run: RunRecord, options: BackendAdapterOpti
export function backendTurnOptions(run: RunRecord, command: CommandRecord, options: BackendAdapterOptions = {}): CodexStdioTurnOptions {
const prompt = typeof command.payload.prompt === "string" ? command.payload.prompt : JSON.stringify(command.payload);
const sandboxOverride = codexShellSandboxOverride(options.env ?? process.env);
const turnOptions: CodexStdioTurnOptions = {
backendProfile: run.backendProfile,
prompt,
cwd: options.workspacePath ?? (typeof run.workspaceRef.path === "string" ? run.workspaceRef.path : process.cwd()),
approvalPolicy: run.executionPolicy.approval,
sandbox: run.executionPolicy.sandbox,
sandbox: sandboxOverride ?? run.executionPolicy.sandbox,
requestedSandbox: run.executionPolicy.sandbox,
sandboxOverrideSource: sandboxOverride ? "AGENTRUN_CODEX_SHELL_SANDBOX" : null,
timeoutMs: run.executionPolicy.timeoutMs,
};
if (typeof command.payload.model === "string") turnOptions.model = command.payload.model;
@@ -67,3 +70,8 @@ export function backendTurnOptions(run: RunRecord, command: CommandRecord, optio
if (options.onActiveTurn) turnOptions.onActiveTurn = options.onActiveTurn;
return turnOptions;
}
function codexShellSandboxOverride(env: NodeJS.ProcessEnv): string | null {
const value = env.AGENTRUN_CODEX_SHELL_SANDBOX?.trim();
return value && value.length > 0 ? value : null;
}
+8
View File
@@ -45,6 +45,8 @@ export interface CodexStdioTurnOptions {
threadId?: string;
approvalPolicy: string;
sandbox: string;
requestedSandbox?: string;
sandboxOverrideSource?: string | null;
timeoutMs: number;
command?: string;
args?: string[];
@@ -1065,6 +1067,12 @@ function backendMetadata(options: CodexStdioTurnOptions): JsonRecord {
backendKind: spec?.backendKind ?? "codex-app-server-stdio",
protocol: spec?.protocol ?? codexProtocol,
transport: spec?.transport ?? "stdio",
sandbox: {
requested: options.requestedSandbox ?? options.sandbox,
effective: options.sandbox,
overrideSource: options.sandboxOverrideSource ?? null,
valuesPrinted: false,
},
};
}