Module: OllamaAgent

Defined in:
lib/ollama_agent.rb,
lib/ollama_agent/cli.rb,
lib/ollama_agent/tui.rb,
lib/ollama_agent/agent.rb,
lib/ollama_agent/errors.rb,
lib/ollama_agent/runner.rb,
lib/ollama_agent/console.rb,
lib/ollama_agent/version.rb,
lib/ollama_agent/cli/repl.rb,
lib/ollama_agent/model_env.rb,
lib/ollama_agent/repo_list.rb,
lib/ollama_agent/env_config.rb,
lib/ollama_agent/patch_risk.rb,
lib/ollama_agent/ruby_index.rb,
lib/ollama_agent/tools/base.rb,
lib/ollama_agent/core/budget.rb,
lib/ollama_agent/llm/planner.rb,
lib/ollama_agent/runtime/wal.rb,
lib/ollama_agent/skills/base.rb,
lib/ollama_agent/think_param.rb,
lib/ollama_agent/user_prompt.rb,
lib/ollama_agent/agent_prompt.rb,
lib/ollama_agent/cli/tui_repl.rb,
lib/ollama_agent/path_sandbox.rb,
lib/ollama_agent/tool_runtime.rb,
lib/ollama_agent/tools_schema.rb,
lib/ollama_agent/global_dotenv.rb,
lib/ollama_agent/patch_support.rb,
lib/ollama_agent/prompt_skills.rb,
lib/ollama_agent/session/store.rb,
lib/ollama_agent/skills/runner.rb,
lib/ollama_agent/timeout_param.rb,
lib/ollama_agent/memory/manager.rb,
lib/ollama_agent/plugins/loader.rb,
lib/ollama_agent/providers/base.rb,
lib/ollama_agent/providers/base.rb,
lib/ollama_agent/search_backend.rb,
lib/ollama_agent/tool_arguments.rb,
lib/ollama_agent/tools/registry.rb,
lib/ollama_agent/agent/turn_loop.rb,
lib/ollama_agent/cli/repl_shared.rb,
lib/ollama_agent/context/manager.rb,
lib/ollama_agent/runtime/sandbox.rb,
lib/ollama_agent/sandboxed_tools.rb,
lib/ollama_agent/session/session.rb,
lib/ollama_agent/skills/registry.rb,
lib/ollama_agent/streaming/hooks.rb,
lib/ollama_agent/tools/git_tools.rb,
lib/ollama_agent/topology/linker.rb,
lib/ollama_agent/tui_user_prompt.rb,
lib/ollama_agent/memory/long_term.rb,
lib/ollama_agent/plugins/registry.rb,
lib/ollama_agent/providers/ollama.rb,
lib/ollama_agent/providers/openai.rb,
lib/ollama_agent/providers/router.rb,
lib/ollama_agent/ruby_index/index.rb,
lib/ollama_agent/runtime/policies.rb,
lib/ollama_agent/state/reconciler.rb,
lib/ollama_agent/tools/http_tools.rb,
lib/ollama_agent/topology/ir/node.rb,
lib/ollama_agent/tui_slash_reader.rb,
lib/ollama_agent/chat_stream_carry.rb,
lib/ollama_agent/cli/skill_command.rb,
lib/ollama_agent/core/trace_logger.rb,
lib/ollama_agent/memory/short_term.rb,
lib/ollama_agent/ollama_connection.rb,
lib/ollama_agent/ruby_index/naming.rb,
lib/ollama_agent/ruby_search_modes.rb,
lib/ollama_agent/runtime/cas_guard.rb,
lib/ollama_agent/runtime/compactor.rb,
lib/ollama_agent/skills/llm_client.rb,
lib/ollama_agent/state/tree_digest.rb,
lib/ollama_agent/tool_runtime/loop.rb,
lib/ollama_agent/tool_runtime/tool.rb,
lib/ollama_agent/tools/shell_tools.rb,
lib/ollama_agent/agent/agent_config.rb,
lib/ollama_agent/cli/health_command.rb,
lib/ollama_agent/core/loop_detector.rb,
lib/ollama_agent/llm/planner_schema.rb,
lib/ollama_agent/providers/registry.rb,
lib/ollama_agent/ruby_index/builder.rb,
lib/ollama_agent/runtime/blob_store.rb,
lib/ollama_agent/runtime/saga_state.rb,
lib/ollama_agent/tools/memory_tools.rb,
lib/ollama_agent/agent/client_wiring.rb,
lib/ollama_agent/agent/prompt_wiring.rb,
lib/ollama_agent/agent_root_resolver.rb,
lib/ollama_agent/diff_path_validator.rb,
lib/ollama_agent/llm/context_builder.rb,
lib/ollama_agent/providers/anthropic.rb,
lib/ollama_agent/runtime/cost_ledger.rb,
lib/ollama_agent/runtime/event_store.rb,
lib/ollama_agent/runtime/permissions.rb,
lib/ollama_agent/tool_content_parser.rb,
lib/ollama_agent/tool_runtime/memory.rb,
lib/ollama_agent/agent/session_wiring.rb,
lib/ollama_agent/core/action_envelope.rb,
lib/ollama_agent/llm/anthropic_client.rb,
lib/ollama_agent/ollama_cloud_catalog.rb,
lib/ollama_agent/providers/credential.rb,
lib/ollama_agent/ruby_index/formatter.rb,
lib/ollama_agent/runtime/lock_manager.rb,
lib/ollama_agent/state/ast_summarizer.rb,
lib/ollama_agent/state/reentry_packet.rb,
lib/ollama_agent/topology/linker/link.rb,
lib/ollama_agent/context/token_counter.rb,
lib/ollama_agent/core/schema_validator.rb,
lib/ollama_agent/external_agents/probe.rb,
lib/ollama_agent/indexing/file_indexer.rb,
lib/ollama_agent/indexing/repo_scanner.rb,
lib/ollama_agent/llm/first_json_object.rb,
lib/ollama_agent/memory/session_memory.rb,
lib/ollama_agent/providers/rate_window.rb,
lib/ollama_agent/runtime/approval_gate.rb,
lib/ollama_agent/runtime/kernel_bridge.rb,
lib/ollama_agent/runtime/kernel_health.rb,
lib/ollama_agent/runtime/logical_clock.rb,
lib/ollama_agent/skills/debug_engineer.rb,
lib/ollama_agent/skills/json_extractor.rb,
lib/ollama_agent/tool_runtime/executor.rb,
lib/ollama_agent/tool_runtime/registry.rb,
lib/ollama_agent/tools/safe_calculator.rb,
lib/ollama_agent/topology/staged_graph.rb,
lib/ollama_agent/topology/symbol_graph.rb,
lib/ollama_agent/agent/chat_coordinator.rb,
lib/ollama_agent/external_agents/runner.rb,
lib/ollama_agent/runtime/atomic_mutator.rb,
lib/ollama_agent/runtime/execution_mode.rb,
lib/ollama_agent/runtime/kernel_feature.rb,
lib/ollama_agent/self_improvement/modes.rb,
lib/ollama_agent/skills/feature_builder.rb,
lib/ollama_agent/tools/built_in_schemas.rb,
lib/ollama_agent/topology/ir/class_node.rb,
lib/ollama_agent/topology/ir/route_node.rb,
lib/ollama_agent/indexing/context_packer.rb,
lib/ollama_agent/providers/quota_tracker.rb,
lib/ollama_agent/resilience/audit_logger.rb,
lib/ollama_agent/resilience/retry_policy.rb,
lib/ollama_agent/ruby_index_tool_support.rb,
lib/ollama_agent/runtime/kernel_pipeline.rb,
lib/ollama_agent/runtime/schema_migrator.rb,
lib/ollama_agent/security/resource_guard.rb,
lib/ollama_agent/state/git_changed_paths.rb,
lib/ollama_agent/tool_runtime/supervisor.rb,
lib/ollama_agent/topology/ir/module_node.rb,
lib/ollama_agent/topology/ir/worker_node.rb,
lib/ollama_agent/topology/linker/extract.rb,
lib/ollama_agent/topology/linker/resolve.rb,
lib/ollama_agent/external_agents/registry.rb,
lib/ollama_agent/indexing/diff_summarizer.rb,
lib/ollama_agent/llm/think_block_stripper.rb,
lib/ollama_agent/providers/health_monitor.rb,
lib/ollama_agent/providers/model_registry.rb,
lib/ollama_agent/runtime/compactor_runner.rb,
lib/ollama_agent/runtime/file_atomic_swap.rb,
lib/ollama_agent/runtime/kernel_tool_seed.rb,
lib/ollama_agent/runtime/rollback_signals.rb,
lib/ollama_agent/runtime/saga_coordinator.rb,
lib/ollama_agent/security/ownership_index.rb,
lib/ollama_agent/topology/ir/concern_node.rb,
lib/ollama_agent/topology/linker/validate.rb,
lib/ollama_agent/topology/symbol_identity.rb,
lib/ollama_agent/llm/cloud_fallback_router.rb,
lib/ollama_agent/providers/credential_pool.rb,
lib/ollama_agent/runtime/database_registry.rb,
lib/ollama_agent/runtime/execution_context.rb,
lib/ollama_agent/runtime/fencing_allocator.rb,
lib/ollama_agent/runtime/integration_queue.rb,
lib/ollama_agent/runtime/intent_translator.rb,
lib/ollama_agent/runtime/permission_bridge.rb,
lib/ollama_agent/self_improvement/analyzer.rb,
lib/ollama_agent/self_improvement/improver.rb,
lib/ollama_agent/tools/filesystem_explorer.rb,
lib/ollama_agent/topology/ir/callback_node.rb,
lib/ollama_agent/topology/linker/aggregate.rb,
lib/ollama_agent/topology/linker/discovery.rb,
lib/ollama_agent/providers/error_classifier.rb,
lib/ollama_agent/providers/model_descriptor.rb,
lib/ollama_agent/runtime/criticality_policy.rb,
lib/ollama_agent/runtime/execution_manifest.rb,
lib/ollama_agent/runtime/intent_reservation.rb,
lib/ollama_agent/runtime/isolated_validator.rb,
lib/ollama_agent/runtime/unified_diff_apply.rb,
lib/ollama_agent/runtime_command_system/ast.rb,
lib/ollama_agent/streaming/console_streamer.rb,
lib/ollama_agent/synthesis/integration_scan.rb,
lib/ollama_agent/tool_runtime/tool_registry.rb,
lib/ollama_agent/topology/class_node_merger.rb,
lib/ollama_agent/chat_stream_thinking_format.rb,
lib/ollama_agent/external_agents/argv_interp.rb,
lib/ollama_agent/external_agents/env_helpers.rb,
lib/ollama_agent/ollama_chat_thinking_stream.rb,
lib/ollama_agent/providers/credential_router.rb,
lib/ollama_agent/resilience/retry_middleware.rb,
lib/ollama_agent/runtime/compensation_engine.rb,
lib/ollama_agent/runtime/kernel_event_logger.rb,
lib/ollama_agent/runtime/mutation_classifier.rb,
lib/ollama_agent/sandboxed_tools/search_text.rb,
lib/ollama_agent/security/ownership_compiler.rb,
lib/ollama_agent/state/workspace_fingerprint.rb,
lib/ollama_agent/synthesis/route_synthesizer.rb,
lib/ollama_agent/tool_runtime/json_extractor.rb,
lib/ollama_agent/tool_runtime/plan_extractor.rb,
lib/ollama_agent/topology/zeitwerk_inflector.rb,
lib/ollama_agent/gemma_thought_content_parser.rb,
lib/ollama_agent/ruby_index/extractor_visitor.rb,
lib/ollama_agent/runtime/saga_recovery_daemon.rb,
lib/ollama_agent/runtime/workspace_wal_replay.rb,
lib/ollama_agent/skills/performance_optimizer.rb,
lib/ollama_agent/runtime/compensation_manifest.rb,
lib/ollama_agent/synthesis/sidekiq_synthesizer.rb,
lib/ollama_agent/topology/signature_normalizer.rb,
lib/ollama_agent/external_agents/path_validator.rb,
lib/ollama_agent/skills/architecture_refactorer.rb,
lib/ollama_agent/external_agents/delegate_logger.rb,
lib/ollama_agent/runtime/post_condition_verifier.rb,
lib/ollama_agent/sandboxed_tools/file_read_write.rb,
lib/ollama_agent/synthesis/event_schema_registry.rb,
lib/ollama_agent/synthesis/integration_extractor.rb,
lib/ollama_agent/runtime/kernel_pipeline_assembly.rb,
lib/ollama_agent/tool_runtime/ollama_json_planner.rb,
lib/ollama_agent/topology/ir/event_publisher_node.rb,
lib/ollama_agent/topology/staged_graph/symbol_ids.rb,
lib/ollama_agent/runtime_command_system/completers.rb,
lib/ollama_agent/runtime_command_system/ghost_text.rb,
lib/ollama_agent/runtime_command_system/suggestion.rb,
lib/ollama_agent/sandboxed_tools/delegate_external.rb,
lib/ollama_agent/runtime_command_system/input_buffer.rb,
lib/ollama_agent/runtime_command_system/session/events.rb,
lib/ollama_agent/security/ownership_compile_validators.rb,
lib/ollama_agent/self_improvement/ruby_mastery_context.rb,
lib/ollama_agent/runtime_command_system/command_palette.rb,
lib/ollama_agent/runtime_command_system/session/runtime.rb,
lib/ollama_agent/security/ownership_rule_tree_flattener.rb,
lib/ollama_agent/external_agents/delegate_timeout_status.rb,
lib/ollama_agent/runtime_command_system/command_registry.rb,
lib/ollama_agent/runtime_command_system/interactive_menu.rb,
lib/ollama_agent/runtime_command_system/suggestion_engine.rb,
lib/ollama_agent/synthesis/integration_extractor/concerns.rb,
lib/ollama_agent/runtime_command_system/dispatch/dispatcher.rb,
lib/ollama_agent/topology/extractors/ruby_semantic_extractor.rb,
lib/ollama_agent/runtime_command_system/dispatch/handlers/model_handler.rb,
lib/ollama_agent/topology/extractors/ruby_semantic_extractor/navigation.rb,
lib/ollama_agent/topology/extractors/ruby_semantic_extractor/concern_body.rb,
lib/ollama_agent/runtime_command_system/dispatch/handlers/provider_handler.rb,
lib/ollama_agent/topology/extractors/ruby_semantic_extractor/mixin_dispatch.rb,
lib/ollama_agent/topology/extractors/ruby_semantic_extractor/parameter_list.rb,
lib/ollama_agent/topology/extractors/ruby_semantic_extractor/ir_nodes_emitter.rb,
lib/ollama_agent/topology/extractors/ruby_semantic_extractor/semantic_context.rb

