t3-code-android-nightly/.agents/skills/test-t3-mobile/scripts/pair-client.sh
2026-09-18 10:38:09 -07:00

53 lines
1.3 KiB
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
usage() {
echo "Usage: $0 <server-port> <base-dir> <mobile-origin> <agent-device-command> <target-args...>" >&2
exit 2
}
[[ $# -ge 5 ]] || usage
server_port="$1"
base_dir="$2"
mobile_origin="$3"
agent_device_command="$4"
shift 4
repo_root="$(git rev-parse --show-toplevel)"
cd "$repo_root"
if ! pairing_output="$({
T3CODE_PORT="$server_port" node apps/server/src/bin.ts auth pairing create \
--base-dir "$base_dir" \
--base-url "$mobile_origin" \
--ttl 15m \
--label "agent-mobile"
} 2>&1)"; then
echo "Could not mint a mobile pairing credential." >&2
exit 1
fi
pairing_url="$(printf '%s\n' "$pairing_output" | sed -n 's/^Pair URL: //p' | tail -n 1)"
if [[ -z "$pairing_url" ]]; then
echo "Could not parse the mobile pairing URL." >&2
exit 1
fi
deep_link="$(PAIRING_URL="$pairing_url" node - <<'NODE'
const query = new URLSearchParams({
pairingUrl: process.env.PAIRING_URL,
autoConnect: "1",
});
process.stdout.write(`t3code-dev://connections/new?${query}`);
NODE
)"
if ! "$agent_device_command" open com.t3tools.t3code.dev "$deep_link" "$@" \
>/dev/null 2>&1; then
echo "AgentDevice could not open the pairing route. Check the Device panel and retry with a fresh credential." >&2
exit 1
fi
echo "Opened the existing Add Environment route with a fresh pairing credential."