tools.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package agent
  2. import (
  3. "context"
  4. "github.com/kujtimiihoxha/termai/internal/history"
  5. "github.com/kujtimiihoxha/termai/internal/llm/tools"
  6. "github.com/kujtimiihoxha/termai/internal/lsp"
  7. "github.com/kujtimiihoxha/termai/internal/message"
  8. "github.com/kujtimiihoxha/termai/internal/permission"
  9. "github.com/kujtimiihoxha/termai/internal/session"
  10. )
  11. func CoderAgentTools(
  12. permissions permission.Service,
  13. sessions session.Service,
  14. messages message.Service,
  15. history history.Service,
  16. lspClients map[string]*lsp.Client,
  17. ) []tools.BaseTool {
  18. ctx := context.Background()
  19. otherTools := GetMcpTools(ctx, permissions)
  20. if len(lspClients) > 0 {
  21. otherTools = append(otherTools, tools.NewDiagnosticsTool(lspClients))
  22. }
  23. return append(
  24. []tools.BaseTool{
  25. tools.NewBashTool(permissions),
  26. tools.NewEditTool(lspClients, permissions, history),
  27. tools.NewFetchTool(permissions),
  28. tools.NewGlobTool(),
  29. tools.NewGrepTool(),
  30. tools.NewLsTool(),
  31. tools.NewSourcegraphTool(),
  32. tools.NewViewTool(lspClients),
  33. tools.NewWriteTool(lspClients, permissions, history),
  34. NewAgentTool(sessions, messages, lspClients),
  35. }, otherTools...,
  36. )
  37. }
  38. func TaskAgentTools(lspClients map[string]*lsp.Client) []tools.BaseTool {
  39. return []tools.BaseTool{
  40. tools.NewGlobTool(),
  41. tools.NewGrepTool(),
  42. tools.NewLsTool(),
  43. tools.NewSourcegraphTool(),
  44. tools.NewViewTool(lspClients),
  45. }
  46. }