UNPKG

supa-seed

Version:

A constraint-aware, framework-agnostic database seeding framework with deep PostgreSQL business logic discovery and MakerKit integration support

139 lines 3.63 kB
/** * Domain-Specific Prompt Engine * Phase 5, Checkpoint E1 - Intelligent prompts for seeding and template generation */ import { SchemaInfo } from '../core/schema-adapter'; export interface PromptContext { schema?: SchemaInfo; table?: string; columns?: Array<{ name: string; type: string; nullable?: boolean; }>; relationships?: Array<{ from: string; to: string; type: string; }>; existingData?: Record<string, any>[]; constraints?: Array<{ field: string; rule: string; value?: any; }>; style?: 'realistic' | 'creative' | 'business' | 'technical' | 'casual'; language?: string; culture?: string; domain?: string; } export interface GenerationRequest { type: 'seed_data' | 'template_content' | 'schema_suggestion' | 'field_names' | 'relationships'; context: PromptContext; count?: number; format?: 'json' | 'sql' | 'typescript' | 'text'; requirements?: string[]; examples?: any[]; } export interface PromptTemplate { id: string; name: string; description: string; type: GenerationRequest['type']; systemPrompt: string; userPromptTemplate: string; outputFormat: 'json' | 'text'; examples?: Array<{ input: any; output: any; }>; validation?: { required_fields?: string[]; data_types?: Record<string, string>; constraints?: Array<{ field: string; rule: string; }>; }; } export declare class DomainPromptEngine { private promptTemplates; private domainKnowledge; constructor(); /** * Generate a contextual prompt for AI generation */ generatePrompt(request: GenerationRequest): { system: string; user: string; schema?: any; }; /** * Generate seed data prompts */ generateSeedDataPrompt(context: PromptContext, count?: number): { system: string; user: string; schema?: any; }; /** * Generate template content prompts */ generateTemplatePrompt(context: PromptContext, templateType: string): { system: string; user: string; }; /** * Generate schema improvement suggestions */ generateSchemaAnalysisPrompt(schema: SchemaInfo): { system: string; user: string; }; /** * Add custom prompt template */ addPromptTemplate(template: PromptTemplate): void; /** * Get available templates */ getAvailableTemplates(): PromptTemplate[]; /** * Add domain knowledge */ addDomainKnowledge(domain: string, knowledge: any): void; /** * Private: Initialize built-in prompt templates */ private initializeBuiltInTemplates; /** * Private: Initialize domain knowledge */ private initializeDomainKnowledge; /** * Private: Get template for request type */ private getTemplateForRequest; /** * Private: Build system prompt with context */ private buildSystemPrompt; /** * Private: Build user prompt from template */ private buildUserPrompt; /** * Private: Generate output schema for structured responses */ private generateOutputSchema; /** * Private: Generate schema for table columns */ private generateColumnSchema; /** * Private: Process simple Handlebars-like template syntax */ private processHandlebarsLike; } export declare const promptEngine: DomainPromptEngine; //# sourceMappingURL=prompt-engine.d.ts.map