/** * ui-catalog-prompt.ts -- Generates a system prompt for LLMs describing * all available UiSpec components so they can produce valid JSON specs. * * Exports: * - COMPONENT_CATALOG — metadata for every supported component * - generateCatalogPrompt(options?) — builds the system prompt string * - getComponentNames() — returns the list of component type names */ interface PropMeta { type: string; description: string; required?: boolean; } export interface ComponentMeta { description: string; props: Record; slots?: string[]; } export declare const COMPONENT_CATALOG: Record; /** Returns the list of all component type names in the catalog. */ export declare function getComponentNames(): string[]; export interface CatalogPromptOptions { /** Extra rules appended to the end of the prompt. */ customRules?: string[]; /** Include a small example UiSpec at the end. */ includeExamples?: boolean; /** Only include these component types (subset of catalog). */ componentFilter?: string[]; /** * Output mode: * "generate" (default) — AI outputs ONLY JSONL patches, no prose. Use for * standalone UI builders and playgrounds. * "chat" — AI responds conversationally first, then emits * JSONL patches on their own lines when UI is needed. * Text-only replies are allowed (greetings, questions). * Use for conversational interfaces. */ mode?: "generate" | "chat"; } /** * Builds a system prompt string describing the UiSpec JSON format and * all available components so an LLM can generate valid specs. * * Two modes: * "generate" (default) — AI outputs only JSONL patches, no prose. * "chat" — AI can respond conversationally and embed JSONL * patches inline when rich UI is appropriate. */ export declare function generateCatalogPrompt(options?: CatalogPromptOptions): string; export {}; //# sourceMappingURL=ui-catalog-prompt.d.ts.map