#!/usr/bin/env bash set -euo pipefail mkdir -p components/build cat > components/build/BuildCenter.jsx <<'EOC' "use client"; import { useEffect, useState } from "react"; const API = process.env.NEXT_PUBLIC_API_URL || "http://127.0.0.1:8000"; export default function BuildCenter() { const [jobs, setJobs] = useState([]); const [loading, setLoading] = useState(false); async function refresh() { setLoading(true); try { const r = await fetch(API + "/api/builds"); const d = await r.json(); setJobs(Array.isArray(d) ? d : (d.jobs || [])); } catch { setJobs([]); } setLoading(false); } useEffect(() => { refresh(); const timer = setInterval(refresh, 5000); return () => clearInterval(timer); }, []); async function build(target) { await fetch(API + "/api/builds/start", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ target }) }); refresh(); } return (