Module: RosettAi::Plugins::EngineContract::ClassMethods

Defined in:
lib/rosett_ai/plugins/engine_contract.rb

Overview

Engine-specific class methods beyond the base Contract.

Instance Method Summary collapse

Instance Method Details

#backend_classClass

Returns the Backend subclass for rule compilation.

Returns:

  • (Class)

    the Backend subclass for rule compilation

Raises:

  • (NotImplementedError)


32
33
34
# File 'lib/rosett_ai/plugins/engine_contract.rb', line 32

def backend_class
  raise NotImplementedError, "#{self}#backend_class must return the backend class"
end

#config_compiler_classClass?

Returns optional ConfigCompiler subclass for settings compilation.

Returns:

  • (Class, nil)

    optional ConfigCompiler subclass for settings compilation



43
# File 'lib/rosett_ai/plugins/engine_contract.rb', line 43

def config_compiler_class = nil

#detector_classClass?

Returns optional Detector subclass for system probing.

Returns:

  • (Class, nil)

    optional Detector subclass for system probing



37
# File 'lib/rosett_ai/plugins/engine_contract.rb', line 37

def detector_class = nil

#engine_nameString

Returns engine identifier (e.g. 'claude', 'goose').

Returns:

  • (String)

    engine identifier (e.g. 'claude', 'goose')

Raises:

  • (NotImplementedError)


27
28
29
# File 'lib/rosett_ai/plugins/engine_contract.rb', line 27

def engine_name
  raise NotImplementedError, "#{self}#engine_name must return the engine identifier"
end

#executor_classClass?

Returns optional Executor subclass for API calls.

Returns:

  • (Class, nil)

    optional Executor subclass for API calls



40
# File 'lib/rosett_ai/plugins/engine_contract.rb', line 40

def executor_class = nil

#manifest_pathPathname

Returns path to the engine's manifest.yml.

Returns:

  • (Pathname)

    path to the engine's manifest.yml

Raises:

  • (NotImplementedError)


46
47
48
# File 'lib/rosett_ai/plugins/engine_contract.rb', line 46

def manifest_path
  raise NotImplementedError, "#{self}#manifest_path must return the manifest path"
end

#plugin_nameObject

Convenience alias — delegates to plugin_name for Contract compatibility.



56
# File 'lib/rosett_ai/plugins/engine_contract.rb', line 56

def plugin_name = engine_name

#plugin_typeObject



24
# File 'lib/rosett_ai/plugins/engine_contract.rb', line 24

def plugin_type = :engine

#target_profile_pathPathname

Returns path to the engine's target profile YAML.

Returns:

  • (Pathname)

    path to the engine's target profile YAML



51
52
53
# File 'lib/rosett_ai/plugins/engine_contract.rb', line 51

def target_profile_path
  manifest_path.dirname.join('target.yml')
end