2.7 KiB
2.7 KiB
Tool Consolidation Ideas
This document outlines opportunities to merge similar tools to simplify the API.
1. File Write Operations
Current tools: CreateFile, InsertAfter, AppendToFile
Proposed merge: WriteToFile
public static string WriteToFile(
string path,
string[] content,
string? mode = "create",
string? anchor = null)
Behavior:
mode="create"- Creates new file (error if exists)mode="append"- Appends to EOF (creates if missing)mode="insert"- Inserts after anchor (requires existing file)
Benefits:
- Reduces 3 tools to 1
- Cleaner API for LLM
- Unified error handling
2. File Move Operations
Current tools: RenameFile, CopyFile
Proposed merge: MoveFile
public static string MoveFile(
string sourcePath,
string destinationPath,
bool copy = false)
Behavior:
copy=false- Moves file (current RenameFile behavior)copy=true- Copies file (current CopyFile behavior)
Benefits:
- 90% identical logic
- Only difference is File.Move vs File.Copy
- Both create parent directories
- Similar error handling patterns
3. Grep Operations
Current tools: GrepFile, GrepRecursive
Proposed merge: Grep
public static string Grep(
string path,
string pattern,
bool recursive = false,
string? filePattern = null)
Behavior:
recursive=false- Searches single file (current GrepFile)recursive=true- Searches directory recursively (current GrepRecursive)filePattern- Optional glob to filter files when recursive
Benefits:
- Very similar logic
- Reduces 2 tools to 1
- Cleaner API for LLM
4. Delete Operations
Current tools: DeleteFile, DeleteDir
Proposed merge: Delete
public static string Delete(
string path,
bool recursive = true)
Behavior:
- Auto-detects if path is file or directory
recursive=true- Delete directory and all contentsrecursive=false- Only matters for directories (error if not empty)
Benefits:
- Auto-detects file vs directory
- Similar error handling patterns
- Reduces 2 tools to 1
Summary
These consolidations would reduce the tool count from 17 to 13 tools, making the API simpler and easier for the LLM to use effectively.
High priority merges:
- ✅ File Write Operations (3 → 1)
- ✅ File Move Operations (2 → 1)
- ✅ Grep Operations (2 → 1)
- ✅ Delete Operations (2 → 1)
Kept separate:
ReadFile- distinct read-only operationListDir,FindFiles,GetFileInfo- different purposesCreateDir- simple enough to keep standaloneReplaceLines,InsertAfter,DeleteRange- too complex to merge without confusing LLM