Spaces:
Runtime error
Runtime error
File size: 1,720 Bytes
857a91b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | #!/usr/bin/env bash
# Smoke-test a running matrix-runtime instance.
set -euo pipefail
BASE="${MATRIX_RUNTIME_BASE:-http://localhost:8080}"
START_CMD="${START_CMD:-npx -y @modelcontextprotocol/server-filesystem /tmp}"
say() { printf "\n==> %s\n" "$1"; }
say "Health"
curl -fsS "$BASE/v1/health"; echo
say "Capabilities"
curl -fsS "$BASE/v1/capabilities"; echo
say "Create mcp.test job"
JOB=$(curl -fsS -X POST "$BASE/v1/jobs" \
-H "Content-Type: application/json" \
-d "{\"type\":\"mcp.test\",\"ttl_seconds\":120,\"payload\":{\"runtime\":\"node\",\"transport\":\"stdio\",\"start_command\":\"$START_CMD\"}}")
echo "$JOB"
JOB_ID=$(printf '%s' "$JOB" | sed -n 's/.*"job_id":"\([^"]*\)".*/\1/p')
if [[ -z "$JOB_ID" ]]; then
echo "failed to create job" >&2; exit 1
fi
say "Stream events for up to 8s (live lifecycle)"
timeout 8 curl -sN "$BASE/v1/jobs/$JOB_ID/events" || true
say "Wait for the sandbox to become ready (up to 90s)"
for _ in $(seq 1 90); do
SNAP=$(curl -fsS "$BASE/v1/jobs/$JOB_ID")
STATUS=$(printf '%s' "$SNAP" | sed -n 's/.*"status":"\([^"]*\)".*/\1/p')
case "$STATUS" in
error) echo "job errored: $SNAP" >&2; exit 1 ;;
esac
# The mcp.test result is populated with the tool list once ready.
if printf '%s' "$SNAP" | grep -q '"tools"'; then
echo " sandbox ready (tools listed)"
break
fi
sleep 1
done
say "Job status"
curl -fsS "$BASE/v1/jobs/$JOB_ID"; echo
say "Cancel job"
curl -fsS -X DELETE "$BASE/v1/jobs/$JOB_ID"; echo
say "model.inspect job"
curl -fsS -X POST "$BASE/v1/jobs" \
-H "Content-Type: application/json" \
-d '{"type":"model.inspect","payload":{"model":"hf:Qwen/Qwen2.5-7B-Instruct","revision":"main"}}'; echo
echo
echo "Smoke test complete."
|