summaryrefslogtreecommitdiffhomepage
path: root/internal/llm/agent
diff options
context:
space:
mode:
Diffstat (limited to 'internal/llm/agent')
-rw-r--r--internal/llm/agent/agent.go19
1 files changed, 18 insertions, 1 deletions
diff --git a/internal/llm/agent/agent.go b/internal/llm/agent/agent.go
index cb123e78c..baf78be65 100644
--- a/internal/llm/agent/agent.go
+++ b/internal/llm/agent/agent.go
@@ -15,6 +15,8 @@ import (
"github.com/kujtimiihoxha/termai/internal/llm/provider"
"github.com/kujtimiihoxha/termai/internal/llm/tools"
"github.com/kujtimiihoxha/termai/internal/message"
+ "github.com/kujtimiihoxha/termai/internal/pubsub"
+ "github.com/kujtimiihoxha/termai/internal/tui/util"
)
type Agent interface {
@@ -92,9 +94,24 @@ func (c *agent) processEvent(
assistantMsg.AppendContent(event.Content)
return c.Messages.Update(*assistantMsg)
case provider.EventError:
+ // TODO: remove when realease
log.Println("error", event.Error)
+ c.App.Status.Publish(pubsub.UpdatedEvent, util.InfoMsg{
+ Type: util.InfoTypeError,
+ Msg: event.Error.Error(),
+ })
return event.Error
-
+ case provider.EventWarning:
+ c.App.Status.Publish(pubsub.UpdatedEvent, util.InfoMsg{
+ Type: util.InfoTypeWarn,
+ Msg: event.Info,
+ })
+ return nil
+ case provider.EventInfo:
+ c.App.Status.Publish(pubsub.UpdatedEvent, util.InfoMsg{
+ Type: util.InfoTypeInfo,
+ Msg: event.Info,
+ })
case provider.EventComplete:
assistantMsg.SetToolCalls(event.Response.ToolCalls)
assistantMsg.AddFinish(event.Response.FinishReason)