40 lines
1.2 KiB
Bash
Executable File
40 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -uo pipefail
|
|
|
|
# Smoke test: /skill:distill loads and the model responds with distillation methodology
|
|
# Expects: the response discusses extracting entities/rules from code
|
|
|
|
cd "$(dirname "$0")/.."
|
|
|
|
MODEL="Qwen3.6-35B-A3B-MXFP4_MOE.gguf"
|
|
TIMEOUT=180
|
|
|
|
echo "=== distill: invoking pi ==="
|
|
|
|
output=$(timeout "$TIMEOUT" pi -p --no-session --model "$MODEL" \
|
|
"/skill:distill I have a TypeScript function that checks if a user's subscription is active by comparing expiry date to now, and if expired sets status to 'expired'. How would you begin distilling this into an Allium spec? Keep it under 100 words." 2>&1)
|
|
rc=$?
|
|
|
|
if [ $rc -ne 0 ]; then
|
|
echo " FAIL: pi exited with code $rc"
|
|
echo "$output" | tail -20
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$output" ]; then
|
|
echo " FAIL: empty response"
|
|
exit 1
|
|
fi
|
|
|
|
echo "$output"
|
|
echo ""
|
|
|
|
# Check the response is relevant to distillation
|
|
if echo "$output" | grep -iqE 'entit|rule|status|domain|abstract|spec|allium|subscription|temporal|transition'; then
|
|
echo " PASS: response contains distillation-relevant content"
|
|
exit 0
|
|
else
|
|
echo " FAIL: response does not appear to follow distillation methodology"
|
|
exit 1
|
|
fi
|