Terminal tool improvements (#29924)

WIP

- On macOS/Linux, run the command in bash instead of the user's shell
- Try to prevent the agent from running commands that expect interaction

Release Notes:

- Agent Beta: Switched to using `bash` (if available) instead of the
user's shell when calling the terminal tool.
- Agent Beta: Prevented the agent from hanging when trying to run
interactive commands.

---------

Co-authored-by: WeetHet <stas.ale66@gmail.com>
This commit is contained in:
Cole Miller 2025-05-05 15:57:03 -04:00 committed by GitHub
parent 9cb5ffac25
commit c12e6376b8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 143 additions and 25 deletions

View file

@ -1656,6 +1656,16 @@ impl Project {
})
}
pub fn directory_environment(
&self,
abs_path: Arc<Path>,
cx: &mut App,
) -> Shared<Task<Option<HashMap<String, String>>>> {
self.environment.update(cx, |environment, cx| {
environment.get_directory_environment(abs_path, cx)
})
}
pub fn shell_environment_errors<'a>(
&'a self,
cx: &'a App,