Skip to main content

machi_tools/
lib.rs

1//! Tool contracts, streaming protocol, and concurrent dispatch for Machi.
2//!
3//! Maturity: **core**.
4
5#![forbid(unsafe_code)]
6
7pub mod approval;
8pub mod calc;
9pub mod context;
10pub mod dispatch;
11pub mod error;
12pub mod metadata;
13pub mod registry;
14pub mod source;
15pub mod stream;
16pub mod tool;
17
18pub use approval::{AlwaysDeny, ApprovalDecision, ApprovalGate, AutoApprove, denied_error};
19pub use calc::CalcTool;
20pub use context::{EXTRA_SPAWN_DEPTH, ToolCallContext};
21pub use dispatch::{ApprovalPolicy, DispatchOutcome, DispatchRequest, ToolDispatch};
22pub use error::ToolError;
23pub use metadata::{
24    CapabilityFlag, ConcurrencyMode, Destructiveness, InterruptBehavior, ToolMetadata,
25};
26pub use registry::{CapabilityMode, ToolRegistry};
27pub use source::{StaticToolSource, ToolSource, merge_arc_sources, merge_tool_sources};
28pub use stream::{
29    MAX_DELTA_BYTES, MAX_FRAME_BYTES, ToolProgress, ToolStream, ToolStreamItem, drain_terminal,
30    drain_with_progress, partial_progress_frames, terminal_only, with_progress,
31};
32pub use tool::{DynTool, SharedTool, ToolDefinition, ToolResult};