Class: RosettAi::Retrofit::Scanner

Inherits:
Object
  • Object
show all
Defined in:
lib/rosett_ai/retrofit/scanner.rb

Overview

MCP-facing facade for retrofit operations.

Delegates to Engine for the actual retrofit logic, providing the simplified interface expected by Mcp::Tools::RetrofitTool.

Author:

  • hugo

  • claude

Instance Method Summary collapse

Constructor Details

#initialize(output_dir: Pathname.new(Dir.pwd)) ⇒ Scanner

Returns a new instance of Scanner.



16
17
18
# File 'lib/rosett_ai/retrofit/scanner.rb', line 16

def initialize(output_dir: Pathname.new(Dir.pwd))
  @output_dir = output_dir
end

Instance Method Details

#available_parsersArray<String>

Returns available parser/engine names.

Returns:

  • (Array<String>)

    available parser/engine names



21
22
23
# File 'lib/rosett_ai/retrofit/scanner.rb', line 21

def available_parsers
  Engine.available_engines
end

#convert(engine: nil, options: {}) ⇒ Hash

Converts native configs to Rosett-AI YAML.

Parameters:

  • engine (String, nil) (defaults to: nil)

    specific engine name

  • options (Hash) (defaults to: {})

    :dry_run for simulation mode

Returns:

  • (Hash)

    with :converted and :files keys



38
39
40
41
42
43
44
# File 'lib/rosett_ai/retrofit/scanner.rb', line 38

def convert(engine: nil, options: {})
  dry_run = options.fetch(:dry_run, true)
  engines = engine ? [engine] : nil
  retrofitter = Engine.new(output_dir: @output_dir, engines: engines)
  result = dry_run ? retrofitter.simulate : retrofitter.retrofit
  { converted: result[:generated].size, files: result[:generated] }
end

#scanArray<Hash>

Scans for native AI tool configs without writing files.

Returns:

  • (Array<Hash>)

    scan findings



28
29
30
31
# File 'lib/rosett_ai/retrofit/scanner.rb', line 28

def scan
  engine = Engine.new(output_dir: @output_dir)
  engine.simulate[:generated]
end