From 0ba17e876fa32624d027006a6ffc8d930b30d12a Mon Sep 17 00:00:00 2001 From: Kujtim Hoxha Date: Mon, 20 Oct 2025 11:09:14 +0200 Subject: [PATCH] fix(tools): some errors need to be sent to the LLM --- internal/agent/tools/grep.go | 2 +- internal/agent/tools/ls.go | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/agent/tools/grep.go b/internal/agent/tools/grep.go index e10a24a0685bcd37f39cfa74ec9837cbecf69507..a1777dbc40b40f927bb1fdd0d2e6d222d57663df 100644 --- a/internal/agent/tools/grep.go +++ b/internal/agent/tools/grep.go @@ -119,7 +119,7 @@ func NewGrepTool(workingDir string) fantasy.AgentTool { matches, truncated, err := searchFiles(ctx, searchPattern, searchPath, params.Include, 100) if err != nil { - return fantasy.ToolResponse{}, fmt.Errorf("error searching files: %w", err) + return fantasy.NewTextErrorResponse(fmt.Sprintf("error searching files: %v", err)), nil } var output strings.Builder diff --git a/internal/agent/tools/ls.go b/internal/agent/tools/ls.go index 6e8bab1ec5ebb025a0efad870fb31afca1ee9e7d..58433e6b2eaccc9ed59d3f4a4a57435de2842fdb 100644 --- a/internal/agent/tools/ls.go +++ b/internal/agent/tools/ls.go @@ -54,7 +54,7 @@ func NewLsTool(permissions permission.Service, workingDir string, lsConfig confi func(ctx context.Context, params LSParams, call fantasy.ToolCall) (fantasy.ToolResponse, error) { searchPath, err := fsext.Expand(cmp.Or(params.Path, workingDir)) if err != nil { - return fantasy.ToolResponse{}, fmt.Errorf("error expanding path: %w", err) + return fantasy.NewTextErrorResponse(fmt.Sprintf("error expanding path: %v", err)), nil } if !filepath.IsAbs(searchPath) { @@ -64,12 +64,12 @@ func NewLsTool(permissions permission.Service, workingDir string, lsConfig confi // Check if directory is outside working directory and request permission if needed absWorkingDir, err := filepath.Abs(workingDir) if err != nil { - return fantasy.ToolResponse{}, fmt.Errorf("error resolving working directory: %w", err) + return fantasy.NewTextErrorResponse(fmt.Sprintf("error resolving working directory: %v", err)), nil } absSearchPath, err := filepath.Abs(searchPath) if err != nil { - return fantasy.ToolResponse{}, fmt.Errorf("error resolving search path: %w", err) + return fantasy.NewTextErrorResponse(fmt.Sprintf("error resolving search path: %v", err)), nil } relPath, err := filepath.Rel(absWorkingDir, absSearchPath)