swarm-engine-core 0.1.6

Core types and orchestration for SwarmEngine
Documentation
//! Learn Module - 学習系 Domain の分離
//!
//! ## 設計思想
//!
//! **Engine (Core) と Learn の責務を明確に分離する。**
//!
//! - **Core (Engine)**: ActionEvent を発行、基本統計を管理
//! - **Learn**: ActionEvent を受け取り、学習パターンを分析
//!
//! ## Model Layer
//!
//! ```text
//! Model (base)
//!   ├── Scorable      → 行動選択に使用(UCB1, Thompson, Greedy)
//!   └── Parametric    → 戦略設定に使用(Orchestrator初期化)
//! ```
//!
//! ## モデル種類
//!
//! | モデル            | 責務                           | 生存期間       |
//! |-------------------|--------------------------------|----------------|
//! | LearnedModel      | 行動選択スコア(遷移、N-gram等)| 1セッション    |
//! | OptimalParamsModel| パラメータ最適化(ucb1_c等)    | 複数セッション |
//!
//! ## LoRA
//!
//! LoRA学習・適用は `lora` モジュールで管理。
//! - `LoraTrainer`: LoRA学習の実行
//! - `TrainedModel`: 学習済みLoRAアダプタ
//! - `ModelApplicator`: llama-server への適用

// Stats Model Layer (行動選択用統計モデル)
pub mod stats_model;

// Provider (Model へのアクセス層)
mod provider;

// Stats (統計データ)
mod stats;

// Extended modules
pub mod component_learners;
pub mod daemon;
pub mod episode;
pub mod facade;
pub mod learn_model;
pub mod learned_component;
pub mod lora;
pub mod offline;
pub mod profile_adapter;
pub mod profile_store;
pub mod record;
pub mod scenario_profile;
pub mod scenario_registry;
pub mod session_group;
pub mod snapshot;
pub mod store;
pub mod training;
pub mod trigger;

// Re-exports: Stats Model Layer
pub use stats_model::{
    param_keys,
    // Base trait and types
    Model,
    ModelMetadata,
    ModelType,
    ModelVersion,
    OptimalParamsModel,
    ParamValue,
    Parametric,
    // Capability traits
    Scorable,
    ScoreContext,
    // Concrete models
    ScoreModel,
    ScoreQuery,
    StatsModelId,
};

// Re-exports: Provider (Selection連携)
pub use provider::{
    ConfidenceMapProvider, LearnStatsProvider, LearnedProvider, LearningQuery, LearningResult,
    NullProvider, ScoreModelProvider, SharedLearnedProvider,
};

// Re-exports: Stats
pub use stats::{
    ContextualActionStats, EpisodeTransitions, LearnStats, NgramStats, SelectionPerformance,
    StrategyStats, StrategySwitchEvent,
};

// Re-exports: Snapshot
pub use snapshot::{
    // Functions
    merge_snapshots,
    // Implementations
    FileSystemStorage,
    // Core types
    LearningSnapshot,
    LearningStore,
    MergeStrategy,
    SessionId,
    // Traits
    SnapshotKey,
    SnapshotMetadata,
    SnapshotStorage,
    TimeSeriesQuery,
    Timestamp,
    SNAPSHOT_VERSION,
};

// Re-exports: Offline
pub use offline::{
    ActionOrderSource, LearnedActionOrder, OfflineAnalyzer, OfflineModel, OptimalParameters,
    RecommendedPath, StrategyConfig,
};

// Re-exports: Record
pub use record::{
    ActionRecord,
    // DependencyGraph record
    DependencyGraphRecord,
    // Traits
    FromRecord,
    // LearnStats record
    LearnStatsRecord,
    LlmCallRecord,
    // Core types
    Record,
    // Helpers
    RecordStream,
    // StrategyAdvice record
    StrategyAdviceRecord,
};

// Re-exports: Episode
pub use episode::{
    // Core types
    Episode,
    EpisodeBuilder,
    EpisodeContext,
    EpisodeId,
    EpisodeMetadata,
    // Trait (for custom Episode implementations)
    EpisodeTrait,
    Outcome,
};

