diff options
| author | Kujtim Hoxha <[email protected]> | 2025-04-14 14:09:17 +0200 |
|---|---|---|
| committer | Kujtim Hoxha <[email protected]> | 2025-04-21 13:41:27 +0200 |
| commit | 0130bde1edabb81d82dbce9d2d562966d2dee133 (patch) | |
| tree | 351436a114f790205460575ba15226ab35d6a1fc /internal/llm | |
| parent | 0b3e5f5bd42a02c2a15b394b3768e517dc43f39c (diff) | |
| download | opencode-0130bde1edabb81d82dbce9d2d562966d2dee133.tar.gz opencode-0130bde1edabb81d82dbce9d2d562966d2dee133.zip | |
remove node dependency and implement diff format
Diffstat (limited to 'internal/llm')
| -rw-r--r-- | internal/llm/tools/edit.go | 39 | ||||
| -rw-r--r-- | internal/llm/tools/write.go | 15 |
2 files changed, 23 insertions, 31 deletions
diff --git a/internal/llm/tools/edit.go b/internal/llm/tools/edit.go index b74e42729..1305879b9 100644 --- a/internal/llm/tools/edit.go +++ b/internal/llm/tools/edit.go @@ -10,7 +10,7 @@ import ( "time" "github.com/kujtimiihoxha/termai/internal/config" - "github.com/kujtimiihoxha/termai/internal/git" + "github.com/kujtimiihoxha/termai/internal/diff" "github.com/kujtimiihoxha/termai/internal/lsp" "github.com/kujtimiihoxha/termai/internal/permission" ) @@ -182,14 +182,12 @@ func (e *editTool) createNewFile(ctx context.Context, filePath, content string) return ToolResponse{}, fmt.Errorf("session ID and message ID are required for creating a new file") } - diff, stats, err := git.GenerateGitDiffWithStats( - removeWorkingDirectoryPrefix(filePath), + diff, additions, removals := diff.GenerateDiff( "", content, + filePath, + filePath, ) - if err != nil { - return ToolResponse{}, fmt.Errorf("failed to get file diff: %w", err) - } p := e.permissions.Request( permission.CreatePermissionRequest{ Path: filepath.Dir(filePath), @@ -218,8 +216,8 @@ func (e *editTool) createNewFile(ctx context.Context, filePath, content string) NewTextResponse("File created: "+filePath), EditResponseMetadata{ Diff: diff, - Additions: stats.Additions, - Removals: stats.Removals, + Additions: additions, + Removals: removals, }, ), nil } @@ -275,14 +273,12 @@ func (e *editTool) deleteContent(ctx context.Context, filePath, oldString string return ToolResponse{}, fmt.Errorf("session ID and message ID are required for creating a new file") } - diff, stats, err := git.GenerateGitDiffWithStats( - removeWorkingDirectoryPrefix(filePath), + diff, additions, removals := diff.GenerateDiff( oldContent, newContent, + filePath, + filePath, ) - if err != nil { - return ToolResponse{}, fmt.Errorf("failed to get file diff: %w", err) - } p := e.permissions.Request( permission.CreatePermissionRequest{ @@ -311,8 +307,8 @@ func (e *editTool) deleteContent(ctx context.Context, filePath, oldString string NewTextResponse("Content deleted from file: "+filePath), EditResponseMetadata{ Diff: diff, - Additions: stats.Additions, - Removals: stats.Removals, + Additions: additions, + Removals: removals, }, ), nil } @@ -367,15 +363,12 @@ func (e *editTool) replaceContent(ctx context.Context, filePath, oldString, newS if sessionID == "" || messageID == "" { return ToolResponse{}, fmt.Errorf("session ID and message ID are required for creating a new file") } - diff, stats, err := git.GenerateGitDiffWithStats( - removeWorkingDirectoryPrefix(filePath), + diff, additions, removals := diff.GenerateDiff( oldContent, newContent, + filePath, + filePath, ) - if err != nil { - return ToolResponse{}, fmt.Errorf("failed to get file diff: %w", err) - } - p := e.permissions.Request( permission.CreatePermissionRequest{ Path: filepath.Dir(filePath), @@ -405,7 +398,7 @@ func (e *editTool) replaceContent(ctx context.Context, filePath, oldString, newS NewTextResponse("Content replaced in file: "+filePath), EditResponseMetadata{ Diff: diff, - Additions: stats.Additions, - Removals: stats.Removals, + Additions: additions, + Removals: removals, }), nil } diff --git a/internal/llm/tools/write.go b/internal/llm/tools/write.go index 8318f2851..ef2ca01f4 100644 --- a/internal/llm/tools/write.go +++ b/internal/llm/tools/write.go @@ -9,7 +9,7 @@ import ( "time" "github.com/kujtimiihoxha/termai/internal/config" - "github.com/kujtimiihoxha/termai/internal/git" + "github.com/kujtimiihoxha/termai/internal/diff" "github.com/kujtimiihoxha/termai/internal/lsp" "github.com/kujtimiihoxha/termai/internal/permission" ) @@ -149,14 +149,13 @@ func (w *writeTool) Run(ctx context.Context, call ToolCall) (ToolResponse, error if sessionID == "" || messageID == "" { return ToolResponse{}, fmt.Errorf("session_id and message_id are required") } - diff, stats, err := git.GenerateGitDiffWithStats( - removeWorkingDirectoryPrefix(filePath), + + diff, additions, removals := diff.GenerateDiff( oldContent, params.Content, + filePath, + filePath, ) - if err != nil { - return ToolResponse{}, fmt.Errorf("error generating diff: %w", err) - } p := w.permissions.Request( permission.CreatePermissionRequest{ Path: filePath, @@ -188,8 +187,8 @@ func (w *writeTool) Run(ctx context.Context, call ToolCall) (ToolResponse, error return WithResponseMetadata(NewTextResponse(result), WriteResponseMetadata{ Diff: diff, - Additions: stats.Additions, - Removals: stats.Removals, + Additions: additions, + Removals: removals, }, ), nil } |
