systemprompt-traits 0.1.21

Minimal shared traits and contracts for systemprompt.io
Documentation
pub mod ai_providers;
pub mod analytics;
pub mod artifact;
pub mod auth;
pub mod content;
pub mod context;
pub mod context_provider;
pub mod domain_config;
pub mod events;
pub mod extension_error;
pub mod file_upload;
pub mod jwt;
pub mod log_service;
pub mod mcp_service;
pub mod module;
pub mod process;
pub mod registry;
pub mod repository;
pub mod scheduler;
pub mod service;
pub mod session_analytics;
pub mod storage;
pub mod validation;
pub mod validation_report;

pub use systemprompt_provider_contracts::{
    ChatMessage, ChatRequest, ChatResponse, ChatRole, ChatStream, Job, JobContext, JobResult,
    LlmProvider, LlmProviderError, LlmProviderResult, SamplingParameters, TokenUsage,
    ToolCallRequest, ToolCallResult, ToolContent, ToolContext, ToolDefinition,
    ToolExecutionContext, ToolExecutor, ToolProvider, ToolProviderError, ToolProviderResult,
    submit_job,
};

pub use context::{
    AppContext, ConfigProvider, ContextPropagation, DatabaseHandle, InjectContextHeaders, Module,
    ModuleRegistry,
};

#[cfg(feature = "web")]
pub use context::ApiModule;

pub use systemprompt_identifiers::{
    DbValue, FromDbValue, JsonRow, ToDbValue, parse_database_datetime,
};

pub use repository::RepositoryError;

pub use service::{AsyncService, Service};

pub use log_service::LogService;

pub use context_provider::{
    ContextProvider, ContextProviderError, ContextWithStats, DynContextProvider,
};

pub use artifact::{ArtifactSupport, schemas};

pub use validation::{MetadataValidation, Validate, ValidationError, ValidationResult};

pub use events::{
    AnalyticsEvent, AnalyticsEventPublisher, LogEventData, LogEventLevel, LogEventPublisher,
    UserEvent, UserEventPublisher,
};

pub use analytics::{
    AnalyticsProvider, AnalyticsProviderError, AnalyticsResult, AnalyticsSession,
    CreateSessionInput, DynAnalyticsProvider, DynFingerprintProvider, FingerprintProvider,
    SessionAnalytics,
};

pub use auth::{
    AuthAction, AuthPermission, AuthProvider, AuthProviderError, AuthResult, AuthUser,
    AuthorizationProvider, DynAuthProvider, DynAuthorizationProvider, DynRoleProvider,
    DynUserProvider, RoleProvider, TokenClaims, TokenPair, UserProvider,
};

pub use storage::{FileStorage, StoredFileId, StoredFileMetadata};

pub use ai_providers::{
    AiFilePersistenceProvider, AiGeneratedFile, AiProviderError, AiProviderResult,
    AiSessionProvider, CreateAiSessionParams, DynAiFilePersistenceProvider, DynAiSessionProvider,
    ImageGenerationInfo, ImageMetadata, ImageStorageConfig, InsertAiFileParams,
};

pub use scheduler::JobStatus;

pub use registry::{
    AgentInfo, AgentRegistryProvider, DynAgentRegistryProvider, DynMcpRegistryProvider,
    McpRegistryProvider, McpServerInfo, RegistryError, ServiceOAuthConfig,
};

pub use extension_error::{ApiError, ExtensionError, McpErrorData};

pub use domain_config::{DomainConfig, DomainConfigError, DomainConfigRegistry};

pub use validation_report::{
    StartupValidationError, StartupValidationReport, ValidationReport, ValidationWarning,
};

pub use file_upload::{
    DynFileUploadProvider, FileUploadInput, FileUploadProvider, FileUploadProviderError,
    FileUploadResult, UploadedFileInfo,
};

pub use jwt::{
    AgentJwtClaims, DynJwtValidationProvider, GenerateTokenParams, JwtProviderError, JwtResult,
    JwtValidationProvider,
};

pub use mcp_service::{
    DynMcpServiceProvider, McpServerMetadata, McpServiceProvider, McpServiceProviderError,
    McpServiceResult,
};

pub use process::{
    DynProcessCleanupProvider, ProcessCleanupProvider, ProcessProviderError, ProcessResult,
};

pub use session_analytics::{
    DynSessionAnalyticsProvider, SessionAnalyticsProvider, SessionAnalyticsProviderError,
    SessionAnalyticsResult,
};

pub type Result<T> = std::result::Result<T, Box<dyn std::error::Error + Send + Sync>>;

mod startup_events;
pub use startup_events::*;