SpectraConfig.fromYaml constructor

SpectraConfig.fromYaml(
  1. Map yaml
)

Implementation

factory SpectraConfig.fromYaml(Map<dynamic, dynamic> yaml) {
  // Helper to normalize provider names to lowercase (for v0.1.4 migration)
  String? normalizeProvider(String? provider) =>
      provider?.toLowerCase().trim();

  return SpectraConfig(
    geminiKey: yaml['gemini_key'] as String?,
    openaiKey: yaml['openai_key'] as String?,
    claudeKey: yaml['claude_key'] as String?,
    grokKey: yaml['grok_key'] as String?,
    deepseekKey: yaml['deepseek_key'] as String?,
    geminiModel: yaml['gemini_model'] as String?,
    openaiModel: yaml['openai_model'] as String?,
    claudeModel: yaml['claude_model'] as String?,
    grokModel: yaml['grok_model'] as String?,
    deepseekModel: yaml['deepseek_model'] as String?,
    preferredProvider: normalizeProvider(
      yaml['preferred_provider'] as String?,
    ),
    planningProvider: normalizeProvider(yaml['planning_provider'] as String?),
    codingProvider: normalizeProvider(yaml['coding_provider'] as String?),
    executionMode: yaml['execution_mode'] as String?,
  );
}