Module: Kodo

Defined in:
lib/kodo.rb,
lib/kodo/llm.rb,
lib/kodo/config.rb,
lib/kodo/daemon.rb,
lib/kodo/router.rb,
lib/kodo/message.rb,
lib/kodo/version.rb,
lib/kodo/heartbeat.rb,
lib/kodo/search/base.rb,
lib/kodo/memory/audit.rb,
lib/kodo/memory/store.rb,
lib/kodo/channels/base.rb,
lib/kodo/search/result.rb,
lib/kodo/search/tavily.rb,
lib/kodo/secrets/grant.rb,
lib/kodo/secrets/store.rb,
lib/kodo/secrets/broker.rb,
lib/kodo/memory/redactor.rb,
lib/kodo/tools/fetch_url.rb,
lib/kodo/channels/console.rb,
lib/kodo/memory/knowledge.rb,
lib/kodo/memory/reminders.rb,
lib/kodo/prompt_assembler.rb,
lib/kodo/tools/web_search.rb,
lib/kodo/web/turn_context.rb,
lib/kodo/channels/telegram.rb,
lib/kodo/memory/encryption.rb,
lib/kodo/tools/forget_fact.rb,
lib/kodo/tools/update_fact.rb,
lib/kodo/tools/recall_facts.rb,
lib/kodo/tools/set_reminder.rb,
lib/kodo/tools/store_secret.rb,
lib/kodo/tools/remember_fact.rb,
lib/kodo/tools/list_reminders.rb,
lib/kodo/web/injection_scanner.rb,
lib/kodo/tools/dismiss_reminder.rb,
lib/kodo/tools/get_current_time.rb,
lib/kodo/tools/prompt_contributor.rb

Defined Under Namespace

Modules: Channels, LLM, Memory, Search, Secrets, Tools, Web Classes: Config, Daemon, Error, Heartbeat, Message, PromptAssembler, Router

Constant Summary collapse

VERSION =
"0.2.3"

Class Method Summary collapse

Class Method Details

.config ⇒ Object



29
30
31
# File 'lib/kodo.rb', line 29

def config
  @config ||= Config.load
end

.home_dir ⇒ Object



25
26
27
# File 'lib/kodo.rb', line 25

def home_dir
  @home_dir ||= File.join(Dir.home, ".kodo")
end

.loader ⇒ Object



10
11
12
13
14
15
16
17
18
19
# File 'lib/kodo.rb', line 10

def loader
  @loader ||= begin
    loader = Zeitwerk::Loader.new
    loader.push_dir(File.join(__dir__))
    loader.inflector.inflect("llm" => "LLM")
    loader.ignore(File.join(__dir__, "kodo", "version.rb"))
    loader.setup
    loader
  end
end

.logger ⇒ Object



33
34
35
36
37
38
# File 'lib/kodo.rb', line 33

def logger
  @logger ||= begin
    require "logger"
    Logger.new($stdout, level: config.log_level)
  end
end

.root ⇒ Object



21
22
23
# File 'lib/kodo.rb', line 21

def root
  @root ||= File.expand_path("..", __dir__)
end