systemprompt_runtime/
lib.rs1mod context;
2mod database_context;
3mod installation;
4mod registry;
5mod span;
6mod startup_validation;
7mod validation;
8mod wellknown;
9
10pub use context::{AppContext, AppContextBuilder};
11pub use database_context::DatabaseContext;
12pub use installation::{install_module, install_module_with_db};
13pub use registry::{ModuleApiRegistration, ModuleApiRegistry, ModuleRuntime, WellKnownRoute};
14pub use span::create_request_span;
15pub use startup_validation::{
16 display_validation_report, display_validation_warnings, FilesConfigValidator, StartupValidator,
17};
18pub use validation::validate_system;
19pub use wellknown::{get_wellknown_metadata, WellKnownMetadata};
20
21pub use systemprompt_models::modules::{
22 ApiConfig, Module, ModuleDefinition, ModulePermission, ModuleSchema, ModuleSeed, ModuleType,
23 Modules, ServiceCategory,
24};
25
26#[macro_export]
27macro_rules! register_module_api {
28 ($module_name:literal, $category:expr, $router_fn:expr, $auth_required:expr, $module_type:expr) => {
29 inventory::submit! {
30 $crate::ModuleApiRegistration {
31 module_name: $module_name,
32 category: $category,
33 module_type: $module_type,
34 router_fn: $router_fn,
35 auth_required: $auth_required,
36 }
37 }
38 };
39 ($module_name:literal, $category:expr, $router_fn:expr, $auth_required:expr) => {
40 inventory::submit! {
41 $crate::ModuleApiRegistration {
42 module_name: $module_name,
43 category: $category,
44 module_type: $crate::ModuleType::Regular,
45 router_fn: $router_fn,
46 auth_required: $auth_required,
47 }
48 }
49 };
50}
51
52#[macro_export]
53macro_rules! register_wellknown_route {
54 ($path:literal, $handler:expr, $methods:expr, name: $name:literal, description: $desc:literal) => {
55 inventory::submit! {
56 $crate::WellKnownRoute {
57 path: $path,
58 handler_fn: $handler,
59 methods: $methods,
60 }
61 }
62
63 inventory::submit! {
64 $crate::WellKnownMetadata::new($path, $name, $desc)
65 }
66 };
67
68 ($path:literal, $handler:expr, $methods:expr) => {
69 inventory::submit! {
70 $crate::WellKnownRoute {
71 path: $path,
72 handler_fn: $handler,
73 methods: $methods,
74 }
75 }
76 };
77}