Expand description
§scema-tools — perception
The only crate in the read path allowed to touch the outside world. Observer is the
interface and RepoObserver is the first implementation.
ImportObserver is the second, and it is what makes omni’s domain-agnosticism
operational rather than merely stated. A source tree can be perceived here because it is
a filesystem walk in Rust. A running Solana bot, a set of Chainlink oracle feeds and a
DOM cannot be — they live behind another lockfile, a Python package and a browser — and
linking any of them would make this crate a hub of domain dependencies, which is exactly
what the workspace note forbids. So the thing being observed describes itself in
scema-world’s vocabulary, and this crate reads that. There are four producers on that
contract now and only one of them is written in a language this crate can link.
Workspace lives here too, and it belongs to the read path for a reason that is easy
to miss: the CLI has an operator typing paths and needs no confinement, but the daemon
and the MCP server take paths from a browser extension and a language model. “Observe
this directory” from either of those is an instruction from somewhere the operator is
not looking.
Actuators (the write path) are not here yet. That is deliberate rather than unfinished:
the loop is worth trusting with a keyboard only after the decision layer above it has
been watched abstaining on real inputs for a while, and scema execute says so rather
than pretending.
Re-exports§
pub use import::ImportObserver;pub use observer::resolve;pub use observer::Observer;pub use repo::RepoObserver;pub use workspace::Workspace;
Modules§
- import
ImportObserver: a world perceived somewhere else.- observer
Observer: the only interface between the agent and a real environment.- repo
RepoObserver: a source tree, perceived.- workspace
Workspace: the answer to where, and the only thing allowed to answer it.
Functions§
- default_
observers - The observers compiled into this build, in resolution order.