106 lines
2.4 KiB
Markdown
106 lines
2.4 KiB
Markdown
# 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`
|
|
|
|
```csharp
|
|
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`
|
|
|
|
```csharp
|
|
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
|
|
|
|
## 4. Grep Operations ✅ DONE
|
|
|
|
**Current tools:** `GrepFile`, `GrepRecursive`
|
|
|
|
**Proposed merge:** `Grep`
|
|
|
|
```csharp
|
|
public static string Grep(
|
|
string path,
|
|
string pattern,
|
|
string mode = "recursive",
|
|
string? filePattern = null)
|
|
```
|
|
|
|
**Behavior:**
|
|
- `mode="file"` - Searches single file (current GrepFile)
|
|
- `mode="recursive"` - 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
|
|
|
|
## 5. Delete Operations ✅ DONE
|
|
|
|
**Current tools:** `DeleteFile`, `DeleteDir`
|
|
|
|
**Proposed merge:** `Delete`
|
|
|
|
```csharp
|
|
public static string Delete(
|
|
string path,
|
|
string mode = "file")
|
|
```
|
|
|
|
**Behavior:**
|
|
- `mode="file"` - Deletes a file
|
|
- `mode="dir"` - Deletes a directory (recursive)
|
|
|
|
**Benefits:**
|
|
- Unified interface for all deletion
|
|
- Similar error handling patterns
|
|
- Reduces 2 tools to 1
|
|
|
|
These consolidations reduced the tool count from 17 to 13 tools (4 completed), making the API simpler and easier for the LLM to use effectively.
|
|
|
|
**Completed merges**:
|
|
1. ✅ File Move Operations (2 → 1) - **DONE**
|
|
2. ✅ File Write Operations (3 → 1) - **DONE**
|
|
3. ✅ Delete Operations (2 → 1) - **DONE**
|
|
4. ✅ Grep Operations (2 → 1) - **DONE**
|
|
|
|
**All high priority merges completed!**
|