package application import ( "context" "fmt" "img_infinite_canvas/internal/domain/design" ) type DeterministicAgent struct{} func NewDeterministicAgent() *DeterministicAgent { return &DeterministicAgent{} } func (a *DeterministicAgent) Plan(ctx context.Context, req design.AgentRequest) (design.AgentPlan, error) { if err := ctx.Err(); err != nil { return design.AgentPlan{}, err } offset := len(req.Project.Nodes) nodes := composeBoard(req.Prompt, offset) return design.AgentPlan{ Message: design.Message{ ID: newID(), Role: "assistant", Type: "assistant", Title: "设计任务完成", Content: synthesizeResponse(req.Prompt, req.Mode), }, GeneratedNodes: nodes, Connections: nil, }, nil } func (a *DeterministicAgent) Replay(ctx context.Context, project design.Project) (design.AgentReplay, error) { if err := ctx.Err(); err != nil { return design.AgentReplay{}, err } return design.AgentReplay{ ProjectID: project.ID, Messages: append([]design.Message(nil), project.Messages...), }, nil } func synthesizeResponse(prompt string, mode string) string { if mode == "" { mode = "design" } return fmt.Sprintf("已按「%s」生成一组 %s 画布:官网首页、色彩卡片、移动端页面和详情页已放到无限画布中,可继续微调、扩展或上传参考图。视频生成暂未接入,当前聚焦图片、页面与品牌视觉。", prompt, mode) }