/** * `slowcook eval` — 0.19.0-α.17 (closes #19, partial). * * No-regression gate for prompt-changing PRs. Loads frozen fixtures * from `packages/cli/eval/fixtures//fixture.json`, calls the * relevant `build*Prompt(args)` function from `@slowcook-ai/llm-anthropic`, * and asserts the resulting prompt string contains all of the * fixture's `expected_prompt_includes` substrings and none of its * `expected_prompt_excludes` substrings. * * Why prompt-shape assertions instead of running the LLM against the * fixture: the regression class #19 names ("subtle prompt drift that * drops critical context") is structural. Asserting on construction * shape catches it deterministically without burning Anthropic credit * or introducing nondeterminism into CI. A future fixture-class can * layer LLM-output assertions on top once we have a recorded-replay * shape; today this gate is the cheap, fast, contract-grade floor. * * Discovery model: walks `packages/cli/eval/fixtures//` directly * by listing subdirectories with a `fixture.json` inside. No central * registry — each fixture is self-describing. */ export interface Fixture { id: string; agent: string; description: string; captured_from?: { pr?: number; date?: string; context?: string; }; input: Record; expected_prompt_includes: string[]; expected_prompt_excludes?: string[]; } export interface FixtureResult { id: string; agent: string; status: "pass" | "fail" | "error"; missingIncludes: string[]; unexpectedExcludes: string[]; errorMessage?: string; } /** * Resolve the default fixtures directory. Walks up from the CLI's * compiled location to find the `packages/cli/eval/fixtures/` tree. * In tests + local dev the caller passes `--fixtures-dir` directly. */ export declare function defaultFixturesDir(): string; export declare function listFixtureIds(fixturesDir: string): string[]; export declare function loadFixture(fixturesDir: string, id: string): Fixture; export declare function runFixture(f: Fixture): FixtureResult; export declare function evalCmd(argv: string[]): Promise; //# sourceMappingURL=index.d.ts.map