UNPKG

supa-seed

Version:

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

128 lines 3.77 kB
/** * AI-Powered Asset Generation System * Phase 5, Checkpoint E1 - Complete AI integration for intelligent asset and template generation */ import { OllamaClient } from './ollama-client'; import { DomainPromptEngine, PromptContext } from './prompt-engine'; import { AIResponseCache } from './response-cache'; import { SchemaInfo } from '../core/schema-adapter'; import { Template } from '../features/generation/template-engine'; export interface GenerationOptions { useCache?: boolean; cacheTimeout?: number; fallbackToFaker?: boolean; maxRetries?: number; qualityThreshold?: number; model?: string; temperature?: number; tags?: string[]; } export interface AssetGenerationResult { success: boolean; data?: any; metadata: { source: 'ai' | 'cache' | 'fallback'; model?: string; responseTime: number; quality?: number; tokensUsed?: number; cacheHit: boolean; }; errors: string[]; warnings: string[]; } export interface TemplateRecommendation { template: Partial<Template>; confidence: number; reasoning: string; suggestedVariables: Array<{ name: string; type: string; description: string; required: boolean; suggestedDefault?: any; }>; } export interface SchemaAnalysis { improvements: Array<{ category: 'relationships' | 'indexes' | 'constraints' | 'seeding'; title: string; description: string; priority: 'low' | 'medium' | 'high'; implementation: string; }>; seedingStrategy: { order: string[]; relationships: Array<{ from: string; to: string; type: string; }>; estimatedTime: number; }; qualityScore: number; } export declare class AIAssetGenerator { private ollama; private promptEngine; private cache; constructor(ollama?: OllamaClient, promptEngine?: DomainPromptEngine, cache?: AIResponseCache); /** * Generate realistic seed data using AI */ generateSeedData(table: string, count: number, context: PromptContext, options?: GenerationOptions): Promise<AssetGenerationResult>; /** * Generate intelligent template recommendations */ recommendTemplate(context: PromptContext, templateType: string, options?: GenerationOptions): Promise<TemplateRecommendation | null>; /** * Analyze schema and suggest improvements */ analyzeSchema(schema: SchemaInfo, options?: GenerationOptions): Promise<SchemaAnalysis | null>; /** * Generate contextual field suggestions */ suggestFields(table: string, existingColumns: Array<{ name: string; type: string; }>, domain: string, options?: GenerationOptions): Promise<Array<{ name: string; type: string; description: string; required: boolean; }>>; /** * Get AI service status */ getStatus(): Promise<{ ai_available: boolean; model: string; cache_stats: any; recommendations: string[]; }>; /** * Clear AI cache */ clearCache(criteria?: { tags?: string[]; model?: string; }): number; /** * Private: Fallback to Faker.js generation */ private fallbackToFaker; /** * Private: Assess quality of generated data */ private assessDataQuality; /** * Private: Parse template recommendation from AI response */ private parseTemplateRecommendation; /** * Private: Parse schema analysis from AI response */ private parseSchemaAnalysis; } export declare const aiAssetGenerator: AIAssetGenerator; //# sourceMappingURL=asset-generator.d.ts.map