@@ -8,39 +8,40 @@ import (
88 "github.com/kujtimiihoxha/termai/internal/llm/models"
99 "github.com/kujtimiihoxha/termai/internal/llm/tools"
1010 "github.com/kujtimiihoxha/termai/internal/lsp"
11+ "github.com/kujtimiihoxha/termai/internal/message"
12+ "github.com/kujtimiihoxha/termai/internal/session"
1113)
1214
1315type taskAgent struct {
14− *agent
16+ Service
1517}
1618
17−func (c *taskAgent) Generate(ctx context.Context, sessionID string, content string) error {
18− return c.generate(ctx, sessionID, content)
19−}
20−
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) {
2220 model, ok := models.SupportedModels[config.Get().Model.Coder]
2321 if !ok {
2422 return nil, errors.New("model not supported")
2523 }
2624
2725 ctx := context.Background()
28− agentProvider, titleGenerator, err := getAgentProviders(ctx, model)
26+
27+ agent, err := NewAgent(
28+ ctx,
29+ sessions,
30+ messages,
31+ model,
32+ []tools.BaseTool{
33+ tools.NewGlobTool(),
34+ tools.NewGrepTool(),
35+ tools.NewLsTool(),
36+ tools.NewSourcegraphTool(),
37+ tools.NewViewTool(lspClients),
38+ },
39+ )
2940 if err != nil {
3041 return nil, err
3142 }
43+
3244 return &taskAgent{
33− agent: &agent{
34− tools: []tools.BaseTool{
35− tools.NewGlobTool(),
36− tools.NewGrepTool(),
37− tools.NewLsTool(),
38− tools.NewSourcegraphTool(),
39− tools.NewViewTool(lspClients),
40− },
41− model: model,
42− agent: agentProvider,
43− titleGenerator: titleGenerator,
44− },
45+ agent,
4546 }, nil
4647}