Module: OllamaAgent::ExternalAgents::PathValidator

Defined in:
lib/ollama_agent/external_agents/path_validator.rb

Overview

Ensures paths stay under a project root (expanded, absolute).

Class Method Summary collapse

Class Method Details

.validate_within_root!(root, paths) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/ollama_agent/external_agents/path_validator.rb', line 8

def validate_within_root!(root, paths)
  root = File.expand_path(root)
  Array(paths).each do |p|
    next if p.to_s.strip.empty?

    abs = File.expand_path(p, root)
    next if within_root?(abs, root)

    warn "ollama_agent: PathValidator rejected path outside project root (#{p.inspect})" if ENV["OLLAMA_AGENT_DEBUG"] == "1"
    raise ArgumentError, "path outside project root"
  end
end

.within_root?(absolute_path, expanded_root) ⇒ Boolean

Both arguments should already be expanded absolute paths (e.g. from Pathname or File.expand_path).

Returns:

  • (Boolean)


22
23
24
25
26
# File 'lib/ollama_agent/external_agents/path_validator.rb', line 22

def within_root?(absolute_path, expanded_root)
  expanded_root = File.expand_path(expanded_root)
  abs = absolute_path.to_s
  abs == expanded_root || abs.start_with?(expanded_root + File::SEPARATOR)
end