From 101dcb441162f991e6bad39a2b07a7401b7d2ccb Mon Sep 17 00:00:00 2001 From: duwenxin Date: Wed, 4 Feb 2026 01:32:32 -0500 Subject: [PATCH] refactor redis --- internal/tools/redis/redis.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/internal/tools/redis/redis.go b/internal/tools/redis/redis.go index e3d56a1596..3aa3154354 100644 --- a/internal/tools/redis/redis.go +++ b/internal/tools/redis/redis.go @@ -16,12 +16,14 @@ package redis import ( "context" "fmt" + "net/http" yaml "github.com/goccy/go-yaml" "github.com/googleapis/genai-toolbox/internal/embeddingmodels" "github.com/googleapis/genai-toolbox/internal/sources" redissrc "github.com/googleapis/genai-toolbox/internal/sources/redis" "github.com/googleapis/genai-toolbox/internal/tools" + "github.com/googleapis/genai-toolbox/internal/util" "github.com/googleapis/genai-toolbox/internal/util/parameters" ) @@ -84,17 +86,21 @@ type Tool struct { mcpManifest tools.McpManifest } -func (t Tool) Invoke(ctx context.Context, resourceMgr tools.SourceProvider, params parameters.ParamValues, accessToken tools.AccessToken) (any, error) { +func (t Tool) Invoke(ctx context.Context, resourceMgr tools.SourceProvider, params parameters.ParamValues, accessToken tools.AccessToken) (any, util.ToolboxError) { source, err := tools.GetCompatibleSource[compatibleSource](resourceMgr, t.Source, t.Name, t.Type) if err != nil { - return nil, err + return nil, util.NewClientServerError("source used is not compatible with the tool", http.StatusInternalServerError, err) } cmds, err := replaceCommandsParams(t.Commands, t.Parameters, params) if err != nil { - return nil, fmt.Errorf("error replacing commands' parameters: %s", err) + return nil, util.NewAgentError("error replacing commands' parameters", err) } - return source.RunCommand(ctx, cmds) + resp, err := source.RunCommand(ctx, cmds) + if err != nil { + return nil, util.ProcessGeneralError(err) + } + return resp, nil } func (t Tool) EmbedParams(ctx context.Context, paramValues parameters.ParamValues, embeddingModelsMap map[string]embeddingmodels.EmbeddingModel) (parameters.ParamValues, error) {