9734eec63c
Generated by per-group subagents covering all 52 modules across: core (18), infrastructure (10), apps (5), interfaces (3), plugins (7), testing (9) Documentation format: - AsciiDoc (.adoc) files in docs/modules/<group>/ - PlantUML (.puml) files in docs/diagrams/ - .adoc files reference diagrams via include:: directives Each doc covers: purpose, responsibilities, non-responsibilities, key types, event flow, integration points, invariants, PlantUML diagram, known issues, and open questions.
66 lines
1.1 KiB
Plaintext
66 lines
1.1 KiB
Plaintext
@startuml
|
|
package "core:sessions" {
|
|
enum SessionStatus {
|
|
CREATED
|
|
ACTIVE
|
|
PAUSED
|
|
COMPLETED
|
|
FAILED
|
|
}
|
|
|
|
data class SessionState {
|
|
+ status: SessionStatus
|
|
+ createdAt: Instant?
|
|
+ updatedAt: Instant?
|
|
}
|
|
|
|
data class Session {
|
|
+ sessionId: SessionId
|
|
+ state: SessionState
|
|
}
|
|
|
|
interface SessionReducer {
|
|
+ reduce(SessionState, StoredEvent): SessionState
|
|
}
|
|
|
|
class DefaultSessionReducer
|
|
|
|
class SessionProjector
|
|
|
|
class DefaultSessionRepository {
|
|
+ getSession(SessionId): Session
|
|
}
|
|
|
|
sealed interface TransitionResult {
|
|
data class Applied
|
|
data object Rejected
|
|
}
|
|
|
|
enum ApprovalMode {
|
|
DENY
|
|
PROMPT
|
|
AUTO
|
|
YOLO
|
|
}
|
|
|
|
DefaultSessionReducer ..|> SessionReducer
|
|
SessionProjector --> SessionReducer
|
|
SessionProjector ..|> Projection
|
|
|
|
DefaultSessionRepository --> EventReplayer
|
|
DefaultSessionRepository ..> Session : creates
|
|
Session *-- SessionState
|
|
}
|
|
|
|
package ":core:events" as EVENTS {
|
|
interface Projection
|
|
interface EventReplayer
|
|
interface EventStore
|
|
enum SessionStatus as SES
|
|
}
|
|
|
|
DefaultSessionRepository --> EVENTS
|
|
SessionProjector --> EVENTS
|
|
|
|
@enduml
|