fix(cli): skip stdin read for ACP mode

- Extend stdin handling to skip reading for ACP mode, similar to stream-json
- Remove duplicate line in .dockerignore

ACP mode passes protocol data via stdin that should be forwarded to the
sandbox intact, not consumed as a user prompt.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
tanzhenxin 2026-03-27 11:47:01 +00:00
parent a806c8aaf6
commit cceac6093e
2 changed files with 5 additions and 4 deletions

View file

@ -6,7 +6,6 @@ node_modules
dist
**/dist
**/tsconfig.tsbuildinfo
**/tsconfig.tsbuildinfo
# Version control
.git

View file

@ -282,11 +282,13 @@ export async function main() {
process.exit(1);
}
}
// For stream-json mode, don't read stdin here - it should be forwarded to the sandbox
// and consumed by StreamJsonInputReader inside the container
// For stream-json and ACP modes, don't read stdin here — stdin carries
// protocol data (not a user prompt) and should be forwarded to the sandbox
// intact via stdio: 'inherit'.
const inputFormat = argv.inputFormat as string | undefined;
const isAcpMode = argv.acp || argv.experimentalAcp;
let stdinData = '';
if (!process.stdin.isTTY && inputFormat !== 'stream-json') {
if (!process.stdin.isTTY && inputFormat !== 'stream-json' && !isAcpMode) {
stdinData = await readStdin();
}