/** * WS15: Registry loader — three-tier fallback chain. * * Resolution order (first readable + valid wins): * 1. ~/.cave/agent/registry.json (user override) * 2. ~/.cave/agent/registry-cache.json (fetched cache) * 3. /registry/registry.json (bundled fallback) */ import { type Registry } from "./schema.js"; /** User override path: ~/.cave/agent/registry.json */ export declare function getUserOverridePath(configDir?: string): string; /** Fetched cache path: ~/.cave/agent/registry-cache.json */ export declare function getCachePath(configDir?: string): string; /** * Bundled fallback path: /registry/registry.json * * Works from both src/ (ts-node / tsx) and dist/ (compiled) since the * registry/ dir lives at the package root, one or two levels up from * src/registry/ or dist/registry/. */ export declare function getBundledRegistryPath(): string; export type LoadRegistrySource = "user-override" | "cache" | "bundled"; export type LoadRegistryResult = { ok: true; registry: Registry; source: LoadRegistrySource; } | { ok: false; error: string; tried: string[]; }; /** * Load the active registry following the three-tier fallback chain. * * @param configDir Override ~/.cave/agent base dir (useful in tests). */ export declare function loadRegistry(configDir?: string): LoadRegistryResult; //# sourceMappingURL=loader.d.ts.map