mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-15 19:52:50 +03:00
53 lines
2.4 KiB
Bash
53 lines
2.4 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
unset ANTHROPIC_API_KEY CLAUDE_CODE_OAUTH_TOKEN ANTHROPIC_BEDROCK_BASE_URL ANTHROPIC_VERTEX_BASE_URL
|
|
unset CLAUDE_CODE_USE_BEDROCK CLAUDE_CODE_USE_VERTEX CLAUDE_CODE_USE_FOUNDRY
|
|
|
|
bridge_system_prompt="You are a coding agent inside Claude Code. Use only the client-owned tools supplied in the request. Never execute or request a Devin-owned tool. When work requires a tool, select the appropriate client tool and wait for its result before continuing."
|
|
scenario_cooldown_seconds="${DEVIN_BRIDGE_LIVE_SCENARIO_COOLDOWN_SECONDS:-15}"
|
|
|
|
run_scenario() {
|
|
local evidence_file="$1"
|
|
local prompt="$2"
|
|
claude -p --output-format stream-json --verbose --max-turns 12 \
|
|
--tools Read,Edit,Bash \
|
|
--system-prompt "$bridge_system_prompt" \
|
|
--permission-mode bypassPermissions "$prompt" | tee "$evidence_file"
|
|
if grep -Eqi 'log[ -]?in|authenticate.*anthropic|claude\.ai' "$evidence_file"; then
|
|
echo "Claude Code requested forbidden authentication" >&2
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
validate_scenario() {
|
|
local evidence_file="$1"
|
|
local marker="$2"
|
|
local required_tools="$3"
|
|
local require_npm_test="$4"
|
|
local required_slash_command="${5:-}"
|
|
local required_skill="${6:-}"
|
|
local accept_explicit_completion="${7:-false}"
|
|
node /opt/omniroute/scripts/devin-bridge/validate-claude-evidence.mjs \
|
|
"$evidence_file" "$marker" "$required_tools" "$require_npm_test" \
|
|
"$required_slash_command" "$required_skill" "$accept_explicit_completion"
|
|
}
|
|
|
|
run_scenario /evidence/live-analysis.jsonl \
|
|
"Read /workspace/CLAUDE.md, /workspace/math.js, and /workspace/math.test.js directly without searching or editing. Explain the defect, then end with LIVE_ANALYSIS_COMPLETE."
|
|
validate_scenario /evidence/live-analysis.jsonl LIVE_ANALYSIS_COMPLETE Read false
|
|
sleep "$scenario_cooldown_seconds"
|
|
|
|
run_scenario /evidence/live-fix.jsonl \
|
|
"Use Edit now to replace 'return a - b;' with 'return a + b;' in /workspace/math.js. Then use Bash to run npm test. Do not summarize before npm test succeeds. End with LIVE_FIX_COMPLETE only after the test passes."
|
|
grep -q 'return a + b;' /workspace/math.js
|
|
npm test
|
|
validate_scenario /evidence/live-fix.jsonl LIVE_FIX_COMPLETE Edit,Bash true
|
|
sleep "$scenario_cooldown_seconds"
|
|
|
|
run_scenario /evidence/live-command.jsonl "/bridge-check"
|
|
validate_scenario /evidence/live-command.jsonl BRIDGE_E2E_COMPLETE Bash true \
|
|
bridge-check bridge-proof true
|
|
|
|
printf 'PASS: three live Devin-backed Claude Code scenarios completed\n'
|