/** * SCHEMA.md loader + validator + frozen-path gate. * * Reads `/SCHEMA.md` (pure YAML inside a .md container), validates * shape against `VaultSchema`, and exposes the frozen-path predicate used * by `wiki-lint` to refuse restructure operations on OSS-pinned folders. * * Per v2.1 spec ยง2 (Hybrid folder architecture) โ€” the `frozen: true` block * is a HARD contract: any lint or ingest operation that targets a frozen * path MUST fail closed. * * @module services/wiki/schema-loader.service */ import { VaultSchema } from './wiki.types.js'; /** Standard schema filename inside any vault root. */ export declare const SCHEMA_FILENAME = "SCHEMA.md"; /** * Loads + validates a vault's SCHEMA.md. Stateless โ€” instantiate once * per service or use the static helper. */ export declare class SchemaLoaderService { /** * Load and validate the SCHEMA.md inside a vault directory. * * @param vaultPath - Absolute path to the vault root (the directory * containing SCHEMA.md). Must be absolute. * @returns Validated VaultSchema. * @throws If vaultPath is not absolute, SCHEMA.md is missing, YAML * parsing fails, or the parsed object is shape-invalid. */ load(vaultPath: string): Promise; /** * Determine whether a path inside a vault is frozen (OSS-pinned). * * Used by `wiki-lint` and `wiki-ingest` to refuse restructure / write * operations. Comparison is by leading path segment โ€” e.g. `sop/foo.md` * is frozen if `sop/` is declared frozen. * * @param schema - The vault's parsed schema. * @param relativePath - Path relative to vault root, e.g. `sop/team-1.md`. * @returns true if the path lives under a frozen folder. */ isFrozenPath(schema: VaultSchema, relativePath: string): boolean; /** * Return every frozen folder path declared in a schema. Convenience for * lint reports. */ getFrozenPaths(schema: VaultSchema): string[]; private validate; /** * `retention:` is optional; defaults = every built-in keep_because reason * and a required summary. */ private optionalRetention; /** * `privacy:` is optional; defaults = PII allowed, pages visible to all. */ private optionalPrivacy; private requireScope; private requireString; private requireHardcoded; private requireLlmCurated; private requireWritePolicy; private requireStringArray; } //# sourceMappingURL=schema-loader.service.d.ts.map