[tool_implementations.py] 4043-line mega file violates AGENTS.md ~400 line split rule #665

Closed
opened 2026-06-02 23:38:13 +02:00 by sleepy · 0 comments
Owner

File: src/tool_implementations.py (4043 lines)

AGENTS.md rule: "Split files that exceed ~400 lines or contain multiple concerns."

This file is 10x over the limit and contains implementations for 30+ unrelated tool domains:

  • Document tools (create/update/edit/suggest) ~lines 94-600
  • Memory tools ~lines 600-800
  • Task management ~lines 800-1000
  • Skills management ~lines 1000-1200
  • Settings management ~lines 1200-1400
  • Email tools (list/read/send/reply/bulk/archive/delete) ~lines 1400-2000
  • Calendar tools ~lines 2000-2200
  • MCP management ~lines 2200-2400
  • Webhook management ~lines 2400-2500
  • Token management ~lines 2500-2600
  • Cookbook/model serving ~lines 2600-3200
  • Image generation/editing ~lines 3200-3400
  • Research management ~lines 3400-3600
  • Contact management ~lines 3600-3870
  • Vault (Bitwarden) tools ~lines 3870-4043

Suggested split

Each domain should be its own module under src/tools/:

  • src/tools/documents.py
  • src/tools/email.py
  • src/tools/calendar.py
  • src/tools/memory.py
  • src/tools/cookbook.py
  • src/tools/vault.py
  • src/tools/contacts.py
  • src/tools/research.py
  • src/tools/settings.py
  • src/tools/admin.py (endpoints, mcp, webhooks, tokens)

With a src/tools/__init__.py that re-exports all do_* functions (like agent_tools.py facade pattern).

Common helpers (_truncate, _parse_tool_args, set_active_document, set_active_model) should live in src/tools/_common.py.

## File: `src/tool_implementations.py` (4043 lines) AGENTS.md rule: _"Split files that exceed ~400 lines or contain multiple concerns."_ This file is **10x over the limit** and contains implementations for 30+ unrelated tool domains: - Document tools (create/update/edit/suggest) ~lines 94-600 - Memory tools ~lines 600-800 - Task management ~lines 800-1000 - Skills management ~lines 1000-1200 - Settings management ~lines 1200-1400 - Email tools (list/read/send/reply/bulk/archive/delete) ~lines 1400-2000 - Calendar tools ~lines 2000-2200 - MCP management ~lines 2200-2400 - Webhook management ~lines 2400-2500 - Token management ~lines 2500-2600 - Cookbook/model serving ~lines 2600-3200 - Image generation/editing ~lines 3200-3400 - Research management ~lines 3400-3600 - Contact management ~lines 3600-3870 - Vault (Bitwarden) tools ~lines 3870-4043 ### Suggested split Each domain should be its own module under `src/tools/`: - `src/tools/documents.py` - `src/tools/email.py` - `src/tools/calendar.py` - `src/tools/memory.py` - `src/tools/cookbook.py` - `src/tools/vault.py` - `src/tools/contacts.py` - `src/tools/research.py` - `src/tools/settings.py` - `src/tools/admin.py` (endpoints, mcp, webhooks, tokens) With a `src/tools/__init__.py` that re-exports all `do_*` functions (like `agent_tools.py` facade pattern). Common helpers (`_truncate`, `_parse_tool_args`, `set_active_document`, `set_active_model`) should live in `src/tools/_common.py`.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sleepy/odysseus#665
No description provided.