- Removed HTTP adapter module from CMS infrastructure. - Updated CMS infrastructure module to exclude HTTP. - Introduced presentation layer in CMS with DTOs and handlers for REST API. - Added command types for CMS domain operations to encapsulate input data. - Created typed error handling for CMS presentation layer. - Implemented handlers for CMS REST API endpoints. - Removed HTTP DTOs and handlers from IAM infrastructure. - Introduced command types for IAM domain operations. - Created presentation layer in IAM with DTOs and handlers for OAuth flow. - Implemented typed error handling for IAM presentation layer.
49 lines
1.8 KiB
Rust
49 lines
1.8 KiB
Rust
//! Domain layer — pure entities, value objects, repository traits, and service interfaces.
|
|
//!
|
|
//! This is the innermost layer of the Clean Architecture onion. It has **zero
|
|
//! infrastructure dependencies** — all I/O is expressed through repository
|
|
//! traits defined in [`repository`], and business operations through service
|
|
//! traits in [`service`].
|
|
//!
|
|
//! ## Sub-modules
|
|
//! - `app_config` — provider configuration model (`AppConfig`, `ProviderConfig`, `ModelRole`)
|
|
//! - `conversation` — conversation entity + chat message model (`Conversation`, `ChatMessage`)
|
|
//! - `edit_log` — edit log model (`EditLog`, `EditLogEntry`)
|
|
//! - `memory` — memory file model (`Memory`)
|
|
//! - `settings` — application settings model (`Settings`, `InternetMode`, `SettingsFlags`)
|
|
//! - `repository` — trait definitions for all persistence adapters
|
|
//! - `service` — trait definitions for all application services
|
|
//!
|
|
//! ## Key Design Principle
|
|
//! Domain types are plain Rust structs with `serde` for serialisation.
|
|
//! They contain no I/O, no framework imports, and no side effects.
|
|
|
|
pub mod app_config;
|
|
pub mod commands;
|
|
pub mod conversation;
|
|
pub mod edit_log;
|
|
pub mod error;
|
|
pub mod memory;
|
|
pub mod repository;
|
|
pub mod service;
|
|
pub mod settings;
|
|
|
|
pub use app_config::AppConfig;
|
|
pub use app_config::ModelRole;
|
|
pub use app_config::ProviderConfig;
|
|
pub use conversation::Conversation;
|
|
pub use edit_log::EditLog;
|
|
pub use edit_log::EditLogEntry;
|
|
pub use memory::Memory;
|
|
pub use repository::AppConfigRepository;
|
|
pub use repository::ConversationRepository;
|
|
pub use repository::EditLogRepository;
|
|
pub use repository::MemoryRepository;
|
|
pub use repository::SettingsRepository;
|
|
pub use service::ConversationService;
|
|
pub use service::MemoryService;
|
|
pub use service::SettingsService;
|
|
pub use settings::InternetMode;
|
|
pub use settings::Settings;
|
|
pub use settings::SettingsFlags;
|