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)


34
35
36
# File 'lib/rosett_ai/plugins/engine_contract.rb', line 34

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



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

def config_compiler_class = nil

#detector_classClass?

Returns optional Detector subclass for system probing.

Returns:

  • (Class, nil)

    optional Detector subclass for system probing



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

def detector_class = nil

#engine_nameString

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

Returns:

  • (String)

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

Raises:

  • (NotImplementedError)


29
30
31
# File 'lib/rosett_ai/plugins/engine_contract.rb', line 29

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



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

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)


48
49
50
# File 'lib/rosett_ai/plugins/engine_contract.rb', line 48

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.



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

def plugin_name = engine_name

#plugin_typeSymbol

Return the plugin type identifier.

Returns:

  • (Symbol)


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

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



53
54
55
# File 'lib/rosett_ai/plugins/engine_contract.rb', line 53

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