feat: casan chat optz
This commit is contained in:
@@ -6,6 +6,16 @@ set -uo pipefail
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "$SCRIPT_DIR/../scripts/bash/casan-paths.sh"
|
||||
ROUTER="$CASAN_HARNESS_ROOT/scripts/bash/prompt-mode-router.py"
|
||||
PYTHON_BIN="${CASAN_PYTHON_BIN:-}"
|
||||
if [[ -z "$PYTHON_BIN" ]]; then
|
||||
for candidate in /usr/bin/python3 python3 python; do
|
||||
if command -v "$candidate" >/dev/null 2>&1 && "$candidate" --version >/dev/null 2>&1; then
|
||||
PYTHON_BIN="$candidate"
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
[[ -n "$PYTHON_BIN" ]] || { echo "CHAT_TEST_RUNTIME_UNAVAILABLE" >&2; exit 69; }
|
||||
WORK="$(mktemp -d)"
|
||||
trap 'rm -rf "$WORK"' EXIT
|
||||
|
||||
@@ -14,7 +24,7 @@ pass() { echo "PASS: $1"; PASS=$((PASS + 1)); }
|
||||
fail() { echo "FAIL: $1"; FAIL=$((FAIL + 1)); }
|
||||
|
||||
mode_of() {
|
||||
python3 "$ROUTER" classify --message "$1" ${2:-} | python3 -c 'import json,sys; print(json.load(sys.stdin)["mode"])'
|
||||
"$PYTHON_BIN" "$ROUTER" classify --message "$1" ${2:-} | "$PYTHON_BIN" -c 'import json,sys; print(json.load(sys.stdin)["mode"])'
|
||||
}
|
||||
|
||||
echo "===== Plan-18 MVP-0 prompt router ====="
|
||||
@@ -44,7 +54,7 @@ echo "===== Plan-18 MVP-0 prompt router ====="
|
||||
&& pass "model OPERATOR cannot create unregistered action" || fail "model created unregistered operator action"
|
||||
|
||||
printf 'not-json\n' > "$WORK/bad-policy.json"
|
||||
CASAN_PROMPT_MODES_FILE="$WORK/bad-policy.json" python3 "$ROUTER" classify --message "hello" > "$WORK/bad.out"
|
||||
CASAN_PROMPT_MODES_FILE="$WORK/bad-policy.json" "$PYTHON_BIN" "$ROUTER" classify --message "hello" > "$WORK/bad.out"
|
||||
grep -q '"mode": "BLOCK"' "$WORK/bad.out" \
|
||||
&& pass "corrupt policy fails closed to BLOCK" || fail "corrupt policy did not BLOCK"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user