feat(events): EventBus + domain-модель статусов
- internal/model: единый источник статусов задачи (Status, TraceStatus, машина переходов), без зависимости от storage. - internal/storage: совместимый мост (type Status = model.Status, re-export констант) — внешний код не меняется. - internal/events: шина событий (fan-out, блокирующий Publish с гарантией порядка), события задач/трейсов, отдельная логовая шина + LogWriter, Publisher/NilPublisher для внедрения в Core/Worker. - docs/ui-spec.md: спецификация десктопного UI (Fyne).
This commit is contained in:
56
internal/events/events.go
Normal file
56
internal/events/events.go
Normal file
@@ -0,0 +1,56 @@
|
||||
package events
|
||||
|
||||
import "github.com/kamelion/ratatoskr-go/internal/model"
|
||||
|
||||
// TaskCreated — создана новая задача.
|
||||
type TaskCreated struct {
|
||||
ID int64
|
||||
ChatID string
|
||||
Title string
|
||||
}
|
||||
|
||||
// TaskUpdated — задача изменена (поля, права, репозитории).
|
||||
type TaskUpdated struct {
|
||||
ID int64
|
||||
}
|
||||
|
||||
// TaskDeleted — задача удалена.
|
||||
type TaskDeleted struct {
|
||||
ID int64
|
||||
}
|
||||
|
||||
// TaskStatusChanged — статус задачи изменился (переход из From в To).
|
||||
type TaskStatusChanged struct {
|
||||
ID int64
|
||||
From model.Status
|
||||
To model.Status
|
||||
}
|
||||
|
||||
// HistoryAppended — добавлено сообщение в историю задачи.
|
||||
type HistoryAppended struct {
|
||||
TaskID int64
|
||||
Role string // user | assistant | реплика события
|
||||
Content string
|
||||
}
|
||||
|
||||
// TraceAppended — добавлен/обновлён трейс субагента.
|
||||
type TraceAppended struct {
|
||||
TaskID int64
|
||||
Agent string
|
||||
Status model.TraceStatus
|
||||
}
|
||||
|
||||
// AgentActivity — смена этапа работы агента (для анимации «состояния»).
|
||||
type AgentActivity struct {
|
||||
TaskID int64
|
||||
Agent string
|
||||
Stage string
|
||||
}
|
||||
|
||||
func (TaskCreated) _event() {}
|
||||
func (TaskUpdated) _event() {}
|
||||
func (TaskDeleted) _event() {}
|
||||
func (TaskStatusChanged) _event() {}
|
||||
func (HistoryAppended) _event() {}
|
||||
func (TraceAppended) _event() {}
|
||||
func (AgentActivity) _event() {}
|
||||
Reference in New Issue
Block a user