vtcode_bash_runner/
lib.rs1#![allow(
2 missing_docs,
3 dead_code,
4 unused_imports,
5 reason = "Intentional compatibility, platform, or test-only suppression."
6)]
7#![expect(
8 unused_results,
9 clippy::let_underscore_must_use,
10 clippy::indexing_slicing,
11 reason = "Process wrappers intentionally detach best-effort tasks, use OS process IDs, and configure commands through bounded builder APIs."
12)]
13pub mod background;
30pub mod executor;
31pub mod pipe;
32pub mod policy;
33pub mod process;
34pub mod process_group;
35#[cfg(unix)]
36pub mod process_owner;
37pub mod runner;
38pub mod stream;
39
40pub use background::{BackgroundCommandManager, BackgroundTaskHandle, BackgroundTaskStatus};
42
43#[cfg(feature = "dry-run")]
45pub use executor::DryRunCommandExecutor;
46#[cfg(feature = "exec-events")]
47pub use executor::EventfulExecutor;
48#[cfg(feature = "std-process")]
49pub use executor::ProcessCommandExecutor;
50#[cfg(feature = "pure-rust")]
51pub use executor::PureRustCommandExecutor;
52pub use executor::{CommandCategory, CommandExecutor, CommandInvocation, CommandOutput, CommandStatus, ShellKind};
53
54pub use policy::{AllowAllPolicy, CommandPolicy, WorkspaceGuardPolicy};
56
57pub use runner::{BashRunner, RmOptions};
59
60pub(crate) use stream::{ReadLineResult, read_line_with_limit};
62
63pub use pipe::{
65 PipeSpawnOptions, PipeStdinMode, spawn_process as spawn_pipe_process,
66 spawn_process_no_stdin as spawn_pipe_process_no_stdin,
67 spawn_process_with_options as spawn_pipe_process_with_options,
68};
69
70pub use process::{
72 ChildTerminator, ExecCommandSession, ProcessHandle, PtyHandle, PtyHandles, SpawnedProcess, SpawnedPty,
73 collect_output_until_exit,
74};
75
76pub use process_group::{
78 DEFAULT_GRACEFUL_TIMEOUT_MS, GracefulTerminationResult, KillSignal, detach_from_tty, graceful_kill_process_group,
79 graceful_kill_process_group_default, graceful_kill_process_group_default_async, kill_child_process_group,
80 kill_child_process_group_with_signal, kill_process_group, kill_process_group_by_pid,
81 kill_process_group_by_pid_with_signal, kill_process_group_with_signal, set_parent_death_signal, set_process_group,
82};
83
84#[cfg(windows)]
85pub use process_group::kill_process;