Expand description
bamboo-subagent — sub-agent fleet runtime.
Slice 1 (this build): pure filesystem logic, no runtime dependency.
store— project-keyed session store + denormalized indices (rebuildable cache).mailbox— Maildir-style persistent inbox (multi-writer / single-reader, crash-safe).
See docs/subagent-actor-runtime-design.md (§3.4, §5) and
docs/subagent-store-mailbox-interface.md for the design these implement.
The session payload is kept opaque (generic T: Serialize/DeserializeOwned) so this
crate stays a leaf and is fully unit-testable with a tempdir; higher layers pass the
domain Session. Index rebuild is decoupled via the store::MetaExtractor seam.
Re-exports§
pub use discovery::Discovery;pub use discovery::Fabric;pub use discovery::FileFabric;pub use error::Result;pub use error::StoreError;pub use executor::ChildExecutor;pub use executor::ChildOutcome;pub use executor::EchoExecutor;pub use executor::EventSink;pub use executor::SteerInbox;pub use fleet::spawn_worker;pub use fleet::SpawnedChild;pub use launcher::LocalSubprocessLauncher;pub use launcher::WorkerLauncher;pub use mailbox::AdmittedSet;pub use mailbox::AgentRef;pub use mailbox::AskBody;pub use mailbox::AskMode;pub use mailbox::Delivered;pub use mailbox::InboxKind;pub use mailbox::InboxMessage;pub use mailbox::Mailbox;pub use mailbox::MsgId;pub use mailbox::ReplyBody;pub use mailbox::ADMITTED_SET_CAPACITY;pub use proto::AgentRecord;pub use proto::ChildFrame;pub use proto::ParentFrame;pub use proto::RunSpec;pub use proto::TerminalStatus;pub use provision::Capabilities;pub use provision::ChildIdentity;pub use provision::ExecutorSpec;pub use provision::Limits;pub use provision::McpProxyConfig;pub use provision::ModelRefSpec;pub use provision::Placement;pub use provision::ProvisionSpec;pub use provision::ScopedCredential;pub use provision::SecretsEnvelope;pub use provision::PROVISION_VERSION;pub use registry::RegisterChild;pub use registry::Registration;pub use registry::Registry;pub use store::ChildEntry;pub use store::ChildFields;pub use store::ChildStatus;pub use store::ChildrenIndex;pub use store::MetaExtractor;pub use store::ProjectIndex;pub use store::ProjectKey;pub use store::RootEntry;pub use store::RootFields;pub use store::SessionLoc;pub use store::SubagentStore;pub use transport::ChildClient;pub use transport::TransportError;pub use transport::TransportResult;pub use transport::WsServer;
Modules§
- discovery
- Tier-1 discovery: a process-independent, file-based fabric (design §4).
- error
- Error model + atomic write helper shared by
storeandmailbox. - executor
- The
ChildExecutorseam: how an actor actually runs a task. - fleet
- Parent-side fleet helpers: spawn an actor subprocess, provision it over stdin, discover it.
- launcher
WorkerLauncher: the seam between “spawn a local subprocess” and “connect to a remote worker” (seedocs/remote-actor-plan.md§3.1).- mailbox
- Maildir-style persistent mailbox (design §3.4).
- proto
- Wire protocol: discovery record + parent/child WebSocket frames.
- provision
- ProvisionSpec — the one-shot bootstrap contract between parent and worker.
- registry
- Tier-2 registry: the parent’s in-memory table of owned children + persistent index upkeep.
- store
- Project-keyed session store + denormalized indices.
- transport
- WebSocket transport (design §6): full-duplex parent↔child link.