Add guidance for terminal tool about being a pty (#46417)

Richard Feldman created

Release Notes:

- N/A

Change summary

crates/agent/src/tools/terminal_tool.rs | 3 +++
1 file changed, 3 insertions(+)

Detailed changes

crates/agent/src/tools/terminal_tool.rs 🔗

@@ -35,6 +35,9 @@ const COMMAND_OUTPUT_LIMIT: u64 = 16 * 1024;
 /// For potentially long-running commands, prefer specifying `timeout_ms` to bound runtime and prevent indefinite hangs.
 ///
 /// Remember that each invocation of this tool will spawn a new shell process, so you can't rely on any state from previous invocations.
+///
+/// The terminal emulator is an interactive pty, so commands may block waiting for user input.
+/// Some commands can be configured not to do this, such as `git --no-pager diff` and similar.
 #[derive(Clone, Debug, Serialize, Deserialize, JsonSchema)]
 pub struct TerminalToolInput {
     /// The one-liner command to execute.