feat: add Explore agent with PydanticAI tool calling

Implements the first Claude-like agent for codebase exploration:

Core Features:
- Explore agent with glob, grep, read, and bash tools
- Native PydanticAI tool calling with Ollama/Mistral Nemo
- Sanitized Ollama provider (fixes content:null issue)
- REST API endpoints for agent execution

Tool Infrastructure:
- BaseTool abstract class with ToolResult dataclass
- ReadFileTool, GlobFilesTool, GrepContentTool, BashReadOnlyTool
- Path validation and sandboxing support

CLI Client (separate package for future extraction):
- webber-cli command with chat, explore, status commands
- Communicates with Webber API backend
- Rich console output with theming

Configuration:
- Dev server on port 8095 (production uses 8086)
- Mistral Nemo optimizations (temp 0.3, tool_choice required)

Tests: 24 tests covering tools and API endpoints

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-10 01:26:30 +01:00
co-authored by Claude Opus 4.5
parent 667e2ca8e4
commit f4e8552298
45 changed files with 3299 additions and 12 deletions
+5 -1
View File
@@ -15,13 +15,17 @@ classifiers = [
"Topic :: Software Development :: Code Generators",
]
[project.scripts]
webber = "src.cli.main:app"
webber-cli = "cli.main:app"
[build-system]
requires = ["setuptools>=75.0", "wheel"]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
where = ["."]
include = ["src*"]
include = ["src*", "cli*"]
[tool.pytest.ini_options]
testpaths = ["tests"]