Files
Agent-System/internal/stream/types.go
T

109 lines
5.1 KiB
Go

package stream
import (
"time"
)
// EventType 定义流式事件类型
type EventType string
const (
EventPhase EventType = "phase" // 阶段性状态跃迁(组建小队、法规筛选、初稿撰写、门禁审核)
EventStatus EventType = "status" // 意图识别结果、成熟度状态机更新
EventSummary EventType = "summary" // 提炼的核心进展摘要(低认知负荷)
EventBriefing EventType = "briefing" // 贴身业务参谋决策锦囊(B轨赋能)
EventDelta EventType = "delta" // 对话自然语言逐字/逐句流式吐出
EventDetail EventType = "detail" // 详细推演草稿或思考链(按需显示,默认折叠)
EventDeliverable EventType = "deliverable" // A轨正式合规文档生成通知
EventGovernance EventType = "governance" // 受控文档治理与认领/变更提案拦截通知
EventError EventType = "error" // 运行异常警报
EventDone EventType = "done" // 会话流完成
)
// GovernancePayload 文档治理生命周期与认领变更载荷
type GovernancePayload struct {
DocID string `json:"doc_id"`
Action string `json:"action"` // claimed, proposal_required, proposal_decided, submitted_review, rejected, approved
CurrentState string `json:"current_state"` // drafting, reviewing, approving, approved
IsLocked bool `json:"is_locked"`
AuthorClaimed bool `json:"author_claimed"`
ProposalID string `json:"proposal_id,omitempty"`
ProposedChanges string `json:"proposed_changes,omitempty"`
ImpactSummary string `json:"impact_summary,omitempty"`
RiskSummary string `json:"risk_summary,omitempty"`
AuthorDecision string `json:"author_decision,omitempty"`
NotificationTitle string `json:"notification_title"` // 用户前台高亮简报标题
NotificationMsg string `json:"notification_msg"` // 用户前台高亮简报内容
}
// PhasePayload 阶段性任务状态更新载荷
type PhasePayload struct {
PhaseID string `json:"phase_id"` // 如 squad_assembly, knowledge_retrieval, step_executing, quality_gate
Message string `json:"message"` // 用户友好的自然语言进度说明
Role string `json:"role,omitempty"` // 角色 (如 regulatory, writer, leader)
StepIndex int `json:"step_index,omitempty"` // 当前步骤索引 (如 1)
TotalSteps int `json:"total_steps,omitempty"` // 总步骤数 (如 3)
Progress int `json:"progress,omitempty"` // 百分比估算 (0-100)
}
// StatusPayload 意图与状态机更新载荷
type StatusPayload struct {
Intent string `json:"intent,omitempty"`
Branch string `json:"branch,omitempty"`
CurrentStage string `json:"current_stage,omitempty"`
Patches map[string]string `json:"patches,omitempty"`
Message string `json:"message,omitempty"`
}
// SummaryPayload 核心进展摘要载荷 (低认知负荷)
type SummaryPayload struct {
Title string `json:"title"`
Content string `json:"content"`
MaturityScore int `json:"maturity_score,omitempty"`
MaturityLevel string `json:"maturity_level,omitempty"`
}
// DetailPayload 详细执行与推演过程载荷 (按需显示,默认折叠)
type DetailPayload struct {
Category string `json:"category"` // agent_thought, step_output, tool_call, log
StepID string `json:"step_id,omitempty"` // 步骤标识 (如 tasks/01_regulatory)
Role string `json:"role,omitempty"` // 对应角色
Title string `json:"title"` // 详情标题
Content string `json:"content"` // 完整推演正文或技术草稿
Collapsible bool `json:"collapsible"` // 客户端是否应当默认折叠显示
}
// DeliverablePayload A轨正式合规文档交付载荷
type DeliverablePayload struct {
TaskKey string `json:"task_key"`
Title string `json:"title"`
FilePath string `json:"file_path"`
WordCount int `json:"word_count,omitempty"`
QualityScore float64 `json:"quality_score,omitempty"`
}
// DonePayload 流结束载荷
type DonePayload struct {
SessionID string `json:"session_id,omitempty"`
DurationMs int64 `json:"duration_ms"`
TotalEvents int `json:"total_events"`
}
// StreamEvent 统一多层级流式事件
type StreamEvent struct {
ID string `json:"id"`
Type EventType `json:"type"`
Timestamp time.Time `json:"timestamp"`
Phase *PhasePayload `json:"phase,omitempty"`
Status *StatusPayload `json:"status,omitempty"`
Summary *SummaryPayload `json:"summary,omitempty"`
Briefing any `json:"briefing,omitempty"`
Detail *DetailPayload `json:"detail,omitempty"`
Delta string `json:"delta,omitempty"`
Deliverable *DeliverablePayload `json:"deliverable,omitempty"`
Governance *GovernancePayload `json:"governance,omitempty"`
Error string `json:"error,omitempty"`
Done *DonePayload `json:"done,omitempty"`
}