llm_coding_tools_core/
lib.rs1#![doc = include_str!(concat!("../", env!("CARGO_PKG_README")))]
2#![warn(missing_docs)]
3
4#[cfg(all(feature = "async", not(feature = "tokio")))]
6compile_error!("Feature `async` requires a runtime. Enable `tokio` feature instead.");
7
8#[cfg(all(feature = "async", feature = "blocking"))]
9compile_error!("Features `async` and `blocking` are mutually exclusive.");
10
11pub mod context;
12pub mod error;
13pub mod fs;
14pub mod operations;
15pub mod output;
16pub mod path;
17pub mod system_prompt;
18pub mod tool_names;
19pub mod util;
20
21pub use context::ToolContext;
22pub use error::{ToolError, ToolResult};
23pub use output::ToolOutput;
24pub use path::{AbsolutePathResolver, AllowedPathResolver, PathResolver};
25pub use system_prompt::{Substitute, SystemPromptBuilder};
26
27pub use operations::{
29 edit_file, execute_command, glob_files, grep_search, read_file, read_todos, write_file,
30 write_todos, BashOutput, EditError, GlobOutput, GrepFileMatches, GrepLineMatch, GrepOutput,
31 Todo, TodoPriority, TodoState, TodoStatus,
32};
33
34#[cfg(any(feature = "async", feature = "blocking"))]
36pub use operations::{fetch_url, format_json, html_to_markdown, WebFetchOutput};