import type { ScaffoldError } from '../../types/index.js'; /** An output file to write during the build phase. */ export interface OutputFile { relativePath: string; content: string; writeMode: 'create' | 'section'; } /** Context passed to adapter.initialize() */ export interface AdapterContext { projectRoot: string; methodology: string; allSteps: string[]; } /** Result from initialize() */ export interface AdapterInitResult { success: boolean; errors: ScaffoldError[]; } /** Per-step input to generateStepWrapper() */ export interface AdapterStepInput { slug: string; description: string; phase: string | null; dependsOn: string[]; produces: string[]; pipelineIndex: number; /** Raw meta-prompt markdown body (everything after frontmatter) */ body: string; /** Parsed H2 sections from the meta-prompt body */ sections: Record; /** Loaded knowledge base entries for this step */ knowledgeEntries: Array<{ name: string; description: string; content: string; }>; /** Conditional execution flag */ conditional: 'if-needed' | null; /** Expanded description derived from Purpose section */ longDescription: string; } /** Output from generateStepWrapper() */ export interface AdapterStepOutput { slug: string; platformId: string; files: OutputFile[]; success: boolean; } /** Input to finalize() */ export interface AdapterFinalizeInput { results: AdapterStepOutput[]; } /** Result from finalize() */ export interface AdapterFinalizeResult { files: OutputFile[]; errors: ScaffoldError[]; } /** * Platform adapter lifecycle: * 1. initialize(context) — called once before any steps * 2. generateStepWrapper(input) — called once per enabled step * 3. finalize(results) — called once after all steps */ export interface PlatformAdapter { readonly platformId: string; initialize(context: AdapterContext): AdapterInitResult; generateStepWrapper(input: AdapterStepInput): AdapterStepOutput; finalize(input: AdapterFinalizeInput): AdapterFinalizeResult; } /** * Factory that returns the adapter for the given platformId. * Throws UNKNOWN_PLATFORM error if platformId is not registered. */ export declare function createAdapter(platformId: string): PlatformAdapter; /** Register of known platform IDs */ export declare const KNOWN_PLATFORMS: readonly ["claude-code", "codex", "universal"]; export type KnownPlatformId = typeof KNOWN_PLATFORMS[number]; //# sourceMappingURL=adapter.d.ts.map