110 lines
4.6 KiB
Go
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)
|
|
}
|