class Riffer::Rig::Settings::Document
Attributes
autoload
[R]
bool
catalog_files
[R]
Array[String]
disabled
[R]
Array[String]
model
[R]
String?
@dynamic model, reasoning, catalog_files, providers, disabled, autoload, native_tools, save, reload
native_tools
[R]
Hash[Symbol, bool | Hash[Symbol, untyped]]
providers
[R]
Hash[String, Hash[String, String]]
reasoning
[R]
String?
reload
[R]
:auto | :manual
save
[R]
bool
Public Class Methods
(Hash[Symbol, untyped] source) → void
Source
# File lib/riffer/rig/settings/document.rb, line 17 def initialize(source) @model = source[:model].is_a?(String) ? source[:model] : nil @reasoning = source[:reasoning].is_a?(String) ? source[:reasoning] : nil paths = source[:catalog_files] no_files = [] #: Array[String] @catalog_files = paths.is_a?(Array) && paths.all?(String) ? paths.dup.freeze : no_files.freeze @providers = hash_or_empty(source[:providers]).filter_map do |identifier, fields| if fields.is_a?(Hash) [identifier.to_s, fields.select do |_name, value| value.is_a?(String) end.transform_keys(&:to_s)] end end.to_h.freeze disabled = hash_or_empty(source[:extensions])[:disabled] names = disabled.is_a?(Array) ? disabled.grep(String) : [] #: Array[String] @disabled = names.freeze @autoload = hash_or_empty(source[:extensions])[:autoload] == true @save = hash_or_empty(source[:sessions])[:save] != false @reload = source[:reload] == 'manual' ? :manual : :auto @native_tools = hash_or_empty(hash_or_empty(source[:tools])[:native]) .select { |_tool, switch| switch == true || switch.is_a?(Hash) } .transform_keys(&:to_sym).freeze freeze end
@rbs source: Hash[Symbol, untyped] @rbs return: void