Files
stack/tools/matrix-presence-harness/run.sh
T

48 lines
2.1 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# ============================================================================
# run.sh — RFC-001 P1 presence validation harness (A1A5) *** DEV-ONLY ***
# ============================================================================
#
# Assumes the dev Synapse is already up (infra/matrix/dev-up.sh). Provisions 3
# agents, heartbeats them, proves A2/A3/A4 against the LOCAL dev homeserver,
# exercising @mosaicstack/comms over the self-signed TLS endpoint (A1).
#
# NODE_TLS_REJECT_UNAUTHORIZED=0 is set ONLY because the dev cert is
# self-signed. This is a DEV convenience and must never be used in prod.
# ----------------------------------------------------------------------------
set -euo pipefail
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO="$(cd "${HERE}/../.." && pwd)"
DATA="${REPO}/infra/matrix/.data"
if [[ ! -f "${DATA}/dev-secrets.env" ]]; then
echo "run.sh: ${DATA}/dev-secrets.env not found — run infra/matrix/dev-up.sh first" >&2
exit 1
fi
# shellcheck disable=SC1091
set -a; source "${DATA}/dev-secrets.env"; set +a
export MATRIX_SERVER_NAME="${MATRIX_SERVER_NAME:-matrix.localhost}"
export MATRIX_TLS_PORT="${MATRIX_TLS_PORT:-18448}"
# Exercise the SDK over the self-signed TLS listener (A1). Use the plain HTTP
# port instead by exporting MATRIX_CS_URL=http://127.0.0.1:18008 before running.
export MATRIX_CS_URL="${MATRIX_CS_URL:-https://127.0.0.1:${MATRIX_TLS_PORT}}"
export NODE_TLS_REJECT_UNAUTHORIZED=0
export HEARTBEAT_INTERVAL_MS="${HEARTBEAT_INTERVAL_MS:-1000}"
export MISS_TOLERANCE="${MISS_TOLERANCE:-2}"
export DARK_THRESHOLD_MS="${DARK_THRESHOLD_MS:-6000}"
export AGENT_SLUGS="${AGENT_SLUGS:-alpha,bravo,charlie}"
export VICTIM_SLUG="${VICTIM_SLUG:-charlie}"
TSX_CLI="$(ls -d "${REPO}"/node_modules/.pnpm/tsx@*/node_modules/tsx/dist/cli.mjs 2>/dev/null | head -1)"
if [[ -z "${TSX_CLI}" ]]; then
echo "run.sh: tsx not found under node_modules — run pnpm install first" >&2
exit 1
fi
export TSX_CLI
echo "[run] CS=${MATRIX_CS_URL} server_name=${MATRIX_SERVER_NAME} dark_threshold=${DARK_THRESHOLD_MS}ms"
cd "${REPO}"
exec node "${TSX_CLI}" "${HERE}/validate.ts"