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