package squad import "time" // WorkspaceMetadata 记录工作区全局元数据 type WorkspaceMetadata struct { ID string `json:"id"` SessionID FlexSessionID `json:"session_id"` ProjectID int64 `json:"project_id"` TaskKey string `json:"task_key"` StageTitle string `json:"stage_title"` ProjectName string `json:"project_name"` CustomerName string `json:"customer_name"` DeviceType string `json:"device_type,omitempty"` IntendedUse string `json:"intended_use,omitempty"` TargetMarket string `json:"target_market,omitempty"` Status string `json:"status"` // created, running, completed, failed Backend string `json:"backend"` WorkDir string `json:"work_dir"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` CompletedAt *time.Time `json:"completed_at,omitempty"` Metadata map[string]string `json:"metadata,omitempty"` } // RoleSource 标识角色来源 type RoleSource string const ( RoleSourceStandard RoleSource = "standard" // 预设标准化角色 (organizer, searcher, regulatory...) RoleSourceCustom RoleSource = "custom" // 配置文件声明的业务扩展角色 RoleSourceAdHoc RoleSource = "ad_hoc" // 规划器现场生成的特设专员 ) // AgentSpec 声明单个专员角色在小队中的设定 type AgentSpec struct { Role string `json:"role"` Name string `json:"name"` Source RoleSource `json:"source,omitempty"` BaseRole string `json:"base_role,omitempty"` Model string `json:"model"` Tools []string `json:"tools"` BashPermission string `json:"bash_permission"` // allow, deny Responsibilities []string `json:"responsibilities"` ForbiddenActions []string `json:"forbidden_actions"` InstructionsFile string `json:"instructions_file,omitempty"` } // SquadConfig 激活的智能体小队编制 type SquadConfig struct { SquadName string `json:"squad_name"` Version string `json:"version"` Agents []AgentSpec `json:"agents"` } // PlanningMode 规划模式 type PlanningMode string const ( PlanModeFixedAdaptive PlanningMode = "fixed_adaptive" // 固定文档:基于基线模板,允许动态微调 PlanModeAutonomousAdhoc PlanningMode = "autonomous_adhoc" // 非工作流:全自动动态规划 ) // StepSpec 单个任务步骤规格定义 type StepSpec struct { ID string `json:"id"` Role string `json:"role"` Title string `json:"title"` SubWorkspace string `json:"sub_workspace"` // 相对子路径,如 tasks/01_organize Mode string `json:"mode"` // execute, plan, review_plan, replan Parallel bool `json:"parallel"` Needs []string `json:"needs,omitempty"` // InputLayoutSnapshot 将父级输入复制为子目录常规文件,TASK.md 只引用本地名。 InputLayout string `json:"input_layout,omitempty"` Accept []string `json:"accept,omitempty"` Status string `json:"status"` // pending, running, completed, failed, skipped DurationMs int64 `json:"duration_ms,omitempty"` Error string `json:"error,omitempty"` AllowDynamicAdjustment bool `json:"allow_dynamic_adjustment,omitempty"` BaselineAssumptions []string `json:"baseline_assumptions,omitempty"` // ---- 长任务运行时治理字段(TaskGov)---- Frozen bool `json:"frozen,omitempty"` // 归档锁定:completed 且已生成步骤级 manifest 后置 true ArchivedAt *time.Time `json:"archived_at,omitempty"` // 归档时间 ReopenCount int `json:"reopen_count,omitempty"` // 显式重开次数(审计) // ---- A5 非关键步骤降级 ---- // nil(默认)= 关键步骤:失败即终止整个工作流; // false = 非关键步骤:失败转 degraded 继续,收口时 wf.Status=degraded。 Critical *bool `json:"critical,omitempty"` } // IsCritical 报告步骤是否关键(nil 视为关键,保持既有行为)。 func (s StepSpec) IsCritical() bool { return s.Critical == nil || *s.Critical } // WorkflowPlan 动态任务编排清单 type WorkflowPlan struct { WorkflowID string `json:"workflow_id"` TaskKey string `json:"task_key,omitempty"` Title string `json:"title,omitempty"` PlanningMode PlanningMode `json:"planning_mode,omitempty"` Status string `json:"status"` // pending, in_progress, completed, failed CurrentStepIndex int `json:"current_step_index"` Steps []StepSpec `json:"steps"` } // ContextItem 上下文项目元数据 type ContextItem struct { File string `json:"file"` // 相对路径,如 context/user.md Description string `json:"description"` // 用途说明 AuthorityLevel string `json:"authority_level"` // authoritative, primary_evidence, reference_standard, supplementary, inferred Guidance string `json:"guidance"` // 使用建议与优先级说明 } // ContextIndex 上下文索引表 type ContextIndex struct { Items []ContextItem `json:"context_items"` } // MaterialItem 输入材料 type MaterialItem struct { Filename string `json:"filename"` Content []byte `json:"content"` AssetID int64 `json:"asset_id,omitempty"` SHA256 string `json:"sha256,omitempty"` OwnerID int64 `json:"owner_user_id,omitempty"` } // KnowledgeHit 法规知识库检索命中条目 type KnowledgeHit struct { DocCode string `json:"doc_code"` Category string `json:"category,omitempty"` // standards, guidance, laws, catalog Title string `json:"title"` HeadingPath string `json:"heading_path,omitempty"` Content string `json:"content"` CiteKey string `json:"cite_key,omitempty"` Source string `json:"source"` } // PriorDocItem 前序阶段归档文档 type PriorDocItem struct { DocKey string `json:"doc_key"` Title string `json:"title"` Filename string `json:"filename"` Content string `json:"content"` Stage string `json:"stage"` } // FactItem 黑板事实项 type FactItem struct { ID string `json:"id"` Claim string `json:"claim"` Source string `json:"source"` Verified bool `json:"verified"` } // GapItem 黑板缺口项 type GapItem struct { ID string `json:"id"` Item string `json:"item"` Owner string `json:"owner"` // user, agent Blocking bool `json:"blocking"` // 是否阻塞后续推进 Resolved bool `json:"resolved"` } // ImplicationItem 黑板含义项 type ImplicationItem struct { ID string `json:"id"` Topic string `json:"topic"` Statement string `json:"statement"` } // AssumptionItem 黑板基准假设项(医疗器械工程/法规先验推断) type AssumptionItem struct { ID string `json:"id"` Topic string `json:"topic"` Statement string `json:"statement"` Rationale string `json:"rationale"` // 行业先验推导依据 Source string `json:"source"` // 默认 "inferred" } // BlackboardState 结构化共享黑板 type BlackboardState struct { Facts []FactItem `json:"facts"` Gaps []GapItem `json:"gaps"` Implications []ImplicationItem `json:"implications"` Assumptions []AssumptionItem `json:"assumptions,omitempty"` Fields map[string]string `json:"fields"` UpdatedAt time.Time `json:"updated_at"` } // StepAction 单步评估后的调整决策 type StepAction string const ( StepActionContinue StepAction = "CONTINUE" // 无异常,正常按既定计划继续 StepActionAddStep StepAction = "ADD_STEP" // 发现关键事实或缺口,动态追加补充步骤 StepActionUpdateStep StepAction = "UPDATE_STEP" // 调整后续步骤的验收标准或指派角色 StepActionSkipStep StepAction = "SKIP_STEP" // 前序步骤已充分覆盖,跳过冗余步骤 ) // EvaluationResult 步骤评估报告 type EvaluationResult struct { StepID string `json:"step_id"` Action StepAction `json:"action"` Reason string `json:"reason"` NewAssumptions []AssumptionItem `json:"new_assumptions,omitempty"` // 新增的基准假设 ResolvedGaps []string `json:"resolved_gaps,omitempty"` DynamicStepsToAdd []StepSpec `json:"dynamic_steps_to_add,omitempty"` DynamicStepsToAlter []StepSpec `json:"dynamic_steps_to_alter,omitempty"` StepsToSkip []string `json:"steps_to_skip,omitempty"` } // QualityReport 自动化质量门禁报告 type QualityReport struct { Passed bool `json:"passed"` Score float64 `json:"score"` TitleCheck bool `json:"title_check"` MissingSections []string `json:"missing_sections,omitempty"` ProhibitedPhrases []string `json:"prohibited_phrases,omitempty"` QuoteMatches bool `json:"quote_matches"` Violations []string `json:"violations,omitempty"` CheckedAt time.Time `json:"checked_at"` } // Manifest 执行清单与防篡改审计 type Manifest struct { ManifestVersion string `json:"manifest_version"` WorkspaceID string `json:"workspace_id"` DocKey string `json:"doc_key"` GeneratedAt time.Time `json:"generated_at"` Deliverable string `json:"deliverable"` Files map[string]string `json:"files"` // relPath -> sha256 QualityReport QualityReport `json:"quality_report"` DurationMs int64 `json:"duration_ms"` } // AdvisorCaseRecommendation 参谋决策锦囊推荐的往期标杆案例 type AdvisorCaseRecommendation struct { DocID string `json:"doc_id"` ProjectName string `json:"project_name"` TaskKey string `json:"task_key"` ArtifactTitle string `json:"artifact_title"` SectionTitle string `json:"section_title"` SummarySnippet string `json:"summary_snippet"` KeyRegulations []string `json:"key_regulations,omitempty"` SimilarityScore float64 `json:"similarity_score"` ApprovedAt string `json:"approved_at"` } // AdvisorBriefing B轨业务参谋决策锦囊 type AdvisorBriefing struct { MaturityScore int `json:"maturity_score"` // 成熟度评分 (0-100) MaturityLevel string `json:"maturity_level"` // 成熟度等级 (如 V0.1, V0.5, V1.0) MaturityHeadline string `json:"maturity_headline"` // 总体进展研判(一句话核心诊断) BaselineAssumptions []string `json:"baseline_assumptions"` // 基准假设清单(替代填空,为用户预设) PreemptiveRisks []string `json:"preemptive_risks"` // 预见性风险雷达(替用户提前看两步) NextBestActions []string `json:"next_best_actions"` // 建议下一步行动选项 CommunicationKit string `json:"communication_kit"` // 建议对外沟通话术(微信/邮件模板) RecommendedCases []AdvisorCaseRecommendation `json:"recommended_cases,omitempty"` // 💡 往期标杆案例与历史报价经验自推荐 }