Class: Ace::Lint::Atoms::AllowedToolsValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/ace/lint/atoms/allowed_tools_validator.rb

Overview

Validates allowed-tools entries against known tools list Handles both simple tool names and Bash(prefix:*) patterns

Constant Summary collapse

BASH_PATTERN_REGEX =

Pattern to match Bash(prefix:*) format e.g., “Bash(ace-git:*)”, “Bash(npm:*)”

/\ABash\(([^:]+):\*\)\z/

Class Method Summary collapse

Class Method Details

.validate(tools, known_tools:, known_bash_prefixes:) ⇒ Array<Hash>

Validate allowed-tools array

Parameters:

  • tools (Array<String>, String)

    Tool entries to validate

  • known_tools (Array<String>)

    List of known tool names

  • known_bash_prefixes (Array<String>)

    List of known Bash command prefixes

Returns:

  • (Array<Hash>)

    List of validation errors with :tool and :message



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/ace/lint/atoms/allowed_tools_validator.rb', line 19

def validate(tools, known_tools:, known_bash_prefixes:)
  errors = []

  # Handle string format (comma-separated)
  tools_array = normalize_tools(tools)

  tools_array.each do |tool|
    tool = tool.to_s.strip
    next if tool.empty?

    error = validate_single_tool(tool, known_tools, known_bash_prefixes)
    errors << error if error
  end

  errors
end