diff --git a/packages/tui/internal/components/chat/editor.go b/packages/tui/internal/components/chat/editor.go index 0c52ca84..71004970 100644 --- a/packages/tui/internal/components/chat/editor.go +++ b/packages/tui/internal/components/chat/editor.go @@ -489,11 +489,22 @@ func (m *editorComponent) Submit() (tea.Model, tea.Cmd) { var cmds []tea.Cmd if strings.HasPrefix(value, "/") { - value = value[1:] - commandName := strings.Split(value, " ")[0] + // Expand attachments in the value to get actual content + expandedValue := value + attachments := m.textarea.GetAttachments() + for _, att := range attachments { + if att.Type == "text" && att.Source != nil { + if textSource, ok := att.Source.(*attachment.TextSource); ok { + expandedValue = strings.Replace(expandedValue, att.Display, textSource.Value, 1) + } + } + } + + expandedValue = expandedValue[1:] // Remove the "/" + commandName := strings.Split(expandedValue, " ")[0] command := m.app.Commands[commands.CommandName(commandName)] if command.Custom { - args := strings.TrimPrefix(value, command.PrimaryTrigger()+" ") + args := strings.TrimPrefix(expandedValue, command.PrimaryTrigger()+" ") cmds = append( cmds, util.CmdHandler(app.SendCommand{Command: string(command.Name), Args: args}),