/**
 * SDK initialization — sets up the RepositoryResolver so the SDK
 * can look up repository source paths from the database.
 *
 * Import this module early (e.g. from API routes or layout.tsx) to
 * ensure the resolver is configured before any SDK functions are called.
 */

import { resolve } from "node:path";
import { setRepositoryResolver } from "@optage/sdk";
import { getDb } from "./db";

const reposBase = process.env.REPOS_PATH ? resolve(process.env.REPOS_PATH, "..") : process.cwd();

setRepositoryResolver(async (repositoryId: string) => {
  const db = await getDb();
  const { rows } = await db.query(
    "SELECT source_path FROM repositories WHERE id = $1",
    [repositoryId],
  );
  const rel = rows[0]?.source_path;
  if (!rel) return null;
  return resolve(reposBase, rel);
});
