Module: Legion::CLI::Chat::ToolRegistry

Defined in:
lib/legion/cli/chat/tool_registry.rb

Constant Summary collapse

BUILTIN_TOOLS =
if defined?(Tools::ReadFile)
  [
    Tools::ReadFile,
    Tools::WriteFile,
    Tools::EditFile,
    Tools::SearchFiles,
    Tools::SearchContent,
    Tools::RunCommand,
    Tools::SaveMemory,
    Tools::SearchMemory,
    Tools::WebSearch,
    Tools::SpawnAgent,
    Tools::SearchTraces,
    Tools::QueryKnowledge,
    Tools::IngestKnowledge,
    Tools::ConsolidateMemory,
    Tools::RelateKnowledge,
    Tools::KnowledgeMaintenance,
    Tools::KnowledgeStats,
    Tools::SummarizeTraces,
    Tools::ListExtensions,
    Tools::ManageTasks,
    Tools::SystemStatus,
    Tools::ViewEvents,
    Tools::CostSummary,
    Tools::Reflect,
    Tools::ManageSchedules,
    Tools::WorkerStatus,
    Tools::DetectAnomalies,
    Tools::ViewTrends,
    Tools::TriggerDream,
    Tools::GenerateInsights,
    Tools::BudgetStatus,
    Tools::ProviderHealth,
    Tools::ModelComparison,
    Tools::ShadowEvalStatus,
    Tools::EntityExtract,
    Tools::ArbitrageStatus,
    Tools::EscalationStatus,
    Tools::GraphExplore,
    Tools::SchedulingStatus,
    Tools::MemoryStatus
  ].freeze
else
  [].freeze
end

Class Method Summary collapse

Class Method Details

.all_toolsObject



111
112
113
114
115
116
117
# File 'lib/legion/cli/chat/tool_registry.rb', line 111

def self.all_tools
  require 'legion/cli/chat/extension_tool_loader'
  builtin_tools + ExtensionToolLoader.discover
rescue LoadError => e
  Legion::Logging.debug("ToolRegistry#all_tools ExtensionToolLoader not available: #{e.message}") if defined?(Legion::Logging)
  builtin_tools
end

.builtin_toolsObject



107
108
109
# File 'lib/legion/cli/chat/tool_registry.rb', line 107

def self.builtin_tools
  BUILTIN_TOOLS.dup
end