fix: pass prompt as CLI arg instead of stdin to preserve interactive UI
This commit is contained in:
6
loop.sh
6
loop.sh
@@ -218,10 +218,10 @@ run_agent() {
|
|||||||
claude)
|
claude)
|
||||||
if [ "$has_tty" = true ]; then
|
if [ "$has_tty" = true ]; then
|
||||||
# Interactive mode: full CC session visible in terminal.
|
# Interactive mode: full CC session visible in terminal.
|
||||||
|
# Pass prompt as CLI argument so stdin stays as TTY (required for interactive UI).
|
||||||
# Use script to capture output while showing it live.
|
# Use script to capture output while showing it live.
|
||||||
# The prompt is piped via stdin; claude reads it as the initial message.
|
|
||||||
script -q "$output_file" \
|
script -q "$output_file" \
|
||||||
sh -c "printf '%s\n' \"\$(cat '$prompt_file')\" | claude --dangerously-skip-permissions"
|
claude --dangerously-skip-permissions "$(cat "$prompt_file")"
|
||||||
else
|
else
|
||||||
# Headless mode: --print for autonomous operation
|
# Headless mode: --print for autonomous operation
|
||||||
printf '%s\n' "$prompt" | timeout "${LOOP_AGENT_TIMEOUT:-600}" \
|
printf '%s\n' "$prompt" | timeout "${LOOP_AGENT_TIMEOUT:-600}" \
|
||||||
@@ -232,7 +232,7 @@ run_agent() {
|
|||||||
amp)
|
amp)
|
||||||
if [ "$has_tty" = true ]; then
|
if [ "$has_tty" = true ]; then
|
||||||
script -q "$output_file" \
|
script -q "$output_file" \
|
||||||
sh -c "printf '%s\n' \"\$(cat '$prompt_file')\" | amp --dangerously-allow-all"
|
amp --dangerously-allow-all "$(cat "$prompt_file")"
|
||||||
else
|
else
|
||||||
printf '%s\n' "$prompt" | timeout "${LOOP_AGENT_TIMEOUT:-600}" \
|
printf '%s\n' "$prompt" | timeout "${LOOP_AGENT_TIMEOUT:-600}" \
|
||||||
amp --dangerously-allow-all 2>&1 > "$output_file"
|
amp --dangerously-allow-all 2>&1 > "$output_file"
|
||||||
|
|||||||
Reference in New Issue
Block a user