20 lines
1.2 KiB
Bash
Executable File
20 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Proper-auth LiveKit token for the chaos-prime agent (MatrixRTC flow).
|
|
# Usage: livekit_token.sh [room_id] (defaults to the chaos-prime DM)
|
|
# Requires MATRIX_PASSWORD in env (see .matrix-env). Prints the JWT to stdout.
|
|
set -a
|
|
source /home/pierre/symbol-inferral/.matrix-env
|
|
set +a
|
|
HS=https://matrix.chaosmith.systems
|
|
ROOM="${1:-!vp_58NnFUUE4dmniRdrFIuNbMaaqLrQLOzcC3UUpAi8:chaosmith.systems}"
|
|
|
|
TOKEN=$(curl -s -m 10 -X POST "$HS/_matrix/client/v3/login" \
|
|
-d "{\"type\":\"m.login.password\",\"user\":\"chaos-prime\",\"password\":\"$MATRIX_PASSWORD\"}" | jq -r .access_token)
|
|
USER_ID=$(curl -s -m 10 "$HS/_matrix/client/v3/account/whoami?access_token=$TOKEN" | jq -r .user_id)
|
|
OID=$(curl -s -m 10 -X POST "$HS/_matrix/client/v3/user/$USER_ID/openid/request_token?access_token=$TOKEN" -d "{}")
|
|
BODY=$(jq -nc --argjson oid "$OID" --arg room "$ROOM" --arg uid "$USER_ID" \
|
|
'{room_id:$room, slot_id:"0", openid_token:$oid,
|
|
member:{id:"chaos-prime-agent", claimed_user_id:$uid, claimed_device_id:"CHAOSPRIMEAGENT"}}')
|
|
curl -s -m 20 -X POST "https://livekit.chaosmith.systems/get_token" \
|
|
-H "Content-Type: application/json" --data-binary "$BODY" | jq -r .jwt
|