1mod constants;
9mod executor;
10mod fence;
11mod format;
12mod run;
13mod schema;
14mod types;
15
16pub use constants::*;
17pub use executor::{default_executor, BashExecutor, BashRunInput, BashRunResult, BackgroundReadResult};
18pub use format::{
19 format_background_started_text, format_bash_kill_text,
20 format_bash_output_text, format_result_text, format_timeout_text,
21 HeadTailBuffer,
22};
23pub use schema::{
24 safe_parse_bash_kill_params, safe_parse_bash_output_params,
25 safe_parse_bash_params, BashKillParams, BashOutputParams, BashParams,
26 BashParseError, BASH_KILL_TOOL_DESCRIPTION, BASH_KILL_TOOL_NAME,
27 BASH_OUTPUT_TOOL_DESCRIPTION, BASH_OUTPUT_TOOL_NAME, BASH_TOOL_DESCRIPTION,
28 BASH_TOOL_NAME,
29};
30pub use types::{
31 BashBackgroundStarted, BashError, BashKillResult, BashNonzeroExit, BashOk,
32 BashOutputResult, BashPermissionPolicy, BashResult, BashSessionConfig,
33 BashTimeout, TimeoutReason,
34};
35
36pub async fn bash(
37 params: serde_json::Value,
38 session: &BashSessionConfig,
39) -> BashResult {
40 run::bash_run(params, session).await
41}
42
43pub async fn bash_output(
44 params: serde_json::Value,
45 session: &BashSessionConfig,
46) -> BashOutputResult {
47 run::bash_output_run(params, session).await
48}
49
50pub async fn bash_kill(
51 params: serde_json::Value,
52 session: &BashSessionConfig,
53) -> BashKillResult {
54 run::bash_kill_run(params, session).await
55}
56
57pub use run::{apply_cwd_carry, detect_top_level_cd, CwdCarryOutcome};