supa-seed
Version:
A constraint-aware, framework-agnostic database seeding framework with deep PostgreSQL business logic discovery and MakerKit integration support
171 lines • 6.02 kB
TypeScript
/**
* Auto-Configuration System for Epic 2: Smart Platform Detection Engine
* Generates platform-specific configurations based on detection results
* Part of Task 2.3.1: Create auto-configurator system with platform-specific config generation
*/
import type { FlexibleSeedConfig } from '../../core/types/config-types';
import type { PlatformArchitectureType, ContentDomainType, ConfidenceLevel } from './detection-types';
import type { UnifiedDetectionResult } from './detection-integration';
/**
* Auto-generated configuration result
*/
export interface AutoConfigurationResult {
/** Generated configuration based on detection */
configuration: Partial<FlexibleSeedConfig>;
/** Confidence in the auto-configuration */
confidence: number;
/** Confidence level category */
confidenceLevel: ConfidenceLevel;
/** Reasoning for configuration choices */
reasoning: string[];
/** Warnings about configuration choices */
warnings: string[];
/** Detection results used for configuration */
detectionResults: UnifiedDetectionResult;
/** Configuration generation metrics */
generationMetrics: {
/** Time taken for configuration generation (ms) */
executionTime: number;
/** Number of configuration templates applied */
templatesApplied: number;
/** Configuration strategy used */
strategyUsed: string;
};
}
/**
* Configuration template for specific platform/domain combinations
*/
export interface ConfigurationTemplate {
/** Template identifier */
id: string;
/** Template name */
name: string;
/** Template description */
description: string;
/** Platform architecture this template applies to */
architecture: PlatformArchitectureType | 'any';
/** Content domain this template applies to */
domain: ContentDomainType | 'any';
/** Minimum confidence required to apply template */
minimumConfidence: number;
/** Template priority (higher = more specific) */
priority: number;
/** Configuration overrides to apply */
configurationOverrides: Partial<FlexibleSeedConfig>;
/** Template application logic */
shouldApply: (detection: UnifiedDetectionResult) => boolean;
/** Custom configuration generation function */
generateConfig?: (detection: UnifiedDetectionResult, baseConfig: Partial<FlexibleSeedConfig>) => Partial<FlexibleSeedConfig>;
}
/**
* Auto-configuration generation strategies
*/
export type AutoConfigurationStrategy = 'comprehensive' | 'minimal' | 'conservative' | 'optimized';
/**
* Auto-configuration system options
*/
export interface AutoConfigurationOptions {
/** Configuration generation strategy */
strategy: AutoConfigurationStrategy;
/** Base configuration to extend */
baseConfiguration?: Partial<FlexibleSeedConfig>;
/** Whether to apply domain-specific extensions */
enableDomainExtensions: boolean;
/** Whether to apply architecture-specific optimizations */
enableArchitectureOptimizations: boolean;
/** Minimum confidence threshold for applying configurations */
confidenceThreshold: number;
/** Custom configuration templates to include */
customTemplates?: ConfigurationTemplate[];
/** Configuration overrides that take priority */
configurationOverrides?: Partial<FlexibleSeedConfig>;
}
/**
* Main Auto-Configuration System
* Generates platform-specific configurations based on detection results
*/
export declare class AutoConfigurator {
private configurationTemplates;
constructor();
/**
* Generate auto-configuration from detection results
*/
generateConfiguration(detectionResults: UnifiedDetectionResult, options?: Partial<AutoConfigurationOptions>): Promise<AutoConfigurationResult>;
/**
* Execute configuration generation based on strategy
*/
private executeConfigurationStrategy;
/**
* Generate comprehensive configuration with all detected features
*/
private generateComprehensiveConfiguration;
/**
* Generate minimal configuration with only essential settings
*/
private generateMinimalConfiguration;
/**
* Generate conservative configuration with safe fallbacks
*/
private generateConservativeConfiguration;
/**
* Generate optimized configuration for performance
*/
private generateOptimizedConfiguration;
/**
* Generate architecture-specific configuration
*/
private generateArchitectureConfiguration;
/**
* Generate domain-specific configuration
*/
private generateDomainConfiguration;
/**
* Generate essential architecture configuration (minimal mode)
*/
private generateEssentialArchitectureConfiguration;
/**
* Generate essential domain configuration (minimal mode)
*/
private generateEssentialDomainConfiguration;
/**
* Get applicable configuration templates
*/
private getApplicableTemplates;
/**
* Calculate configuration confidence based on detection results
*/
private calculateConfigurationConfidence;
/**
* Assess configuration completeness
*/
private assessConfigurationCompleteness;
/**
* Get optimized user count for architecture type
*/
private getOptimizedUserCount;
/**
* Get optimized seeding parameters for domain
*/
private getOptimizedSeedingParams;
/**
* Get confidence level from confidence score
*/
private getConfidenceLevel;
/**
* Create fallback configuration when generation fails
*/
private createFallbackConfiguration;
/**
* Merge options with defaults
*/
private mergeWithDefaults;
/**
* Initialize default configuration templates
*/
private initializeDefaultTemplates;
}
/**
* Default auto-configuration options
*/
export declare const DEFAULT_AUTO_CONFIGURATION_OPTIONS: AutoConfigurationOptions;
//# sourceMappingURL=auto-configurator.d.ts.map