Class: RosettAi::Retrofit::Engine
- Inherits:
-
Object
- Object
- RosettAi::Retrofit::Engine
- Defined in:
- lib/rosett_ai/retrofit/engine.rb
Overview
Orchestrates reverse compilation from native AI tool configs to Rosett-AI YAML.
Discovers installed engines, parses native configs, redacts secrets, and writes rosett-ai-compatible YAML source files.
Constant Summary collapse
- PARSER_REGISTRY =
{ 'claude' => 'RosettAi::Retrofit::Parsers::ClaudeParser', 'cursor' => 'RosettAi::Retrofit::Parsers::CursorParser', 'agents_md' => 'RosettAi::Retrofit::Parsers::AgentsMdParser' }.freeze
Class Method Summary collapse
-
.available_engines ⇒ Array<String>
List of available engine names.
Instance Method Summary collapse
-
#initialize(output_dir:, engines: nil, force: false) ⇒ Engine
constructor
A new instance of Engine.
-
#retrofit ⇒ Hash
Performs the retrofit operation.
-
#simulate ⇒ Hash
Simulates retrofit without writing files.
Constructor Details
#initialize(output_dir:, engines: nil, force: false) ⇒ Engine
Returns a new instance of Engine.
28 29 30 31 32 33 34 |
# File 'lib/rosett_ai/retrofit/engine.rb', line 28 def initialize(output_dir:, engines: nil, force: false) @output_dir = output_dir @requested_engines = engines @force = force @warnings = [] @secret_detector = SecretDetector.new(warnings: @warnings) end |
Class Method Details
.available_engines ⇒ Array<String>
Returns list of available engine names.
64 65 66 |
# File 'lib/rosett_ai/retrofit/engine.rb', line 64 def self.available_engines PARSER_REGISTRY.keys end |
Instance Method Details
#retrofit ⇒ Hash
Performs the retrofit operation.
39 40 41 42 43 44 45 46 47 48 |
# File 'lib/rosett_ai/retrofit/engine.rb', line 39 def retrofit results = { generated: [], skipped: [], errors: [], warnings: [] } parsers = resolve_parsers(results) parsers.each { |parser| retrofit_engine(parser, results) } write_manifest(results) unless results[:generated].empty? results[:warnings] = @warnings results end |
#simulate ⇒ Hash
Simulates retrofit without writing files.
53 54 55 56 57 58 59 60 61 |
# File 'lib/rosett_ai/retrofit/engine.rb', line 53 def simulate results = { generated: [], skipped: [], errors: [], warnings: [] } parsers = resolve_parsers(results) parsers.each { |parser| simulate_engine(parser, results) } results[:warnings] = @warnings results end |