sequenceDiagram
participant User
participant OllamaAgent
participant Ollama
participant PermissionManager
participant Functions
User->>OllamaAgent: chat(query)
OllamaAgent->>Ollama: Send query with registered tools
Ollama-->>OllamaAgent: Detect function call(s)
alt Function detected
OllamaAgent->>PermissionManager: request_permission()
alt sudo command detected
PermissionManager->>User: Always prompt for sudo
else normal command and prompts enabled
PermissionManager->>User: Prompt for permission
else prompts disabled
PermissionManager-->>OllamaAgent: Auto-grant permission
end
alt Permission granted
OllamaAgent->>Functions: Execute function
Functions-->>OllamaAgent: Return result
OllamaAgent->>Ollama: Send function result
Ollama-->>OllamaAgent: Generate final response
else Permission denied
OllamaAgent->>Ollama: Send permission denied
Ollama-->>OllamaAgent: Generate alternative response
end
else No function detected
Ollama-->>OllamaAgent: Regular response
end
OllamaAgent-->>User: Return response