import type { GitHost } from '../service-worker/git-host';

export interface VaultProbe {
  exists: boolean;
  lastCommit?: { sha: string; author: string; date: string };
}

/// Detect whether the configured remote already contains a relicario vault.
/// Considered present if any of: .relicario/salt, .relicario/params.json,
/// manifest.enc exists. Best-effort metadata fetch via lastCommit().
export async function probeVault(host: GitHost): Promise<VaultProbe> {
  const [relicarioFiles, rootFiles] = await Promise.all([
    host.listDir('.relicario'),
    host.listDir(''),
  ]);
  const exists =
    relicarioFiles.includes('salt') ||
    relicarioFiles.includes('params.json') ||
    rootFiles.includes('manifest.enc');
  if (!exists) return { exists: false };
  const lastCommit = await host.lastCommit('manifest.enc');
  return lastCommit ? { exists, lastCommit } : { exists };
}
