mirror of
https://github.com/sst/opencode.git
synced 2025-08-11 00:38:02 +00:00
51 lines
1.4 KiB
Go
51 lines
1.4 KiB
Go
package agent
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/opencode-ai/opencode/internal/history"
|
|
"github.com/opencode-ai/opencode/internal/llm/tools"
|
|
"github.com/opencode-ai/opencode/internal/lsp"
|
|
"github.com/opencode-ai/opencode/internal/message"
|
|
"github.com/opencode-ai/opencode/internal/permission"
|
|
"github.com/opencode-ai/opencode/internal/session"
|
|
)
|
|
|
|
func CoderAgentTools(
|
|
permissions permission.Service,
|
|
sessions session.Service,
|
|
messages message.Service,
|
|
history history.Service,
|
|
lspClients map[string]*lsp.Client,
|
|
) []tools.BaseTool {
|
|
ctx := context.Background()
|
|
otherTools := GetMcpTools(ctx, permissions)
|
|
if len(lspClients) > 0 {
|
|
otherTools = append(otherTools, tools.NewDiagnosticsTool(lspClients))
|
|
}
|
|
return append(
|
|
[]tools.BaseTool{
|
|
tools.NewBashTool(permissions),
|
|
tools.NewEditTool(lspClients, permissions, history),
|
|
tools.NewFetchTool(permissions),
|
|
tools.NewGlobTool(),
|
|
tools.NewGrepTool(),
|
|
tools.NewLsTool(),
|
|
tools.NewSourcegraphTool(),
|
|
tools.NewViewTool(lspClients),
|
|
tools.NewPatchTool(lspClients, permissions, history),
|
|
tools.NewWriteTool(lspClients, permissions, history),
|
|
NewAgentTool(sessions, messages, lspClients),
|
|
}, otherTools...,
|
|
)
|
|
}
|
|
|
|
func TaskAgentTools(lspClients map[string]*lsp.Client) []tools.BaseTool {
|
|
return []tools.BaseTool{
|
|
tools.NewGlobTool(),
|
|
tools.NewGrepTool(),
|
|
tools.NewLsTool(),
|
|
tools.NewSourcegraphTool(),
|
|
tools.NewViewTool(lspClients),
|
|
}
|
|
}
|