systemprompt_loader/lib.rs
1//! File and module discovery infrastructure for systemprompt.io.
2//!
3//! Reads the active services-config (with include resolution and
4//! deduplication), loads profile YAML, writes agent files, and discovers
5//! extension manifests under `extensions/`. Sits one level above
6//! [`systemprompt_config`] in the dependency graph so that domain crates
7//! never need to know how the on-disk layout is structured.
8//!
9//! # Modules
10//!
11//! - [`config_loader`] — loads and merges `services.yaml` and its includes.
12//! - [`config_writer`] — creates, edits, and deletes agent files.
13//! - [`extension_loader`] / [`extension_registry`] — discover extension
14//! manifests and resolve binary paths.
15//! - [`module_loader`] — `inventory`-driven extension discovery for the
16//! compiled-in extension trait registry.
17//! - [`profile_loader`] — reads, validates, and writes profile YAML.
18//! - [`error`] — public error types ([`ConfigLoadError`], [`ConfigWriteError`],
19//! [`ExtensionLoadError`]).
20//!
21//! # Feature flags
22//!
23//! This crate has no Cargo features; everything compiles by default.
24
25pub mod config_loader;
26pub mod config_writer;
27pub mod error;
28pub mod extension_loader;
29pub mod extension_registry;
30pub mod module_loader;
31mod modules;
32pub mod profile_loader;
33
34pub use config_loader::ConfigLoader;
35pub use config_writer::ConfigWriter;
36pub use error::{
37 ConfigLoadError, ConfigLoadResult, ConfigWriteError, ConfigWriteResult, ExtensionLoadError,
38 ExtensionLoadResult, ProfileLoadError, ProfileLoadResult,
39};
40pub use extension_loader::{ExtensionLoader, ExtensionValidationResult};
41pub use extension_registry::ExtensionRegistry;
42pub use module_loader::ModuleLoader;
43pub use profile_loader::ProfileLoader;