/** * System prompt for the `plate` agent — slowcook's mockup-amendment * agent. Part of the 0.15 plate-pipeline (α.3). * * Where vibe is single-shot and produces the initial mockup, plate * handles the PM-iteration loop: reads PR comments + annotated * screenshots since the last plate commit, amends the mockup files * with minimum diff, force-pushes the same branch. * * Same shape as refine's AMENDMENT_SYSTEM but for the mockup branch * (not the spec branch). Vision-capable (Claude Opus / Sonnet) reads * PM screenshot attachments alongside prose comments. * * Output format: same XML-tagged blocks as vibe (` * contents` + optional `prose` * for the PR reply). */ export type MockShape = "vite" | "nextjs"; export declare const PLATE_AMENDMENT_SYSTEM: (projectContext: string, mockShape?: MockShape) => string; /** * Plate doesn't use tools — same single-shot pattern as vibe. The * difference is plate accepts image messages (annotated screenshots) * in the user-prompt args, not in tool calls. */ export declare const PLATE_TOOLS: Array; export type PlateImageMediaType = "image/jpeg" | "image/png" | "image/gif" | "image/webp"; export interface PlateImageAttachment { /** Base64-encoded raw image data (no `data:` URL prefix). */ base64: string; /** MIME type — Anthropic-supported set. */ mediaType: PlateImageMediaType; /** Optional caption for context. */ caption?: string; } export interface PlateAmendmentPromptArgs { storyId: string; prNumber: number; /** The full spec YAML — for context, not amendment. */ specYaml: string; /** Current state of mockup files: path → contents. */ currentFiles: Array<{ path: string; contents: string; }>; /** PM feedback since the last plate commit. */ feedback: PlateFeedback; } export interface PlateFeedback { /** Top-level PR comments (timeline). */ timelineComments: Array<{ author: string; body: string; createdAt: string; }>; /** Inline review comments on specific lines / paths. */ inlineComments: Array<{ author: string; path: string; line?: number; body: string; createdAt: string; }>; /** Image attachments extracted from the comments. Order: oldest first. */ screenshots: PlateImageAttachment[]; } /** * Build the user-message blocks (text + images) for plate. * * Returns an array of Anthropic content blocks the caller passes * to `messages.create({ messages: [{ role: "user", content: ... }] })`. * Mixing text + image blocks per Anthropic's vision-message format. */ export declare function buildPlateAmendmentPrompt(args: PlateAmendmentPromptArgs): Array<{ type: "text"; text: string; } | { type: "image"; source: { type: "base64"; media_type: PlateImageMediaType; data: string; }; }>; //# sourceMappingURL=plate.d.ts.map