Feature: Unified CLI Error Handling and User Feedback As a CLI user I want consistent error messages and user feedback across all commands So that I have a predictable and professional experience Background: Given the CLI output manager is initialized And the output format is set to "rich" Scenario: Display success message When I display a success message "Operation completed successfully" Then the message should be displayed in green And the message should contain a checkmark symbol Scenario: Display warning message When I display a warning message "This action may have side effects" Then the message should be displayed in yellow And the message should contain a warning indicator Scenario: Display error message without debug When I display an error with label "Validation Error" and message "Invalid input" And debug mode is disabled Then the error should be displayed in red And no stack trace should be shown Scenario: Display error message with debug When I display an error with label "Validation Error" and message "Invalid input" And debug mode is enabled Then the error should be displayed in red And the stack trace should be shown Scenario: Display success panel When I display a success panel with title "Success" and content "All operations completed" Then a green panel should be displayed And the panel should contain the title "Success" Scenario: Display error panel When I display an error panel with title "Error" and content "Operation failed" Then a red panel should be displayed And the panel should contain the title "Error" Scenario: Display table with rich format When I display a table with columns "Name, Status, Created" And the table contains 2 rows of data And the output format is "rich" Then a formatted table should be displayed And the table should have 3 columns Scenario: Display table with JSON format When I display a table with columns "Name, Status, Created" And the table contains 2 rows of data And the output format is "json" Then JSON output should be displayed And the CLI output should be valid JSON Scenario: Display table with YAML format When I display a table with columns "Name, Status, Created" And the table contains 2 rows of data And the output format is "yaml" Then YAML output should be displayed And the CLI output should be valid YAML Scenario: Handle CleverAgentsError exception When a CleverAgentsError is raised with message "Resource not found" And the error is handled by the CLI output manager Then a user-friendly error message should be displayed And the application should exit with code 1 Scenario: Handle unexpected exception When an unexpected exception is raised with message "Something went wrong" And the error is handled by the CLI output manager Then a generic error message should be displayed And the application should exit with code 1 Scenario: Display info message When I display an info message "Processing started" Then the message should be displayed And the message should be readable Scenario: Error output goes to stderr When an error is displayed Then the error should be written to stderr And not to stdout Scenario: Success output goes to stdout When a success message is displayed Then the message should be written to stdout And not to stderr Scenario: Display success message with JSON format When the output format is "json" And I display a success message "JSON success message" Then JSON output should be displayed And the CLI output should be valid JSON Scenario: Display success message with plain format When the output format is "plain" And I display a success message "Plain success message" Then the message should contain a checkmark symbol Scenario: Display warning message with JSON format When the output format is "json" And I display a warning message "JSON warning message" Then JSON output should be displayed Scenario: Display warning message with plain format When the output format is "plain" And I display a warning message "Plain warning message" Then the message should contain a warning indicator Scenario: Display info message with JSON format When the output format is "json" And I display an info message "JSON info message" Then JSON output should be displayed Scenario: Display info message with plain format When the output format is "plain" And I display an info message "Plain info message" Then the message should be displayed Scenario: Display error panel with JSON format When the output format is "json" And I display an error panel with title "JSON Error" and content "Error details" Then the error should be written to stderr Scenario: Display error panel with plain format When the output format is "plain" And I display an error panel with title "Plain Error" and content "Error details" Then the error should be written to stderr Scenario: Display success panel with JSON format When the output format is "json" And I display a success panel with title "JSON Done" and content "All good" Then JSON output should be displayed Scenario: Display success panel with plain format When the output format is "plain" And I display a success panel with title "Plain Done" and content "All good" Then the message should be written to stdout Scenario: Display table with JSON format using correct step order When the output format is "json" And I display a table with columns "Name, Status" And the table contains 2 rows of data Then JSON output should be displayed And the CLI output should be valid JSON Scenario: Display table with YAML format using correct step order When the output format is "yaml" And I display a table with columns "Name, Status" And the table contains 2 rows of data Then YAML output should be displayed Scenario: Display table with plain format When the output format is "plain" And I display a table with columns "Name, Status" And the table contains 2 rows of data Then a formatted table should be displayed Scenario: Handle exception with JSON format When the output format is "json" And an error is displayed Then the error should be written to stderr Scenario: Handle exception with plain format When the output format is "plain" And an error is displayed Then the error should be written to stderr Scenario: Display error with debug mode enabled before display Given debug mode is enabled When an error is displayed Then the error should be written to stderr Scenario: Display success via manager instance method When I display success via the manager method "Manager success" Then the message should be written to stdout Scenario: Display warning via manager instance method When I display warning via the manager method "Manager warning" Then the message should be written to stdout