fix(tui): sorted tool arg maps
This commit is contained in:
@@ -305,14 +305,15 @@ func renderToolInvocation(
|
|||||||
toolArgsMap := make(map[string]any)
|
toolArgsMap := make(map[string]any)
|
||||||
if toolCall.Args != nil {
|
if toolCall.Args != nil {
|
||||||
value := *toolCall.Args
|
value := *toolCall.Args
|
||||||
m, ok := value.(map[string]any)
|
if m, ok := value.(map[string]any); ok {
|
||||||
if ok {
|
|
||||||
toolArgsMap = m
|
toolArgsMap = m
|
||||||
|
|
||||||
firstKey := ""
|
firstKey := ""
|
||||||
for key := range toolArgsMap {
|
for key := range toolArgsMap {
|
||||||
firstKey = key
|
firstKey = key
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
toolArgs = renderArgs(&toolArgsMap, firstKey)
|
toolArgs = renderArgs(&toolArgsMap, firstKey)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -589,9 +590,17 @@ func renderArgs(args *map[string]any, titleKey string) string {
|
|||||||
if args == nil || len(*args) == 0 {
|
if args == nil || len(*args) == 0 {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
keys := make([]string, 0, len(*args))
|
||||||
|
for key := range *args {
|
||||||
|
keys = append(keys, key)
|
||||||
|
}
|
||||||
|
slices.Sort(keys)
|
||||||
|
|
||||||
title := ""
|
title := ""
|
||||||
parts := []string{}
|
parts := []string{}
|
||||||
for key, value := range *args {
|
for _, key := range keys {
|
||||||
|
value := (*args)[key]
|
||||||
if value == nil {
|
if value == nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -229,6 +229,12 @@ func (a appModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|||||||
a.app.Messages = append(a.app.Messages, msg.Properties.Info)
|
a.app.Messages = append(a.app.Messages, msg.Properties.Info)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
case client.EventSessionError:
|
||||||
|
unknownError, err := msg.Properties.Error.AsUnknownError()
|
||||||
|
if err == nil {
|
||||||
|
slog.Error("Server error", "name", unknownError.Name, "message", unknownError.Data.Message)
|
||||||
|
return a, toast.NewErrorToast(unknownError.Data.Message, toast.WithTitle(unknownError.Name))
|
||||||
|
}
|
||||||
case tea.WindowSizeMsg:
|
case tea.WindowSizeMsg:
|
||||||
msg.Height -= 2 // Make space for the status bar
|
msg.Height -= 2 // Make space for the status bar
|
||||||
a.width, a.height = msg.Width, msg.Height
|
a.width, a.height = msg.Width, msg.Height
|
||||||
@@ -243,12 +249,13 @@ func (a appModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|||||||
}
|
}
|
||||||
a.layout.SetSize(a.width, a.height)
|
a.layout.SetSize(a.width, a.height)
|
||||||
case app.SessionSelectedMsg:
|
case app.SessionSelectedMsg:
|
||||||
var err error
|
messages, err := a.app.ListMessages(context.Background(), msg.Id)
|
||||||
a.app.Session = msg
|
|
||||||
a.app.Messages, err = a.app.ListMessages(context.Background(), msg.Id)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
slog.Error("Failed to list messages", "error", err)
|
slog.Error("Failed to list messages", "error", err)
|
||||||
|
return a, toast.NewErrorToast("Failed to open session")
|
||||||
}
|
}
|
||||||
|
a.app.Session = msg
|
||||||
|
a.app.Messages = messages
|
||||||
case app.ModelSelectedMsg:
|
case app.ModelSelectedMsg:
|
||||||
a.app.Provider = &msg.Provider
|
a.app.Provider = &msg.Provider
|
||||||
a.app.Model = &msg.Model
|
a.app.Model = &msg.Model
|
||||||
|
|||||||
Reference in New Issue
Block a user