mirror of
https://github.com/aljazceru/opencode.git
synced 2026-01-04 00:14:59 +01:00
initial agent setup
This commit is contained in:
@@ -2,27 +2,47 @@ package repl
|
||||
|
||||
import (
|
||||
tea "github.com/charmbracelet/bubbletea"
|
||||
"github.com/charmbracelet/lipgloss"
|
||||
"github.com/kujtimiihoxha/termai/internal/app"
|
||||
"github.com/kujtimiihoxha/termai/internal/message"
|
||||
"github.com/kujtimiihoxha/termai/internal/pubsub"
|
||||
"github.com/kujtimiihoxha/termai/internal/session"
|
||||
)
|
||||
|
||||
type messagesCmp struct {
|
||||
app *app.App
|
||||
app *app.App
|
||||
messages []message.Message
|
||||
session session.Session
|
||||
}
|
||||
|
||||
func (i *messagesCmp) Init() tea.Cmd {
|
||||
func (m *messagesCmp) Init() tea.Cmd {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (i *messagesCmp) Update(_ tea.Msg) (tea.Model, tea.Cmd) {
|
||||
return i, nil
|
||||
func (m *messagesCmp) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||
switch msg := msg.(type) {
|
||||
case pubsub.Event[message.Message]:
|
||||
if msg.Type == pubsub.CreatedEvent {
|
||||
m.messages = append(m.messages, msg.Payload)
|
||||
}
|
||||
case SelectedSessionMsg:
|
||||
m.session, _ = m.app.Sessions.Get(msg.SessionID)
|
||||
m.messages, _ = m.app.Messages.List(m.session.ID)
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
func (i *messagesCmp) View() string {
|
||||
return "Messages"
|
||||
stringMessages := make([]string, len(i.messages))
|
||||
for idx, msg := range i.messages {
|
||||
stringMessages[idx] = msg.MessageData.Content
|
||||
}
|
||||
return lipgloss.JoinVertical(lipgloss.Top, stringMessages...)
|
||||
}
|
||||
|
||||
func NewMessagesCmp(app *app.App) tea.Model {
|
||||
return &messagesCmp{
|
||||
app,
|
||||
app: app,
|
||||
messages: []message.Message{},
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user