Class: RosettAi::AiConfig::ConfigCompiler

Inherits:
Object
  • Object
show all
Defined in:
lib/rosett_ai/ai_config/config_compiler.rb

Overview

Compiles generic AI configuration to engine-native settings.

Takes the canonical .rosett-ai/conf/ai_config.yml and transforms it into engine-specific configuration keys. Unsupported settings produce warnings (or errors in strict mode).

When an engine manifest declares capabilities.config: false, a warning is emitted (error in strict mode). Fallback chains from config are compiled with local-to-remote transition warnings.

Author:

  • hugo

  • claude

Instance Method Summary collapse

Constructor Details

#initialize(model_router: ModelRouter.new, strict: false) ⇒ ConfigCompiler

Returns a new instance of ConfigCompiler.

Parameters:

  • model_router (ModelRouter) (defaults to: ModelRouter.new)

    model tier resolver

  • strict (Boolean) (defaults to: false)

    treat unsupported settings as errors



23
24
25
26
# File 'lib/rosett_ai/ai_config/config_compiler.rb', line 23

def initialize(model_router: ModelRouter.new, strict: false)
  @model_router = model_router
  @strict = strict
end

Instance Method Details

#compile(config, engine:) ⇒ Hash

Compiles AI config for a specific engine.

Parameters:

  • config (Hash)

    parsed ai_config.yml data

  • engine (String)

    target engine identifier

Returns:

  • (Hash)

    compilation result with :settings and :warnings



33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/rosett_ai/ai_config/config_compiler.rb', line 33

def compile(config, engine:)
  warnings = []
  settings = {}

  check_engine_capability(engine, warnings)
  compile_model_routing(config, engine, settings, warnings)
  compile_context_window(config, engine, settings, warnings)
  compile_cost_controls(config, settings)
  compile_fallback_chain(config, settings, warnings)

  { settings: settings, warnings: warnings }
end