Docs / Plugins Build
Source Plugins
Implement the Observer trait to add a knowledge source.
#[async_trait]
pub trait Observer: Send + Sync {
fn name(&self) -> &str;
async fn scan(&self, ctx: &ScanContext) -> Result<ObservationPackage, ObserveError>;
}
Contract:
scanmust not modify the workspace and is safe to call repeatedly; identical workspace state produces identical artifact ids.- Observers collect; they never interpret. Return
ObservationArtifacts (ObservationArtifact::new(source, name, json)), each content-addressed. - Honour
ctx.is_ignored(path)for the configured ignore patterns. - Pass any content you read through
ekos_common::redactionbefore returning it.
Real examples live under ekos/plugins/: file, git, github, confluence, localdocs, pentaho, python, rust, elixir, javascript, perl, clickhouse, crypto.