snes-disassembler
Version:
A Super Nintendo (SNES) ROM disassembler for 65816 assembly
118 lines • 3.89 kB
TypeScript
/**
* AI Configuration Management
*
* Centralized configuration for all GenAI features in the SNES disassembler.
* All AI features are optional and can be disabled for users who prefer
* traditional analysis methods.
*/
interface AIModelConfig {
/** HuggingFace model identifier or local path */
modelPath: string;
/** Enable/disable this specific model */
enabled: boolean;
/** Model revision/version to use */
revision?: string;
/** Custom model parameters */
parameters?: Record<string, any>;
}
interface AIFeatureConfig {
/** Enable/disable all AI features globally */
enabled: boolean;
/** Graphics classification using Vision Transformers */
graphicsClassification: AIModelConfig;
/** Text/sequence classification using language models */
textClassification: AIModelConfig;
/** Audio pattern recognition */
audioClassification: AIModelConfig;
/** Intelligent naming suggestions */
namingSuggestions: {
enabled: boolean;
/** Use AI-generated context-aware names */
useContextualNames: boolean;
/** Include SNES-specific naming conventions */
useSNESConventions: boolean;
/** Custom naming patterns */
customPatterns?: string[];
};
/** Automated documentation generation */
documentationGeneration: {
enabled: boolean;
/** Generate comments for assembly code */
generateComments: boolean;
/** Generate high-level documentation */
generateDocs: boolean;
/** Documentation language/style */
style: 'technical' | 'beginner' | 'detailed';
/** Include AI confidence scores in docs */
includeConfidence: boolean;
};
/** Performance and resource settings */
performance: {
/** Maximum memory usage for AI models (MB) */
maxMemoryMB: number;
/** Enable model caching */
enableCaching: boolean;
/** Parallel processing limit */
maxConcurrentJobs: number;
/** Timeout for AI operations (seconds) */
timeoutSeconds: number;
};
/** Fallback behavior when AI is unavailable */
fallback: {
/** Use heuristic analysis when AI fails */
useHeuristics: boolean;
/** Show warnings when falling back */
showWarnings: boolean;
/** Cache heuristic results */
cacheResults: boolean;
};
}
/**
* Default AI configuration - all features disabled by default
* Users must explicitly enable AI features they want to use
*/
export declare const DEFAULT_AI_CONFIG: AIFeatureConfig;
/**
* AI Configuration Manager
* Handles loading, saving, and validating AI configuration
*/
export declare class AIConfigManager {
private config;
private configPath;
constructor(configPath?: string);
/**
* Load configuration from file or use defaults
*/
loadConfig(): Promise<AIFeatureConfig>;
/**
* Save current configuration to file
*/
saveConfig(): Promise<void>;
/**
* Get current configuration
*/
getConfig(): AIFeatureConfig;
/**
* Update configuration
*/
updateConfig(updates: Partial<AIFeatureConfig>): void;
/**
* Check if AI features are enabled globally
*/
isAIEnabled(): boolean;
/**
* Check if a specific AI feature is enabled
*/
isFeatureEnabled(feature: keyof Omit<AIFeatureConfig, 'enabled' | 'performance' | 'fallback'>): boolean;
/**
* Get model configuration for a specific feature
*/
getModelConfig(feature: 'graphicsClassification' | 'textClassification' | 'audioClassification'): AIModelConfig | null;
/**
* Create a sample configuration file with all options documented
*/
createSampleConfig(): Promise<void>;
private mergeWithDefaults;
}
export {};
//# sourceMappingURL=ai-config.d.ts.map