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

110 lines
4.6 KiB
Go

package bizdev
import (
"context"
"time"
"chat-agent-system/internal/squad"
)
type TaskMeta = squad.TaskMeta
type AdvisorBriefing = squad.AdvisorBriefing
// MaturityStage 定义商务对接成熟度螺旋收敛阶段
type MaturityStage string
const (
StageV01_Triage MaturityStage = "V0.1_triage" // 闪电摸底与盲区探测
StageV05_Feasibility MaturityStage = "V0.5_feasibility" // 方案成型与法规对齐
StageV10_Quoting MaturityStage = "V1.0_quoting" // 工程拆解与商业锁定
)
// StageMeta 商务对接阶段元数据说明
type StageMeta struct {
Stage MaturityStage `json:"stage"`
Title string `json:"title"`
Description string `json:"description"`
Tasks []string `json:"tasks"`
}
type MaterialInput struct {
Filename string `json:"filename"`
Content []byte `json:"content"`
}
type Attachment = squad.Attachment
type TaskRunRequest struct {
TaskKey string `json:"task_key"`
ProjectName string `json:"project_name"`
CustomerName string `json:"customer_name"`
DeviceType string `json:"device_type"`
IntendedUse string `json:"intended_use"`
TargetMarket string `json:"target_market"`
Fields map[string]string `json:"fields"`
Materials []MaterialInput `json:"materials"`
Backend string `json:"backend"`
Timeout time.Duration `json:"timeout"`
WorkDir string `json:"work_dir"`
CustomSteps []squad.StepSpec `json:"custom_steps,omitempty"`
AutoRepair bool `json:"auto_repair,omitempty"`
KnowledgeHits []squad.KnowledgeHit `json:"knowledge_hits,omitempty"`
PriorDocs []squad.PriorDocItem `json:"prior_docs,omitempty"`
}
type TaskRunResult struct {
TaskKey string `json:"task_key"`
ArtifactTitle string `json:"artifact_title"`
MarkdownBody string `json:"markdown_body"`
ExtractedData map[string]string `json:"extracted_data"`
Attachments []Attachment `json:"attachments"`
WorkDir string `json:"work_dir"`
BackendUsed string `json:"backend_used"`
Duration time.Duration `json:"duration"`
Success bool `json:"success"`
ErrorReason string `json:"error_reason,omitempty"`
QualityReport *squad.QualityReport `json:"quality_report,omitempty"`
Manifest *squad.Manifest `json:"manifest,omitempty"`
AdvisorBrief *AdvisorBriefing `json:"advisor_brief,omitempty"`
}
// StageRunRequest 运行指定成熟度阶段请求
type StageRunRequest struct {
Stage MaturityStage `json:"stage"`
ProjectName string `json:"project_name"`
CustomerName string `json:"customer_name"`
DeviceType string `json:"device_type"`
IntendedUse string `json:"intended_use"`
TargetMarket string `json:"target_market"`
Fields map[string]string `json:"fields,omitempty"`
Materials []MaterialInput `json:"materials,omitempty"`
Backend string `json:"backend,omitempty"`
Timeout time.Duration `json:"timeout,omitempty"`
WorkDir string `json:"work_dir,omitempty"`
AutoRepair bool `json:"auto_repair,omitempty"`
PriorDocs []squad.PriorDocItem `json:"prior_docs,omitempty"`
KnowledgeHits []squad.KnowledgeHit `json:"knowledge_hits,omitempty"`
}
// StageRunResult 成熟度阶段执行结果(双轨交付:A轨合规文档 + B轨业务参谋锦囊)
type StageRunResult struct {
Stage MaturityStage `json:"stage"`
StageTitle string `json:"stage_title"`
PrimaryArtifact *TaskRunResult `json:"primary_artifact"`
SubArtifacts []*TaskRunResult `json:"sub_artifacts,omitempty"`
AdvisorBrief *AdvisorBriefing `json:"advisor_brief,omitempty"`
Duration time.Duration `json:"duration"`
Success bool `json:"success"`
WorkDir string `json:"work_dir"`
ErrorReason string `json:"error_reason,omitempty"`
}
type BizdevService interface {
ListTasks() []TaskMeta
ListStages() []StageMeta
ExecuteTask(ctx context.Context, req TaskRunRequest) (*TaskRunResult, error)
ExecuteStage(ctx context.Context, req StageRunRequest) (*StageRunResult, error)
InspectWorkspace(ctx context.Context, workDir string) (*squad.WorkspaceState, error)
ResumeOrModifyWorkspace(ctx context.Context, req squad.ModifyWorkflowRequest) (*squad.SquadRunResult, error)
}