classDiagram
class OllamaAgent {
-model: str
-host: str
-permission_prompts: bool
-sudo_always_prompt: bool
-client: Client
-permission_manager: PermissionManager
+__init__(model, host, permission_prompts, sudo_always_prompt)
+chat(message, system_prompt, context) str
+register_tools() None
+process_function_calls(function_calls) List
}
class PermissionManager {
-prompt_enabled: bool
-sudo_always_prompt: bool
+__init__(prompt_enabled, sudo_always_prompt)
+request_permission(function_name, args, is_sudo) bool
+detect_sudo(command) bool
}
class SystemTools {
+execute_command(command, args, timeout) Dict
+read_file(path, max_size) str
+write_file(path, content, mode) bool
+find_files(pattern, directory, recursive) List
}
class WebTools {
+fetch_url(url, method, params, headers, data, timeout) Dict
+get_weather(location, days, units) Dict
+search_web(query, num_results) List
}
class DocTools {
+generate_markdown(content, title, format_type) str
+extract_context(query, documents, max_length) str
+summarize_text(text, max_length) str
}
class Config {
+permission_prompts: bool
+sudo_always_prompt: bool
+load() None
+save() None
}
OllamaAgent -- PermissionManager : uses
OllamaAgent -- SystemTools : registers
OllamaAgent -- WebTools : registers
OllamaAgent -- DocTools : registers
OllamaAgent -- Config : configured by