summaryrefslogtreecommitdiffhomepage
path: root/internal/llm/tools/sourcegraph.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/llm/tools/sourcegraph.go')
-rw-r--r--internal/llm/tools/sourcegraph.go17
1 files changed, 11 insertions, 6 deletions
diff --git a/internal/llm/tools/sourcegraph.go b/internal/llm/tools/sourcegraph.go
index e1ea962d4..0d38c975f 100644
--- a/internal/llm/tools/sourcegraph.go
+++ b/internal/llm/tools/sourcegraph.go
@@ -18,6 +18,11 @@ type SourcegraphParams struct {
Timeout int `json:"timeout,omitempty"`
}
+type SourcegraphResponseMetadata struct {
+ NumberOfMatches int `json:"number_of_matches"`
+ Truncated bool `json:"truncated"`
+}
+
type sourcegraphTool struct {
client *http.Client
}
@@ -198,7 +203,7 @@ func (t *sourcegraphTool) Run(ctx context.Context, call ToolCall) (ToolResponse,
graphqlQueryBytes, err := json.Marshal(request)
if err != nil {
- return NewTextErrorResponse("Failed to create GraphQL request: " + err.Error()), nil
+ return ToolResponse{}, fmt.Errorf("failed to marshal GraphQL request: %w", err)
}
graphqlQuery := string(graphqlQueryBytes)
@@ -209,15 +214,15 @@ func (t *sourcegraphTool) Run(ctx context.Context, call ToolCall) (ToolResponse,
bytes.NewBuffer([]byte(graphqlQuery)),
)
if err != nil {
- return NewTextErrorResponse("Failed to create request: " + err.Error()), nil
+ return ToolResponse{}, fmt.Errorf("failed to create request: %w", err)
}
req.Header.Set("Content-Type", "application/json")
- req.Header.Set("User-Agent", "termai/1.0")
+ req.Header.Set("User-Agent", "opencode/1.0")
resp, err := client.Do(req)
if err != nil {
- return NewTextErrorResponse("Failed to execute request: " + err.Error()), nil
+ return ToolResponse{}, fmt.Errorf("failed to fetch URL: %w", err)
}
defer resp.Body.Close()
@@ -231,12 +236,12 @@ func (t *sourcegraphTool) Run(ctx context.Context, call ToolCall) (ToolResponse,
}
body, err := io.ReadAll(resp.Body)
if err != nil {
- return NewTextErrorResponse("Failed to read response body: " + err.Error()), nil
+ return ToolResponse{}, fmt.Errorf("failed to read response body: %w", err)
}
var result map[string]any
if err = json.Unmarshal(body, &result); err != nil {
- return NewTextErrorResponse("Failed to parse response: " + err.Error()), nil
+ return ToolResponse{}, fmt.Errorf("failed to unmarshal response: %w", err)
}
formattedResults, err := formatSourcegraphResults(result, params.ContextWindow)