import { NextResponse } from "next/server"; import { discoverBeadsDir, getRepoUrls } from "@/lib/discover"; import { readFileSync, existsSync } from "fs"; import { join } from "path"; import { parse as parseYaml } from "yaml"; export const dynamic = "force-dynamic"; export async function GET() { try { const discovery = discoverBeadsDir(); // Read repos list from config.yaml let repos: string[] = ["."]; const configPath = join(discovery.beadsDir, "config.yaml"); try { if (existsSync(configPath)) { const content = readFileSync(configPath, "utf-8"); const config = parseYaml(content); const additional = config?.repos?.additional; if (Array.isArray(additional)) { repos = [config?.repos?.primary || ".", ...additional]; } } } catch { // config.yaml unreadable — use defaults } // Build prefix → GitHub URL mapping from git remotes const repoUrls = getRepoUrls(discovery.beadsDir); return NextResponse.json({ name: discovery.issuePrefix || discovery.repoName, prefix: discovery.issuePrefix || null, repoCount: 1 + discovery.additionalRepos, repos, repoUrls, }); } catch { // No .beads/ found — return safe defaults return NextResponse.json({ name: "Beads", prefix: null, repoCount: 0, repos: [], }); } }