// Re-exports: Training
pub use training::{
    // Conversation format
    ConversationData,
    ConversationRole,
    ConversationTurn,
    // Core types
    TrainingData,
    TrainingFormat,
    TrainingMetadata,
};

// Re-exports: Store
pub use store::{
    DefaultEpisodeRepository,
    // Types
    EpisodeDto,
    EpisodeFilter,
    EpisodeMeta,
    EpisodeRepository,
    // Traits
    EpisodeStore,
    // Implementations
    FileEpisodeStore,
    FileLoraStore,
    FileRecordStore,
    InMemoryEpisodeStore,
    InMemoryLoraStore,
    InMemoryRecordStore,
    LoraModelStore,
    ModelFilter,
    ModelMeta,
    OutcomeFilter,
    RecordFilter,
    RecordId,
    RecordMeta,
    RecordStore,
    RecordStoreError,
    StoreError,
    TrainedModelDto,
    TrainingMetricsDto,
};

// Re-exports: LearnModel
pub use learn_model::{
    // DependencyGraph
    DependencyGraphLearnModel,
    // Generic DPO
    DpoConfig,
    DpoLearnModel,
    DpoPair,
    // Types
    LearnError,
    // Traits
    LearnModel,
    WorkerDecisionSequenceLearn,
    WorkerTaskLearn,
};

// Re-exports: Trigger
pub use trigger::{
    AlwaysTrigger,
    AndTrigger,
    // Implementations
    CountTrigger,
    ManualTrigger,
    NeverTrigger,
    OrTrigger,
    QualityTrigger,
    TimeTrigger,
    // Traits
    TrainTrigger,
    // Builder
    TriggerBuilder,
    // Context
    TriggerContext,
    TriggerError,
    TriggerMetrics,
};

// Re-exports: LoRA
pub use lora::{
    ApplicatorError,
    LlamaServerApplicator,
    LlamaServerConfig,
    LoraModelId,
    // Trainer
    LoraTrainer,
    LoraTrainerConfig,
    LoraTrainerError,
    // Applicator
    ModelApplicator,
    NoOpApplicator,
    TrainedModel,
    TrainingMetrics,
};

// Re-exports: Daemon
pub use daemon::{
    // Subscriber
    ActionEventSubscriber,
    Applier,
    ApplierConfig,
    ApplierError,
    ApplyMode,
    ApplyResult,
    DaemonBuilder,
    DaemonConfig,
    DaemonError,
    DaemonStats,
    // Components
    DataSink,
    DataSinkError,
    DataSinkStats,
    EventSubscriberConfig,
    // Core
    LearningDaemon,
    LearningEventSubscriber,
    ProcessResult,
    Processor,
    ProcessorConfig,
    ProcessorError,
    ProcessorMode,
};

// Re-exports: Facade
pub use facade::{LearnableSwarm, LearnableSwarmBuilder, LearnableSwarmConfig};

// Re-exports: SessionGroup
pub use session_group::{LearningPhase, SessionGroup, SessionGroupId, SessionGroupMetadata};

// Re-exports: LearnedComponent
pub use learned_component::{
    ComponentLearner, LearnedComponent, LearnedDepGraph, LearnedExploration, LearnedStrategy,
};

// Re-exports: ComponentLearners
pub use component_learners::{DepGraphLearner, ExplorationLearner, StrategyLearner};

// Re-exports: ScenarioProfile
pub use scenario_profile::{
    BootstrapData, ProfileState, ProfileStats, ScenarioProfile, ScenarioProfileId, ScenarioSource,
};

// Re-exports: ProfileStore
pub use profile_store::{ProfileStore, ProfileStoreError};

// Re-exports: ScenarioRegistry
pub use scenario_registry::{RegistryError, ScenarioRegistry, TaskMatcher};

// Re-exports: ProfileAdapter
pub use profile_adapter::{
    migrate_offline_model_to_profile, offline_model_to_components, profile_to_offline_model,
    ProfileToOfflineModel,
};