import type { WorkOrder } from "./prompts.js"; import type { ContractAmendment, OpenApiChange, ScenarioSlice } from "./types.js"; /** * Contract — OpenAPI. The first draft precedes the fan-out but is a * draft, not a decree: gap reports amend it once for all sides. * Instructions arrive as order.prompt. */ export interface ContractAuthor { receiveRunInstructions(instructions: readonly string[]): Promise; extendOpenApiSpec(order: WorkOrder, slice: ScenarioSlice): Promise; amendOpenApiSpec(order: WorkOrder, current: OpenApiChange, amendments: ContractAmendment[]): Promise; /** Runs the generator (a catalog command) — no model work. */ regenerateClientsAndServer(): Promise; }