class Analyzer::AI::Unified

Overview

Unified AI analyzer that uses a provider-agnostic LLM adapter. Supports both OpenAI-compatible APIs and Ollama.

Defined in:

analyzer/analyzers/llm_analyzers/unified_ai.cr

Constant Summary

AGENT_CONTEXT_MAX_CHARS = 100 * 1024
AGENT_CONTEXT_MAX_DYNAMIC_MESSAGES = 16
AGENT_DEFAULT_FILE_PATTERN = "*.{go,py,js,ts,java,rb,php,cs,cr,kt,rs,swift,scala,graphql}"
AGENT_MAX_DEPTH = 6
AGENT_MAX_READ_BYTES = 10 * 1024
AGENT_TOOL_CACHE_MAX_ENTRIES = 96
AGENT_TOOL_MAX_LINES = 300
AGENT_TOOL_MAX_MATCHES = 200
AGENT_TOOL_RESULT_MAX_CHARS = 16 * 1024
IGNORE_EXTENSIONS = [".css", ".xml", ".json", ".yml", ".yaml", ".md", ".jpg", ".jpeg", ".png", ".gif", ".svg", ".ico", ".eot", ".ttf", ".woff", ".woff2", ".otf", ".mp3", ".mp4", ".avi", ".mov", ".webm", ".zip", ".tar", ".gz", ".7z", ".rar", ".pdf", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".txt", ".csv", ".log", ".sql", ".bak", ".swp", ".jar"] of String
VALID_METHODS = ["GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS", "HEAD"]
VALID_PARAM_TYPES = ["query", "json", "form", "header", "cookie", "path"]

Constructors

Instance Method Summary

Instance methods inherited from class Analyzer

analyze analyze, base_path : String base_path, base_paths : Array(String) base_paths, logger : NoirLogger logger, parallel_analyze(channel : Channel(String), &block : String -> Nil) parallel_analyze, result : Array(Endpoint) result, url : String url

Constructor methods inherited from class Analyzer

new(options : Hash(String, YAML::Any)) new

Macros inherited from class Analyzer

define_getter_methods(names) define_getter_methods

Instance methods inherited from module FileHelper

all_files : Array(String) all_files, get_files_by_extension(extension : String) : Array(String) get_files_by_extension, get_files_by_prefix(prefix : String) : Array(String) get_files_by_prefix, get_files_by_prefix_and_extension(prefix : String, extension : String) : Array(String) get_files_by_prefix_and_extension, get_public_dir_files(base_path : String, folder : String) : Array(String) get_public_dir_files, get_public_files(base_path : String) : Array(String) get_public_files, populate_channel_with_files(channel : Channel(String)) populate_channel_with_files

Constructor Detail

def self.new(options : Hash(String, YAML::Any)) #

[View source]

Instance Method Detail

def analyze #

[View source]
def ignore_extensions #

[View source]
def max_tokens : Int32 #

[View source]