Overview

ollama-client streams ‘message.content` via hooks but only appends `message.thinking` to a buffer. Forward thinking deltas so the CLI can render reasoning separately (Cursor-like).

Gemma 4 (especially cloud) often leaves reasoning inside message.content (channel / redacted tags) instead of message.thinking; see GemmaThoughtContentParser.

Defined Under Namespace

Modules: AgentPrompt, AgentRootResolver, ChatStreamCarry, ChatStreamThinkingFormat, Console, Context, Core, EnvConfig, ExternalAgents, GemmaThoughtContentParser, GlobalDotenv, Indexing, LLM, Memory, ModelEnv, OllamaChatThinkingStreamPatch, OllamaCloudCatalog, OllamaConnection, PatchRisk, PatchSupport, PathSandbox, Plugins, PromptSkills, Providers, RepoList, Resilience, RubyIndex, RubyIndexToolSupport, RubySearchModes, Runtime, RuntimeCommandSystem, SandboxedTools, SearchBackend, Security, SelfImprovement, Session, Skills, SlashCompletion, State, Streaming, Synthesis, ThinkParam, TimeoutParam, ToolArguments, ToolContentParser, ToolRuntime, Tools, Topology Classes: Agent, AnthropicAPIError, AuthenticationError, BlobIntegrityFault, BlobNotFound, BudgetExceeded, CLI, ConfigurationError, DiffPathValidator, EmptyAssistantMessageError, EmptyModelNameError, Error, LocalModelListError, NoAvailableCredentialError, PermissionConflictError, QuotaExhaustedError, RateLimitError, Runner, SubscriptionRequiredError, TUI, TemporaryProviderError, TuiSlashReader, TuiUserPrompt, UserPrompt

Constant Summary collapse

VERSION =
"1.0.1"
TOOLS =
Tools::BuiltInSchemas::CORE_TOOLS
READ_ONLY_TOOLS =
Tools::BuiltInSchemas::READ_ONLY_TOOLS
ORCHESTRATOR_LIST_TOOL =
Tools::BuiltInSchemas::ORCHESTRATOR_LIST_TOOL
ORCHESTRATOR_DELEGATE_TOOL =
Tools::BuiltInSchemas::ORCHESTRATOR_DELEGATE_TOOL
ORCHESTRATOR_TOOLS =
Tools::BuiltInSchemas::ORCHESTRATOR_TOOLS
ORCHESTRATOR_READ_ONLY_TOOLS =
Tools::BuiltInSchemas::ORCHESTRATOR_READ_ONLY_TOOLS
ORCHESTRATOR_TOOLS_SCHEMA_VERSION =
Tools::BuiltInSchemas::ORCHESTRATOR_TOOLS_SCHEMA_VERSION

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.loggerObject



158
159
160
# File 'lib/ollama_agent.rb', line 158

def self.logger
  @logger ||= Logger.new($stderr, progname: "ollama_agent", level: Logger::INFO)
end

Class Method Details

.gem_rootObject



162
163
164
# File 'lib/ollama_agent.rb', line 162

def self.gem_root
  File.expand_path("..", __dir__)
end

.run(query, root: Dir.pwd) ⇒ Object

Convenience: build a runner with the recommended defaults.

Examples:

OllamaAgent.run("Refactor the auth module", root: "/my/project")


170
171
172
# File 'lib/ollama_agent.rb', line 170

def self.run(query, root: Dir.pwd, **)
  Runner.build(root: root, **).run(query)
end

.seed_kernel_tools(registry:, pipeline:) ⇒ Object

Registers default phase-scoped kernel tools on a OllamaAgent::ToolRuntime::ToolRegistry.



175
176
177
# File 'lib/ollama_agent.rb', line 175

def self.seed_kernel_tools(registry:, pipeline:)
  Runtime::KernelToolSeed.seed(tool_registry: registry, kernel_pipeline: pipeline)
end

.tools_for(read_only:, orchestrator:) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/ollama_agent/tools_schema.rb', line 15

def self.tools_for(read_only:, orchestrator:)
  Tools::BuiltInSchemas.tools_for(
    read_only: read_only,
    orchestrator: orchestrator,
    custom_schemas: Tools::Registry.custom_schemas
  )
end