class Riffer::Rig::Runtime::Assembly
Attributes
declared_settings
[R]
Hash[Symbol, Hash[Symbol, untyped]]
@dynamic failures, tools, hooks, mcp_declarations, prompt_sections, declared_settings, settings
hooks
[R]
Hash[Symbol, Array[^(Riffer::Rig::Events::_Event | ::Riffer::StreamEvents::Base) → untyped]]
mcp_declarations
[R]
Hash[String, Riffer::Rig::Mcp::Declaration]
overrides
[R]
Array[String]
@dynamic overrides, unknown_tools
prompt_sections
[R]
Hash[Symbol, ^(Riffer::Rig::Runtime) → String?]
settings
[R]
Hash[Symbol, untyped]
tools
[R]
Array[singleton(Riffer::Tool)]
unknown_tools
[R]
Array[String]
Public Class Methods
(Array[Riffer::Rig::Extension] extensions, Hash[Symbol, untyped] settings, Array[String]? allowlist, ?strict: bool) → void
Source
# File lib/riffer/rig/runtime/assembly.rb, line 25 def initialize(extensions, settings, allowlist, strict: false) outcomes = extensions.map { |extension| trial(extension, settings, strict) } registrars = outcomes.grep(Riffer::Rig::Registrar) #: Array[Riffer::Rig::Registrar] @failures = outcomes.grep(Riffer::Rig::Extension::Failure) #: Array[Riffer::Rig::Extension::Failure] @tools = select_tools(registrars.flat_map { |registrar| registrar.tools.to_a }.to_h.values, allowlist) @hooks = merge_hooks(registrars) @mcp_declarations = registrars.flat_map { |registrar| registrar.mcp_servers.to_a }.to_h @prompt_sections = registrars.flat_map { |registrar| registrar.prompts.to_a }.to_h @declared_settings = registrars.to_h { |registrar| [registrar.extension.to_sym, registrar.declared_settings] } .reject { |_extension, declared| declared.empty? } @settings = with_declared_defaults(settings, @declared_settings) @overrides = overrides_of(registrars) @unknown_tools = unknown_tools_of(registrars, allowlist) @extension_commands = registrars.flat_map { |registrar| registrar.commands.values } @skill_sources = registrars.flat_map(&:skill_sources) freeze end
Public Instance Methods
(Array[Riffer::Rig::Command] core, Array[Riffer::Skills::Frontmatter] skills) → Hash[String, Riffer::Rig::Command]
Source
# File lib/riffer/rig/runtime/assembly.rb, line 56 def commands(core, skills) [ *core, *skills.map { |skill| Riffer::Rig::Commands::Skill.command(skill) }, *@extension_commands ].to_h { |command| [command.name, command] } end
@rbs core: Array @rbs skills: Array @rbs return: Hash[String, Riffer::Rig::Command]
(Riffer::Rig::Runtime runtime) → Riffer::Skills::Config?
Source
# File lib/riffer/rig/runtime/assembly.rb, line 45 def skills_config(runtime) return if @skill_sources.empty? config = Riffer::Skills::Config.new config.backend(Riffer::Rig::Skills::Sources.new(@skill_sources.map { |source| source.call(runtime) })) config end
@rbs runtime: Riffer::Rig::Runtime @rbs return: Riffer::Skills::Config?