feat(ext/setup): vault-presence probe helper
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
23
extension/src/setup/probe.ts
Normal file
23
extension/src/setup/probe.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
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 };
|
||||
}
|
||||
Reference in New Issue
Block a user