Skip to main content

Crate attini

Crate attini 

Source
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_BYTES of 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 by COMMAND_MAX_STREAM_BYTES, and when a stream exceeds that the retained buffer is truncated with ChildOutput::truncated set. The parent’s stdout is never used here because the CLI’s final result is emitted there.
curl
Sync HTTP transport for attini tell via a curl subprocess.
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 by attini 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 reading conversation.jsonl is done directly on the filesystem.
tell_cli
Sync single-turn agent loop for attini tell.
tools
Workspace tool executor.