/**
* 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