@@ -50,44 +50,45 @@ func (b *agentTool) Run(ctx context.Context, call tools.ToolCall) (tools.ToolRes
5050
5151 sessionID, messageID := tools.GetContextValues(ctx)
5252 if sessionID == "" || messageID == "" {
53− return tools.NewTextErrorResponse("session ID and message ID are required"), nil
53+ return tools.ToolResponse{}, fmt.Errorf("session_id and message_id are required")
5454 }
5555
5656 agent, err := NewTaskAgent(b.lspClients)
5757 if err != nil {
58− return tools.NewTextErrorResponse(fmt.Sprintf("error creating agent: %s", err)), nil
58+ return tools.ToolResponse{}, fmt.Errorf("error creating agent: %s", err)
5959 }
6060
6161 session, err := b.sessions.CreateTaskSession(ctx, call.ID, sessionID, "New Agent Session")
6262 if err != nil {
63− return tools.NewTextErrorResponse(fmt.Sprintf("error creating session: %s", err)), nil
63+ return tools.ToolResponse{}, fmt.Errorf("error creating session: %s", err)
6464 }
6565
6666 err = agent.Generate(ctx, session.ID, params.Prompt)
6767 if err != nil {
68− return tools.NewTextErrorResponse(fmt.Sprintf("error generating agent: %s", err)), nil
68+ return tools.ToolResponse{}, fmt.Errorf("error generating agent: %s", err)
6969 }
7070
7171 messages, err := b.messages.List(ctx, session.ID)
7272 if err != nil {
73− return tools.NewTextErrorResponse(fmt.Sprintf("error listing messages: %s", err)), nil
73+ return tools.ToolResponse{}, fmt.Errorf("error listing messages: %s", err)
7474 }
75+
7576 if len(messages) == 0 {
76− return tools.NewTextErrorResponse("no messages found"), nil
77+ return tools.NewTextErrorResponse("no response"), nil
7778 }
7879
7980 response := messages[len(messages)-1]
8081 if response.Role != message.Assistant {
81− return tools.NewTextErrorResponse("no assistant message found"), nil
82+ return tools.NewTextErrorResponse("no response"), nil
8283 }
8384
8485 updatedSession, err := b.sessions.Get(ctx, session.ID)
8586 if err != nil {
86− return tools.NewTextErrorResponse(fmt.Sprintf("error: %s", err)), nil
87+ return tools.ToolResponse{}, fmt.Errorf("error getting session: %s", err)
8788 }
8889 parentSession, err := b.sessions.Get(ctx, sessionID)
8990 if err != nil {
90− return tools.NewTextErrorResponse(fmt.Sprintf("error: %s", err)), nil
91+ return tools.ToolResponse{}, fmt.Errorf("error getting parent session: %s", err)
9192 }
9293
9394 parentSession.Cost += updatedSession.Cost
@@ -96,7 +97,7 @@ func (b *agentTool) Run(ctx context.Context, call tools.ToolCall) (tools.ToolRes
9697
9798 _, err = b.sessions.Save(ctx, parentSession)
9899 if err != nil {
99− return tools.NewTextErrorResponse(fmt.Sprintf("error: %s", err)), nil
100+ return tools.ToolResponse{}, fmt.Errorf("error saving parent session: %s", err)
100101 }
101102 return tools.NewTextResponse(response.Content().String()), nil
102103}