import type { BackendType } from './types.js'; /** * 选出复现命令应展示的 bin/args——mirror worker.ts spawnCli 里 reproduce 快照的决策, * 抽成纯函数便于锁测试(codex review P1:确保绝不含 sandbox wrapper)。 * * 输入是**基础 CLI** 的 bin/args(cliAdapter.resolvedBin + buildArgs 产出,未经任何 * Seatbelt/bwrap/credential 改写)。规则: * - wrapperCli 生效**且** sandbox 关闭时 → 返回 wrapper 形态(`aiden x claude …`)。 * worker 侧 wrapperCli 与 file sandbox 互斥(sandboxOn 时忽略 wrapper),这里同构。 * - 其余(无 wrapper,或 sandbox 开启)→ 返回基础 CLI bin/args 原样。 * 无论如何都**不**含 sandbox-exec / bwrap 外层——那是机器相关、裸 bash 跑不起来的包装。 */ export declare function selectReproduceLaunch(input: { baseBin: string; baseArgs: string[]; wrapperCli?: string; sandboxOn: boolean; binResolver?: (bin: string) => string; ttadkModel?: string; }): { bin: string; args: string[]; }; export interface ReproduceCommandInput { backendType: BackendType; /** CLI 自身的可执行文件(cliAdapter.resolvedBin,或 wrapperCli 改写后的启动器)。 * 应为**未被 sandbox 包装**的形态。 */ bin: string; /** CLI argv(buildArgs 产出,或 wrapperCli 改写后)。未被 sandbox 包装。 */ args: string[]; /** 工作目录。 */ cwd?: string; /** worker 的完整 childEnv——用于抽取 botmux 注入的权威 env 键。 */ env?: NodeJS.ProcessEnv; /** 每 bot 注入 env(bots.json env,含 provider 凭证)。 */ injectEnv?: Record; } export declare function buildReproduceCommand(input: ReproduceCommandInput): string | null; //# sourceMappingURL=reproduce-command.d.ts.map