Feat: shellmode to chat history
This commit is contained in:
25
tui.go
25
tui.go
@@ -221,20 +221,37 @@ func executeCommandAndDisplay(cmdText string) {
|
|||||||
output, err := cmd.CombinedOutput()
|
output, err := cmd.CombinedOutput()
|
||||||
// Add the command being executed to the chat
|
// Add the command being executed to the chat
|
||||||
fmt.Fprintf(textView, "\n[yellow]$ %s[-:-:-]\n", cmdText)
|
fmt.Fprintf(textView, "\n[yellow]$ %s[-:-:-]\n", cmdText)
|
||||||
|
var outputContent string
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// Include both output and error
|
// Include both output and error
|
||||||
fmt.Fprintf(textView, "[red]Error: %s[-:-:-]\n", err.Error())
|
errorMsg := "Error: " + err.Error()
|
||||||
|
fmt.Fprintf(textView, "[red]%s[-:-:-]\n", errorMsg)
|
||||||
if len(output) > 0 {
|
if len(output) > 0 {
|
||||||
fmt.Fprintf(textView, "[red]%s[-:-:-]\n", string(output))
|
outputStr := string(output)
|
||||||
|
fmt.Fprintf(textView, "[red]%s[-:-:-]\n", outputStr)
|
||||||
|
outputContent = errorMsg + "\n" + outputStr
|
||||||
|
} else {
|
||||||
|
outputContent = errorMsg
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Only output if successful
|
// Only output if successful
|
||||||
if len(output) > 0 {
|
if len(output) > 0 {
|
||||||
fmt.Fprintf(textView, "[green]%s[-:-:-]\n", string(output))
|
outputStr := string(output)
|
||||||
|
fmt.Fprintf(textView, "[green]%s[-:-:-]\n", outputStr)
|
||||||
|
outputContent = outputStr
|
||||||
} else {
|
} else {
|
||||||
fmt.Fprintf(textView, "[green]Command executed successfully (no output)[-:-:-]\n")
|
successMsg := "Command executed successfully (no output)"
|
||||||
|
fmt.Fprintf(textView, "[green]%s[-:-:-]\n", successMsg)
|
||||||
|
outputContent = successMsg
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Combine command and output in a single message for chat history
|
||||||
|
combinedContent := "$ " + cmdText + "\n\n" + outputContent
|
||||||
|
combinedMsg := models.RoleMsg{
|
||||||
|
Role: cfg.ToolRole,
|
||||||
|
Content: combinedContent,
|
||||||
|
}
|
||||||
|
chatBody.Messages = append(chatBody.Messages, combinedMsg)
|
||||||
// Scroll to end and update colors
|
// Scroll to end and update colors
|
||||||
if scrollToEndEnabled {
|
if scrollToEndEnabled {
|
||||||
textView.ScrollToEnd()
|
textView.ScrollToEnd()
|
||||||
|
|||||||
Reference in New Issue
Block a user