/** * The constitution resolver computes which project-level guidance files every * Diablo agent step receives. A constitution is the stable, project-local * governance layer: architecture boundaries, testing expectations, domain * vocabulary, ADR references. * * Pure (no I/O): the caller supplies a file-existence predicate so the * resolver is unit-testable without filesystem mocking. * * Resolution order: * 1. AGENTS.md (or CLAUDE.md as fallback) — the repo's agent guidance file * 2. CONTEXT.md — domain/architecture context * 3. Configured extra files from diablo.config.json constitution.files[] * * Default convention files are optional and skipped silently when absent. * Configured files are intentional — a missing configured file throws. * Deduplication preserves first-occurrence order. */ /** * Resolves the ordered list of constitution file paths for a project. * * @param fileExists Predicate returning true if a path exists on disk. * @param repoRoot Absolute path to the project root. * @param configFiles Optional extra file paths from diablo.config.json * (relative to repoRoot). Each must exist. * @returns Deduplicated list of absolute paths, in injection order. * @throws If a configured file does not exist. */ export declare function resolveConstitution(fileExists: (path: string) => boolean, repoRoot: string, configFiles?: string[]): string[];