systemprompt_runtime/
lib.rs1mod builder;
23mod context;
24mod context_traits;
25mod database_context;
26mod error;
27mod registry;
28mod span;
29mod startup_validation;
30mod validation;
31mod wellknown;
32
33pub use builder::AppContextBuilder;
34pub use context::{AppContext, ConfigPlane, DataPlane, Plugins, Subsystems};
35pub use database_context::DatabaseContext;
36pub use error::{RuntimeError, RuntimeResult};
37pub use registry::{ModuleApiRegistration, ModuleApiRegistry, ModuleType, WellKnownRoute};
38pub use span::create_request_span;
39pub use startup_validation::{
40 ExtensionConfigOutcome, FilesConfigValidator, StartupValidator, collect_manifest_errors,
41 display_validation_report, display_validation_warnings, merge_mcp_errors,
42 validate_extension_configs,
43};
44pub use systemprompt_database::MigrationConfig;
45pub use validation::{validate_database_path, validate_system};
46pub use wellknown::{WellKnownMetadata, get_wellknown_metadata};
47
48pub use systemprompt_models::modules::ServiceCategory;
49
50#[macro_export]
51macro_rules! register_module_api {
52 ($module_name:literal, $category:expr, $router_fn:expr, $auth_required:expr, $module_type:expr) => {
53 inventory::submit! {
54 $crate::ModuleApiRegistration {
55 module_name: $module_name,
56 category: $category,
57 module_type: $module_type,
58 router_fn: $router_fn,
59 auth_required: $auth_required,
60 }
61 }
62 };
63 ($module_name:literal, $category:expr, $router_fn:expr, $auth_required:expr) => {
64 inventory::submit! {
65 $crate::ModuleApiRegistration {
66 module_name: $module_name,
67 category: $category,
68 module_type: $crate::ModuleType::Regular,
69 router_fn: $router_fn,
70 auth_required: $auth_required,
71 }
72 }
73 };
74}
75
76#[macro_export]
77macro_rules! register_wellknown_route {
78 ($path:literal, $handler:expr, $methods:expr, name: $name:literal, description: $desc:literal) => {
79 inventory::submit! {
80 $crate::WellKnownRoute {
81 path: $path,
82 handler_fn: $handler,
83 methods: $methods,
84 }
85 }
86
87 inventory::submit! {
88 $crate::WellKnownMetadata::new($path, $name, $desc)
89 }
90 };
91
92 ($path:literal, $handler:expr, $methods:expr) => {
93 inventory::submit! {
94 $crate::WellKnownRoute {
95 path: $path,
96 handler_fn: $handler,
97 methods: $methods,
98 }
99 }
100 };
101}