Skip to main content

systemprompt_traits/
lib.rs

1pub mod ai_providers;
2pub mod analytics;
3pub mod artifact;
4pub mod auth;
5pub mod content;
6pub mod context;
7pub mod context_provider;
8pub mod domain_config;
9pub mod events;
10pub mod extension_error;
11pub mod file_upload;
12pub mod jwt;
13pub mod log_service;
14pub mod mcp_service;
15pub mod module;
16pub mod process;
17pub mod registry;
18pub mod repository;
19pub mod scheduler;
20pub mod service;
21pub mod session_analytics;
22pub mod storage;
23pub mod validation;
24pub mod validation_report;
25
26pub use systemprompt_provider_contracts::{
27    submit_job, ChatMessage, ChatRequest, ChatResponse, ChatRole, ChatStream, Job, JobContext,
28    JobResult, LlmProvider, LlmProviderError, LlmProviderResult, SamplingParameters, TokenUsage,
29    ToolCallRequest, ToolCallResult, ToolContent, ToolContext, ToolDefinition,
30    ToolExecutionContext, ToolExecutor, ToolProvider, ToolProviderError, ToolProviderResult,
31};
32
33pub use context::{
34    AppContext, ConfigProvider, ContextPropagation, DatabaseHandle, InjectContextHeaders, Module,
35    ModuleRegistry,
36};
37
38#[cfg(feature = "web")]
39pub use context::ApiModule;
40
41pub use systemprompt_identifiers::{
42    parse_database_datetime, DbValue, FromDbValue, JsonRow, ToDbValue,
43};
44
45pub use repository::{CrudRepository, Repository, RepositoryError};
46
47pub use service::{AsyncService, Service};
48
49pub use log_service::LogService;
50
51pub use context_provider::{
52    ContextProvider, ContextProviderError, ContextWithStats, DynContextProvider,
53};
54
55pub use artifact::{schemas, ArtifactSupport};
56
57pub use validation::{MetadataValidation, Validate, ValidationError, ValidationResult};
58
59pub use events::{
60    AnalyticsEvent, AnalyticsEventPublisher, LogEventData, LogEventLevel, LogEventPublisher,
61    UserEvent, UserEventPublisher,
62};
63
64pub use analytics::{
65    AnalyticsProvider, AnalyticsProviderError, AnalyticsResult, AnalyticsSession,
66    CreateSessionInput, DynAnalyticsProvider, DynFingerprintProvider, FingerprintProvider,
67    SessionAnalytics,
68};
69
70pub use auth::{
71    AuthAction, AuthPermission, AuthProvider, AuthProviderError, AuthResult, AuthUser,
72    AuthorizationProvider, DynAuthProvider, DynAuthorizationProvider, DynRoleProvider,
73    DynUserProvider, RoleProvider, TokenClaims, TokenPair, UserProvider,
74};
75
76pub use storage::{FileStorage, StoredFileId, StoredFileMetadata};
77
78pub use ai_providers::{
79    AiFilePersistenceProvider, AiGeneratedFile, AiProviderError, AiProviderResult,
80    AiSessionProvider, CreateAiSessionParams, DynAiFilePersistenceProvider, DynAiSessionProvider,
81    ImageGenerationInfo, ImageMetadata, ImageStorageConfig, InsertAiFileParams,
82};
83
84pub use scheduler::JobStatus;
85
86pub use registry::{
87    AgentInfo, AgentRegistryProvider, DynAgentRegistryProvider, DynMcpRegistryProvider,
88    McpRegistryProvider, McpServerInfo, RegistryError, ServiceOAuthConfig,
89};
90
91pub use extension_error::{ApiError, ExtensionError, McpErrorData};
92
93pub use domain_config::{DomainConfig, DomainConfigError, DomainConfigRegistry};
94
95pub use validation_report::{
96    StartupValidationError, StartupValidationReport, ValidationReport, ValidationWarning,
97};
98
99pub use file_upload::{
100    DynFileUploadProvider, FileUploadInput, FileUploadProvider, FileUploadProviderError,
101    FileUploadResult, UploadedFileInfo,
102};
103
104pub use jwt::{
105    AgentJwtClaims, DynJwtValidationProvider, GenerateTokenParams, JwtProviderError, JwtResult,
106    JwtValidationProvider,
107};
108
109pub use mcp_service::{
110    DynMcpServiceProvider, McpServerMetadata, McpServiceProvider, McpServiceProviderError,
111    McpServiceResult,
112};
113
114pub use process::{
115    DynProcessCleanupProvider, ProcessCleanupProvider, ProcessProviderError, ProcessResult,
116};
117
118pub use session_analytics::{
119    DynSessionAnalyticsProvider, SessionAnalyticsProvider, SessionAnalyticsProviderError,
120    SessionAnalyticsResult,
121};
122
123pub type Result<T> = std::result::Result<T, Box<dyn std::error::Error + Send + Sync>>;
124
125mod startup_events;
126pub use startup_events::*;