- red-team.sh: pipe prompt via stdin to avoid E2BIG (#1007) - inject.sh: use tsx instead of ts-node for Node >= 22 ESM (#1008) - evaluate.sh: add submodule init + forge build before kraiken-lib (#1006)
This commit is contained in:
parent
411c567cd6
commit
fdf9338a86
3 changed files with 22 additions and 5 deletions
|
|
@ -141,6 +141,19 @@ log "Creating worktree at $WORKTREE_DIR (branch: $PR_BRANCH)..."
|
|||
git worktree add "$WORKTREE_DIR" "remotes/$REPO_REMOTE/$PR_BRANCH" \
|
||||
|| infra_error "git worktree add failed for branch $PR_BRANCH"
|
||||
|
||||
# ── Initialize git submodules + install submodule npm deps ─────────────
|
||||
log "Initializing submodules..."
|
||||
(cd "$WORKTREE_DIR" && git submodule update --init --recursive 2>/dev/null) || true
|
||||
# uni-v3-lib has its own node_modules (solidity deps via npm)
|
||||
if [[ -f "$WORKTREE_DIR/onchain/lib/uni-v3-lib/package.json" ]]; then
|
||||
(cd "$WORKTREE_DIR/onchain/lib/uni-v3-lib" && npm install --silent 2>/dev/null) || true
|
||||
fi
|
||||
|
||||
# ── Compile Solidity contracts (needed by kraiken-lib for ABI imports) ──
|
||||
log "Compiling contracts (forge build)..."
|
||||
(cd "$WORKTREE_DIR/onchain" && forge build --silent) \
|
||||
|| infra_error "forge build failed"
|
||||
|
||||
# ── Build kraiken-lib in the worktree ─────────────────────────────────
|
||||
log "Building kraiken-lib..."
|
||||
(cd "$WORKTREE_DIR" && ./scripts/build-kraiken-lib.sh) \
|
||||
|
|
|
|||
|
|
@ -184,6 +184,7 @@ cleanup() {
|
|||
if [[ -n "${SNAP:-}" ]]; then
|
||||
"$CAST" rpc anvil_revert "$SNAP" --rpc-url "$RPC_URL" >/dev/null 2>&1 || true
|
||||
fi
|
||||
rm -f "${PROMPT_FILE:-}" 2>/dev/null || true
|
||||
exit $rc
|
||||
}
|
||||
trap cleanup EXIT INT TERM
|
||||
|
|
@ -652,13 +653,15 @@ log "Spawning Claude red-team agent (timeout: ${CLAUDE_TIMEOUT}s)..."
|
|||
log " Report will be written to: $REPORT"
|
||||
|
||||
set +e
|
||||
# Write prompt to temp file to avoid "Argument list too long" (prompt can be 50KB+)
|
||||
PROMPT_FILE=$(mktemp /tmp/red-team-prompt-XXXXXX.md)
|
||||
printf '%s' "$PROMPT" > "$PROMPT_FILE"
|
||||
# Note: --verbose is required by the claude CLI when --output-format stream-json is used;
|
||||
# omitting it causes the CLI to exit with an error, producing an empty stream log.
|
||||
timeout "$CLAUDE_TIMEOUT" claude -p --dangerously-skip-permissions \
|
||||
# Run synchronously — timeout handles kill, no need to background
|
||||
timeout "$CLAUDE_TIMEOUT" bash -c 'claude -p --dangerously-skip-permissions \
|
||||
--verbose --output-format stream-json \
|
||||
"$PROMPT" >"$STREAM_LOG" 2>&1 &
|
||||
CLAUDE_PID=$!
|
||||
wait "$CLAUDE_PID"
|
||||
<"$1" >"$2" 2>&1' _ "$PROMPT_FILE" "$STREAM_LOG"
|
||||
AGENT_EXIT=$?
|
||||
CLAUDE_PID=""
|
||||
set -e
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue