Expand description
Sans I/O building blocks and async I/O shell for the attini coding agent prototype.
The sansio module holds parsers, data types, and state machines
that do not perform any I/O. Async transport, TUI, filesystem, and
subprocess integration live in sibling modules that drive the
Sans I/O types with concrete inputs.
Re-exports§
pub use metrics::Counter;
Modules§
- child_
output - Run a child process while accumulating up to
COMMAND_MAX_STREAM_BYTESof each stream for the tool result, and streaming the child’s output to the parent’s stderr under a byte-rate limit when stderr is a terminal. The streaming is a human-watching copy only: when stderr is not a terminal (a pipe, a test harness, CI) no display bytes are written, which avoids back-pressure that could otherwise stall the child if the retained output is large. Accumulation is bounded byCOMMAND_MAX_STREAM_BYTES, and when a stream exceeds that the retained buffer is truncated withChildOutput::truncatedset. The parent’s stdout is never used here because the CLI’s final result is emitted there. - curl
- Sync HTTP transport for
attini tellvia acurlsubprocess. - metrics
- Small runtime-observable metric primitives shared across the crate.
- permissions
- Filesystem-facing side of the permission system: load rules from
.attini/{NAME}/permissions.jsonl(session-local) and.attini/permissions.jsonl(workspace-wide), and implement the rule append used byattini approve --grant. - sansio
- Sans I/O building blocks for the attini coding agent prototype.
- session
- Filesystem-backed session storage for the CLI agent
(
attini tell). - session_
cmd - Top-level session inspection subcommands (status / logstats).
Session data lives under
.attini/<NAME>/; attini keeps no abstraction over it, so readingconversation.jsonlis done directly on the filesystem. - tell_
cli - Sync single-turn agent loop for
attini tell. - tools
- Workspace tool executor.