109 lines
5.1 KiB
Go
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"`
|
|
}
|