Skip to main content

systemprompt_runtime/
lib.rs

1//! `systemprompt-runtime` — application runtime services.
2//!
3//! This crate hosts [`AppContext`], the lifecycle [`AppContextBuilder`],
4//! per-module installation helpers, startup validation, and the typed
5//! [`RuntimeError`] / [`RuntimeResult`] error boundary used by all of
6//! the above.
7//!
8//! Public APIs return [`RuntimeResult<T>`]. [`RuntimeError`] composes
9//! upstream typed errors (`ConfigError`, `RepositoryError`,
10//! `FilesError`, `UserError`, `LoaderError`, `AnalyticsError`,
11//! `ProfileBootstrapError`, `PathError`) via `#[from]`; every variant
12//! built from another error keeps it as its source.
13//!
14//! # Feature flags
15//!
16//! | Feature       | Effect                                                          |
17//! |---------------|------------------------------------------------------------------|
18//! | (default)     | Core context, builder, validation                               |
19//! | `geolocation` | Enables `MaxMind` `GeoIP2` loading via `maxminddb` and pulls in `systemprompt-analytics/geolocation` |
20//!
21//! Copyright (c) systemprompt.io — Business Source License 1.1.
22//! See <https://systemprompt.io> for licensing details.
23
24mod builder;
25mod context;
26mod context_traits;
27mod database_context;
28mod error;
29pub mod managed;
30pub mod schema_currency;
31pub mod services_reconcile;
32mod startup_validation;
33pub mod storage;
34pub mod trace;
35mod validation;
36
37pub use builder::{AppContextBuilder, discover_vertex_models, owner_reassignments};
38pub use context::{AppContext, ConfigPlane, DataPlane, Plugins, ShutdownRequest, Subsystems};
39pub use database_context::DatabaseContext;
40pub use error::{RuntimeError, RuntimeResult};
41pub use schema_currency::assert_schema_current;
42pub use startup_validation::{
43    ExtensionConfigOutcome, FilesConfigValidator, StartupValidator, collect_manifest_errors,
44    display_validation_report, display_validation_warnings, merge_mcp_errors,
45    validate_extension_configs,
46};
47pub use systemprompt_database::MigrationConfig;
48pub use trace::{
49    AiRequestClientEvidence, AiRequestDetail, AiRequestFilter, AiRequestInfo, AiRequestListItem,
50    AiRequestStats, AiRequestSummary, AiTraceService, AuditLookupResult, AuditPage,
51    AuditToolCallRow, ConversationMessage, ExecutionStep, ExecutionStepSummary, LevelCount,
52    LinkedMcpCall, LogSearchFilter, LogSearchItem, LogTimeRange, McpExecutionSummary,
53    McpToolExecution, ModelStatsRow, ModuleCount, ProviderStatsRow, RequestCursor,
54    RequestCursorError, TaskArtifact, TaskInfo, ToolExecutionFilter, ToolExecutionItem,
55    ToolLogEntry, TraceError, TraceEvent, TraceListFilter, TraceListItem, TraceQueryService,
56    TraceRepository,
57};
58pub use validation::{validate_database_url, validate_system};
59
60pub use systemprompt_models::modules::ServiceCategory;