Expand description
agent-block-core — host runtime + Lua stdlib bridge + EventBus.
Depends on agent-block-types (error / obs) and agent-block-mcp
(rmcp wrapper). The bin crate agent-block is a thin CLI on top.
§Cargo features
All three are on by default, so the default build (and the
agent-block CLI) keeps the full runtime surface. SDK embedders that
only need a subset can opt out with default-features = false and
re-enable individual axes:
| Feature | Enables | Pulls in |
|---|---|---|
mesh | mesh.* Lua bridge, relay connect, Ed25519 mesh identity | agent-mesh-core, agent-mesh-sdk |
sqlite | sql.* / kv.* / ts.* Lua bridges (SQLite-backed) | rusqlite (bundled), mlua-batteries/{sql,kv} |
mcp-http | mcp.connect_http (Streamable HTTP / SSE MCP transport) | agent-block-mcp/mcp-http → rmcp HTTP-client transports |
The stdio MCP transport (mcp.connect), http.*, tool.*, sh.*,
log.*, bus.*, and the embedded StdPkg blocks are always available.
When a feature is off:
mesh: themesh.*bridge is not registered;BlockConfig::relay_url/secret_keyare accepted but ignored.sqlite: thesql.*/kv.*/ts.*bridges are not registered;BlockConfig::sql_path/kv_path/ts_pathare accepted but ignored (fields retained for API stability).mcp-http:mcp.connect_httpreturns an explicit error when called.
§Sandbox
sandbox installs an optional process-wide execution boundary (Landlock +
seccomp, Linux only): filesystem writes are confined to an allowlist and
io_uring is denied, while reads and executes stay open. It is inherited by
sh.exec / mcp.connect children, and must be applied before any async
runtime spawns worker threads — see the module docs.
Re-exports§
pub use host::run;pub use host::BlockConfig;pub use host::BlockConfigBuilder;pub use host::HostContext;
Modules§
- bridge
- Lua Stdlib Bridge — injects all
*.*global APIs into the Lua VM. - bus
- EventBus: serial event dispatcher feeding Lua handlers registered via
bus.on(kind, fn)/bus.on_any(fn). - host
- Host — the thin Rust shell that wires up Lua VM, Mesh, HTTP, and MCP.
- sandbox
- Sandbox — a generic, process-wide execution boundary (Linux only).