diff --git a/readline/errors.go b/readline/errors.go index 83c26e86e..bb3fbd473 100644 --- a/readline/errors.go +++ b/readline/errors.go @@ -6,9 +6,6 @@ import ( var ErrInterrupt = errors.New("Interrupt") -// ErrExpandOutput is returned when user presses Ctrl+O to expand tool output -var ErrExpandOutput = errors.New("ExpandOutput") - type InterruptError struct { Line []rune } diff --git a/readline/readline.go b/readline/readline.go index 8bbef66fd..c12327472 100644 --- a/readline/readline.go +++ b/readline/readline.go @@ -206,9 +206,6 @@ func (i *Instance) Readline() (string, error) { buf.DeleteBefore() case CharCtrlL: buf.ClearScreen() - case CharCtrlO: - // Ctrl+O - expand tool output - return "", ErrExpandOutput case CharCtrlW: buf.DeleteWord() case CharCtrlZ: diff --git a/x/cmd/run.go b/x/cmd/run.go index 178659e9f..8dd2f6bc1 100644 --- a/x/cmd/run.go +++ b/x/cmd/run.go @@ -137,13 +137,6 @@ type RunOptions struct { // YoloMode skips all tool approval prompts YoloMode bool - - // LastToolOutput stores the full output of the last tool execution - // for Ctrl+O expansion. Updated by Chat(), read by caller. - LastToolOutput *string - - // LastToolOutputTruncated stores the truncated version shown inline - LastToolOutputTruncated *string } // Chat runs an agent chat loop with tool support. @@ -446,25 +439,15 @@ func Chat(ctx context.Context, opts RunOptions) (*api.Message, error) { toolSuccess: // Display tool output (truncated for display) - truncatedOutput := "" if toolResult != "" { output := toolResult if len(output) > 300 { - output = output[:300] + "... (truncated, press Ctrl+O to expand)" + output = output[:300] + "... (truncated)" } - truncatedOutput = output // Show result in grey, indented fmt.Fprintf(os.Stderr, "\033[90m %s\033[0m\n", strings.ReplaceAll(output, "\n", "\n ")) } - // Store full and truncated output for Ctrl+O toggle - if opts.LastToolOutput != nil { - *opts.LastToolOutput = toolResult - } - if opts.LastToolOutputTruncated != nil { - *opts.LastToolOutputTruncated = truncatedOutput - } - // Truncate output to prevent context overflow toolResultForLLM := truncateToolOutput(toolResult, opts.Model) @@ -690,11 +673,6 @@ func GenerateInteractive(cmd *cobra.Command, modelName string, wordWrap bool, op var messages []api.Message var sb strings.Builder - // Track last tool output for Ctrl+O toggle - var lastToolOutput string - var lastToolOutputTruncated string - var toolOutputExpanded bool - for { line, err := scanner.Readline() switch { @@ -707,20 +685,6 @@ func GenerateInteractive(cmd *cobra.Command, modelName string, wordWrap bool, op } sb.Reset() continue - case errors.Is(err, readline.ErrExpandOutput): - // Ctrl+O pressed - toggle between expanded and collapsed tool output - if lastToolOutput == "" { - fmt.Fprintf(os.Stderr, "\033[90mNo tool output to expand\033[0m\n") - } else if toolOutputExpanded { - // Currently expanded, show truncated - fmt.Fprintf(os.Stderr, "\033[90m %s\033[0m\n", strings.ReplaceAll(lastToolOutputTruncated, "\n", "\n ")) - toolOutputExpanded = false - } else { - // Currently collapsed, show full - fmt.Fprintf(os.Stderr, "\033[90m %s\033[0m\n", strings.ReplaceAll(lastToolOutput, "\n", "\n ")) - toolOutputExpanded = true - } - continue case err != nil: return err } @@ -759,21 +723,17 @@ func GenerateInteractive(cmd *cobra.Command, modelName string, wordWrap bool, op messages = append(messages, newMessage) opts := RunOptions{ - Model: modelName, - Messages: messages, - WordWrap: wordWrap, - Options: options, - Think: think, - HideThinking: hideThinking, - KeepAlive: keepAlive, - Tools: toolRegistry, - Approval: approval, - YoloMode: yoloMode, - LastToolOutput: &lastToolOutput, - LastToolOutputTruncated: &lastToolOutputTruncated, + Model: modelName, + Messages: messages, + WordWrap: wordWrap, + Options: options, + Think: think, + HideThinking: hideThinking, + KeepAlive: keepAlive, + Tools: toolRegistry, + Approval: approval, + YoloMode: yoloMode, } - // Reset expanded state for new tool execution - toolOutputExpanded = false assistant, err := Chat(cmd.Context(), opts) if err != nil {