lib/ruby_conversations.rb
# frozen_string_literal: true require 'zeitwerk' require 'ruby_conversations/version' require 'ruby_conversations/configuration' require 'ruby_conversations/errors' require 'ruby_conversations/client' require 'ruby_conversations/aws_credential_provider' require 'ruby_llm' # Main module for RubyConversations module RubyConversations class << self attr_writer :configuration def configuration @configuration ||= Configuration.new end def configure yield(configuration) end def client @client ||= build_client end def reset! @configuration = nil @client = nil end private def build_client configuration.validate! Client.new( url: configuration.api_url, jwt_secret: configuration.jwt_secret ) end end end # Set up Zeitwerk autoloading loader = Zeitwerk::Loader.new loader.push_dir("#{__dir__}/../app/models") loader.setup