Reference
API Reference
Generated from the source with RDoc. 74 classes and 56 modules.
Brute
Brute— Module Brute.Brute::Compaction— Giving up part of a conversation so the rest still fits.Brute::Compaction::Middleware— Compaction strategies, as the layers of a Brute::Turn::CompactionPipeline.Brute::Compaction::Middleware::SlidingWindow— When rewriting the tool output was not enough, whole stretches of the conversation go.Brute::Compaction::Middleware::Strategy— One strategy in the ladder.Brute::Compaction::Middleware::ToolResults— The cheapest thing to give up first: what the tools said.Brute::Compaction::Summarize— Replaces stretches of the conversation with summaries of them, round after round, until it fits or there is nothing left it is allowed to give up.Brute::Compaction::Transcript— The shapes a compaction strategy selects over.Brute::Completion— Completion middlewares — the terminal step of an agent turn.Brute::Completion::LLMrb— Completion backed by the llm.rb gem (https://github.com/llmrb/llm.rb).Brute::Completion::LangChain— Completion backed by the langchainrb gem (https://github.com/patterns-ai-core/langchainrb).Brute::Completion::OpenRouter— Class Brute::Completion::OpenRouter.Brute::Completion::RubyLLM— Completion backed by the ruby_llm gem.Brute::Completion::RubyLLM::Tool— A Brute tool adapter wearing the interface ruby_llm’s providers read off a RubyLLM::Tool: name, description, and a params_schema (they fall back to #paramete…Brute::Contrib— Module Brute::Contrib.Brute::Contrib::LogFile— A line-oriented, append-only log file that doubles as a work queue.Brute::Contrib::Otel— OpenTelemetry for a turn, as hooks rather than middleware.Brute::Diff— Module Brute::Diff.Brute::Env— What the turn came back with, asked of the env itself.Brute::Eval— Evaluating an agent, rather than testing a middleware.Brute::Eval::Case— One evaluation case: what the agent is told, the world it is told it in, and what must be true of the turn afterwards.Brute::Eval::Suite— Runs the cases against one agent and reports what happened.Brute::Eval::Transcript— What one turn did.Brute::Eval::World— The world a case wakes up in.Brute::Events— @namespaceBrute::Events::Handler— Stackable event handler base class.Brute::Events::PrefixedTerminalOutput— TerminalOutput variant that prefixes all output with a label.Brute::Events::TerminalOutput— Class Brute::Events::TerminalOutput.Brute::Hooks— Pub/sub registry for agent lifecycle hooks, subscribed on the builder:Brute::Hooks::Registry— The pub/sub registry a pipeline owns; use and run bind an emit to it.Brute::Hooks::Trace— The env, wrapped, for as long as one call lasts.Brute::MessageTransport— Class Brute::MessageTransport.Brute::MessageTransport::Anthropic— MessageTransport for the official anthropic gem (https://github.com/anthropics/anthropic-sdk-ruby).Brute::MessageTransport::LLM— MessageTransport for the llm.rb gem (https://github.com/llmrb/llm.rb).Brute::MessageTransport::LangChain— MessageTransport for the langchainrb gem.Brute::MessageTransport::OpenAI— MessageTransport for the official openai gem (https://github.com/openai/openai-ruby).Brute::MessageTransport::OpenRouter— MessageTransport for the open_router_enhanced gem (https://github.com/estiens/open_router_enhanced).Brute::MessageTransport::RubyLLM— MessageTransport for the ruby_llm gem (https://github.com/crmne/ruby_llm).Brute::MessageTransport::RubyLLM::V1— ruby_llm 1.x.Brute::MessageTransport::RubyLLM::V2— ruby_llm 2.0 and later.Brute::MessageTransport::RubyOpenAI— Class Brute::MessageTransport::RubyOpenAI.Brute::Messages— The in-memory conversation log is just a plain Array of Brute::Message.Brute::Middleware— Module Brute::Middleware.Brute::Middleware::Base— The parent of every middleware: it takes the next app, does its work around it, and calls it.Brute::Middleware::Checkpoint— Durable execution for the tool loop.Brute::Middleware::DefaultCompactionPipeline— Compacts the conversation once it fills too much of the model’s window.Brute::Middleware::DefaultCompactionPipeline::Declines— The floor of a pipeline given nothing to summarise with: what the free layers managed is what the turn gets.Brute::Middleware::DefaultToolPipeline— Class Brute::Middleware::DefaultToolPipeline.Brute::Middleware::Loop— Re-invokes the inner stack as long as a condition holds — a generic loop over a turn.Brute::Middleware::Loop::BackgroundJobs— Keeps the turn alive while background jobs are running.Brute::Middleware::Loop::ToolResult— Loops while the LLM keeps producing tool results — the standard agentic turn loop.Brute::Middleware::MaxIterations— Guards against runaway tool loops by capping the number of iterations.Brute::Middleware::Question— Class Brute::Middleware::Question.Brute::Middleware::SessionLog— The “session” is just a JSONL log of the conversation on disk.Brute::Middleware::Skills— Loads skill objects into the agent context.Brute::Middleware::SlashCommands— The head of every agent chain, put there by the builder itself rather than by a use anyone writes.Brute::Middleware::Summarize— Runs a final tool-free LLM call after the Loop::ToolResult completes, ensuring the agent produces a clean summary response.Brute::Middleware::SystemPrompt— Prepends a system message to env[:messages] before passing control down the middleware chain.Brute::Middleware::UserQueue— Class Brute::Middleware::UserQueue.Brute::PromptTemplate— An ERB-backed system-prompt object for Middleware::SystemPrompt — the open alternative to Brute::SystemPrompt’s built-in section stacks.Brute::Prompts— Module Brute::Prompts.Brute::Prompts::Autonomy— Module Brute::Prompts::Autonomy.Brute::Prompts::BuildSwitch— Module Brute::Prompts::BuildSwitch.Brute::Prompts::CodeReferences— Module Brute::Prompts::CodeReferences.Brute::Prompts::CodeStyle— Module Brute::Prompts::CodeStyle.Brute::Prompts::Context— Template context handed to ERB templates.Brute::Prompts::Conventions— Module Brute::Prompts::Conventions.Brute::Prompts::DoingTasks— Module Brute::Prompts::DoingTasks.Brute::Prompts::EditingApproach— Module Brute::Prompts::EditingApproach.Brute::Prompts::EditingConstraints— Module Brute::Prompts::EditingConstraints.Brute::Prompts::Environment— Module Brute::Prompts::Environment.Brute::Prompts::FrontendTasks— Module Brute::Prompts::FrontendTasks.Brute::Prompts::GitSafety— Module Brute::Prompts::GitSafety.Brute::Prompts::Identity— Module Brute::Prompts::Identity.Brute::Prompts::Instructions— Module Brute::Prompts::Instructions.Brute::Prompts::MaxSteps— Module Brute::Prompts::MaxSteps.Brute::Prompts::Objectivity— Module Brute::Prompts::Objectivity.Brute::Prompts::PlanReminder— Module Brute::Prompts::PlanReminder.Brute::Prompts::Proactiveness— Module Brute::Prompts::Proactiveness.Brute::Prompts::SecurityAndSafety— Module Brute::Prompts::SecurityAndSafety.Brute::Prompts::Skills— The <available_skills> system-prompt section.Brute::Prompts::TaskManagement— Module Brute::Prompts::TaskManagement.Brute::Prompts::ToneAndStyle— Module Brute::Prompts::ToneAndStyle.Brute::Prompts::ToolUsage— Module Brute::Prompts::ToolUsage.Brute::Rack— The mirror image of protocol-rack.Brute::Rack::Adapter— Class Brute::Rack::Adapter.Brute::Skill— A single skill: metadata plus the address of its SKILL.md on disk.Brute::SystemPrompt— Deferred system prompt builder.Brute::TokenCounter— How big a conversation is, in tokens.Brute::TokenCounter::Approximate— Tokens from text length, at a flat ratio of characters to tokens.Brute::TokenCounter::Rendering— The text a counter measures.Brute::TokenCounter::Tiktoken— Tokens from OpenAI’s byte-pair encoder, through the tiktoken_ruby gem.Brute::Tool— Base class for Brute’s built-in tools — a tiny, framework-agnostic tool DSL.Brute::Tools— Module Brute::Tools.Brute::Tools::Adapter— Normalizes any tool shape into one neutral interface so the rest of Brute never has to care which tools library (if any) a tool was written with.Brute::Tools::FS— @namespace — @namespaceBrute::Tools::FS::FileMutationQueue— Per-file serialization queue for concurrent tool execution.Brute::Tools::FS::SnapshotStore— Per-path stack of file snapshots used by fs_write, fs_patch, fs_remove to enable undo.Brute::Tools::FSPatch— Class Brute::Tools::FSPatch.Brute::Tools::FSRead— Existing features (ref: opencode read tool):Brute::Tools::FSRemove— Class Brute::Tools::FSRemove.Brute::Tools::FSSearch— Existing features (ref: opencode grep tool):Brute::Tools::FSUndo— Class Brute::Tools::FSUndo.Brute::Tools::FSWrite— Class Brute::Tools::FSWrite.Brute::Tools::NetFetch— Class Brute::Tools::NetFetch.Brute::Tools::Question— Class Brute::Tools::Question.Brute::Tools::Shell— Existing features (ref: opencode bash tool):Brute::Tools::SkillLoad— The skill tool — stages 2 (activation) and 3 (execution) of the Agent Skills progressive-disclosure lifecycle (https://agentskills.io).Brute::Tools::SubAgent— A SubAgent is an Agent that exposes a tool-shaped facade so it can be dropped into another agent’s tools list.Brute::Tools::TodoList— @namespaceBrute::Tools::TodoList::Store— In-memory todo list storage.Brute::Tools::TodoRead— Class Brute::Tools::TodoRead.Brute::Tools::TodoWrite— Class Brute::Tools::TodoWrite.Brute::Truncation— Universal tool output truncation.Brute::Turn— Module Brute::Turn.Brute::Turn::AgentPipeline— agent = Brute.agent # => AgentPipelineBrute::Turn::CompactionPipeline— A compactor built out of middleware.Brute::Turn::Pipeline— Class Brute::Turn::Pipeline.Brute::Turn::Pipeline::Chainable— Module Brute::Turn::Pipeline::Chainable.Brute::Turn::ToolPipeline— A ToolPipeline runs a tool call through a middleware stack.Brute::UsageDetection— What the provider reported, normalised.Brute::UsageDetection::LLMrb— llm.rb models usage as its own LLM::Usage value object.Brute::UsageDetection::LangChain— langchainrb has no single usage object: each provider’s response subclass answers prompt_tokens / completion_tokens / total_tokens by digging its own raw sha…Brute::UsageDetection::OpenRouter— OpenRouter reports usage as the provider’s raw hash on the response, in OpenAI’s wire shape.Brute::UsageDetection::RubyLLM— ruby_llm hangs usage off the message, not the response: a Tokens object with input/output/cache_read/cache_write/thinking, plus the provider’s own reported_c…
BruteCLI
BruteCLI— Module BruteCLI.BruteCLI::Providers— Module BruteCLI::Providers.BruteCLI::Providers::Shell— A pseudo-LLM provider that executes user input as code via the existing Brute::Tools::Shell tool.BruteCLI::Providers::Shell::ModelList— Minimal object that quacks like provider.models so the REPL’s fetch_models can call provider.models.all.select(&:chat?).BruteCLI::Providers::ShellResponse— Synthetic completion response returned by Brute::Providers::Shell.