45 lines
1.3 KiB
Bash
45 lines
1.3 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# call-sonnet.sh — wrapper to call Sonnet via claude CLI
|
||
|
|
# Reads prompt from a file (arg 1), writes response to stdout
|
||
|
|
#
|
||
|
|
# Debug mode: set SONNET_DEBUG=1 for verbose tracing
|
||
|
|
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
PROMPT_FILE="${1:?Usage: call-sonnet.sh PROMPT_FILE}"
|
||
|
|
DEBUG="${SONNET_DEBUG:-0}"
|
||
|
|
|
||
|
|
log() { [ "$DEBUG" = "1" ] && echo "[call-sonnet] $*" >&2 || true; }
|
||
|
|
|
||
|
|
if [ ! -f "$PROMPT_FILE" ]; then
|
||
|
|
echo "Prompt file not found: $PROMPT_FILE" >&2
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
log "prompt file: $PROMPT_FILE ($(wc -c < "$PROMPT_FILE") bytes)"
|
||
|
|
log "CLAUDECODE=${CLAUDECODE:-unset}"
|
||
|
|
log "PWD=$PWD"
|
||
|
|
log "which claude: $(which claude)"
|
||
|
|
|
||
|
|
unset CLAUDECODE 2>/dev/null || true
|
||
|
|
|
||
|
|
log "CLAUDECODE after unset: ${CLAUDECODE:-unset}"
|
||
|
|
log "running: claude -p --model sonnet --tools '' < $PROMPT_FILE"
|
||
|
|
log "claude PID will follow..."
|
||
|
|
|
||
|
|
# Trace: run with strace if available and debug mode
|
||
|
|
if [ "$DEBUG" = "2" ] && command -v strace &>/dev/null; then
|
||
|
|
strace -f -e trace=network,read,write -o /tmp/sonnet-strace.log \
|
||
|
|
claude -p --model sonnet --tools "" < "$PROMPT_FILE"
|
||
|
|
else
|
||
|
|
claude -p --model sonnet --tools "" \
|
||
|
|
--debug-file /tmp/sonnet-debug.log \
|
||
|
|
< "$PROMPT_FILE" &
|
||
|
|
CPID=$!
|
||
|
|
log "claude PID: $CPID"
|
||
|
|
wait $CPID
|
||
|
|
EXIT=$?
|
||
|
|
log "claude exited: $EXIT"
|
||
|
|
exit $EXIT
|
||
|
|
fi
|