/** * Build the "project context" block that gets injected into the refinement * agent's system prompt. Purpose: give the agent enough grounding in the * consumer's domain that the PM doesn't have to re-explain vocabulary / * invariants / architectural basics on every issue. * * Composition (in order): * 1. Contents of `.brewing/context.md` verbatim (consumer-authored, * deliberately distilled — not a full PRD). * 2. One-line summary of each active story in `specs/_index.yaml` so * the agent can cross-reference prior decisions proactively. * * Both parts are optional — on a greenfield project with neither, this * returns a short "no context provided" note instead. */ export declare function buildProjectContext(repoRoot: string): string; /** * 0.18.0-α.6 — surface a digest of `src/lib/entities/*.ts` (emitted by * `slowcook init entities` from the consumer's database migrations). * These are the canonical types every agent (refine, vibe, testgen, * plate, brew) must use when its spec/component/test references a * domain entity. Eliminates the prop-shape drift class (story-018's * `profile`/`owner` divergence between testgen + mock). */ export declare function readEntitiesDigest(repoRoot: string): string | null; /** * 0.17.0 — surface a digest of `.brewing/history-index.json` (emitted by * the refine entry point before the LLM runs). The digest lists existing * components + props, API routes, migrations + columns, and test helpers * so refine asks the right brownfield-conflict questions instead of * letting downstream agents collide on duplicate names + prop shapes. * * Truncation: the full index can be large; refine doesn't need EVERY * field, only the names + signatures. Full file is on disk for vibe + * testgen to consume in detail. */ export declare function readHistoryIndexDigest(repoRoot: string, opts?: { skipOverlapWithAuto?: boolean; }): string | null; /** * 0.13.4+ (brownfield-extraction track for 0.14 mockup-first refinement) — * surface map's brownfield extracts (`schema.mmd`, `tokens.md`) inside * the agent's project context. Without this wiring the extracts sit in * `.brewing/diagrams/` unused. With it, refine's proposals align with * the existing entity vocabulary + design tokens instead of inventing. * * Optional — both files are silently skipped when missing (greenfield * path or consumer hasn't run `slowcook map --emit-schema --emit-tokens`). */ export declare function readBrownfieldExtracts(repoRoot: string): string | null; export declare function readContextMd(repoRoot: string): string | null; /** * α.61 — surface a digest of NestJS/TypeORM backend shape so refine * doesn't hallucinate routes, DTO field names, and enum values on * monorepo consumers that use this stack. * * Scans (best-effort, all paths optional): * - packages/(any)/entities/X.entity.ts for TypeORM entity classes * (extracts class name + each Column/OneToMany/ManyToOne field) * - apps/(any)/src/modules/(any)/X.controller.ts for HTTP controllers * (extracts class + each Get/Post/Put/Delete/Patch handler) * - packages/enums/src/X.enum.ts for enum values * * Returns null when none of these directories exist (greenfield or * non-NestJS repo) so the function stays a no-op for other stacks. * * Truncation: per-entity column list capped at 20; per-controller * route list capped at 15; enum values capped at 20. The full files * are on disk for testgen / brew if more detail needed. * * NOT a replacement for `readEntitiesDigest` (which targets the * supabase-style structure `slowcook init entities` emits) — both * fire side-by-side; one is null on stacks that aren't its target. */ export declare function readNestJsBackendDigest(repoRoot: string): string | null; /** every {#anchor} marker in docs/PRD.md (empty when no PRD). */ export declare function readPrdAnchors(repoRoot: string): string[]; //# sourceMappingURL=context.d.ts.map