feat(cli): Introduce toggleable shell mode with enhanced UI

- Implements a toggleable shell mode, removing the need to prefix every command with `!`.
- Users can now enter and exit shell mode by typing `!` as the first character in an empty input prompt.
- The input prompt visually indicates active shell mode with a distinct color and `! ` prefix.
- Shell command history items (`user_shell`) are now visually differentiated from regular user messages.
- This provides a cleaner and more streamlined user experience for frequent shell interactions.

Fixes https://b.corp.google.com/issues/418509745
This commit is contained in:
Taylor Mullen
2025-05-18 01:18:32 -07:00
committed by N. Taylor Mullen
parent 0d4e0fe647
commit e4d978da7c
6 changed files with 68 additions and 5 deletions

View File

@@ -38,7 +38,10 @@ export const useShellCommandProcessor = (
const commandToExecute = rawQuery.trim().slice(1).trimStart();
const userMessageTimestamp = Date.now();
addItemToHistory({ type: 'user', text: rawQuery }, userMessageTimestamp);
addItemToHistory(
{ type: 'user_shell', text: rawQuery },
userMessageTimestamp,
);
if (!commandToExecute) {
addItemToHistory(