@@ -8,39 +8,40 @@ import (
8 "github.com/kujtimiihoxha/termai/internal/llm/models"
8 "github.com/kujtimiihoxha/termai/internal/llm/models"
9 "github.com/kujtimiihoxha/termai/internal/llm/tools"
9 "github.com/kujtimiihoxha/termai/internal/llm/tools"
10 "github.com/kujtimiihoxha/termai/internal/lsp"
10 "github.com/kujtimiihoxha/termai/internal/lsp"
11+ "github.com/kujtimiihoxha/termai/internal/message"
12+ "github.com/kujtimiihoxha/termai/internal/session"
13type taskAgent struct {
15type taskAgent struct {
17−func (c *taskAgent) Generate(ctx context.Context, sessionID string, content string) error {
18− return c.generate(ctx, sessionID, content)
21−func NewTaskAgent(lspClients map[string]*lsp.Client) (Service, error) {
19+func NewTaskAgent(messages message.Service, sessions session.Service, lspClients map[string]*lsp.Client) (Service, error) {
22 model, ok := models.SupportedModels[config.Get().Model.Coder]
20 model, ok := models.SupportedModels[config.Get().Model.Coder]
24 return nil, errors.New("model not supported")
22 return nil, errors.New("model not supported")
27 ctx := context.Background()
25 ctx := context.Background()
28− agentProvider, titleGenerator, err := getAgentProviders(ctx, model)
26+
27+ agent, err := NewAgent(
36+ tools.NewSourcegraphTool(),
37+ tools.NewViewTool(lspClients),
29 if err != nil {
40 if err != nil {
30 return nil, err
41 return nil, err
32 return &taskAgent{
44 return &taskAgent{
33− agent: &agent{
45+ agent,
34− tools: []tools.BaseTool{
38− tools.NewSourcegraphTool(),
39− tools.NewViewTool(lspClients),
42− agent: agentProvider,
43− titleGenerator: titleGenerator,