Add self-extension tool system: write_tool, list_tools, tool_manual
- loader.py: module-level format (name/description/parameters/execute)
  preferred, class-based as fallback; isolated errors per file
- write_tool: validates + writes tools/name.py, reloads registry,
  adds to tools/enabled.json in one call
- list_tools: live tool list from registry (prevents hallucination)
- tool_manual: serves manuals/*.md or auto-generates from schema
- reload_tools: hot-reload without server restart
- registry: registry injection pattern for tools that need it;
  _builtin_names set to guard against reload overwriting builtins

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent c9ee0ec commit 3d8b37ea6e8db83fd812853fc678c73f4d730556
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored on 8 Apr
Showing 6 changed files
View
navi/core/registry.py
View
navi/tools/list_tools.py 0 → 100644
View
navi/tools/loader.py 0 → 100644
View
navi/tools/reload_tools.py 0 → 100644
View
navi/tools/tool_manual.py 0 → 100644
View
navi/tools/write_tool.py 0 → 100644