Two fixes for rendering aborted tools in --continue mode:
1. In renderInitialMessages: Check if assistant message was aborted/errored
and immediately mark tool execution components as failed instead of
leaving them in pending state.
2. In AssistantMessageComponent: Don't show "Aborted" text when there are
tool calls in the message, since the tool execution components will
show the error state themselves. This prevents duplicate error messages.
Now aborted tools show properly as red with "Operation aborted" message,
without the duplicate "Aborted" text above them.
- Save and restore thinking level when continuing sessions
- Fix thinking level confirmation message spacing and styling
- Fix thinking text wrapping to preserve ANSI formatting across lines
- Show tool execution components immediately when tool calls appear in streaming
- Update components with streaming arguments as they come in
- Handle incomplete/partial arguments gracefully with optional chaining
- Fix error handling: tools now throw exceptions instead of returning error messages
- Fix bash abort handling to properly reject on abort/timeout
- Clean up error display
- StreamingMessageComponent was just a wrapper around AssistantMessageComponent
- AssistantMessageComponent now handles its own stats rendering
- Made AssistantMessageComponent updatable with updateContent()
- Removed duplicate stats handling code from tui-renderer
- All stats are now managed by the component itself
- Create UserMessageComponent - handles user messages with spacing
- Create AssistantMessageComponent - handles complete assistant messages
- Create ThinkingSelectorComponent - wraps selector with borders
- Add setSelectedIndex to SelectList for preselecting current level
- Simplify tui-renderer by using dedicated components
- Much cleaner architecture - each message type is now a component