package design import "context" type AgentRequest struct { Project Project Prompt string Mode string ImageModel string ImageSize string Messages []AgentChatMessage Memory AgentMemory TaskPlan AgentTaskPlan } type AgentContent struct { Type string Text string TextSource string ImageURL string ImageName string ImageWidth int64 ImageHeight int64 } type AgentChatMessage struct { Role string Contents []AgentContent } type AgentToolConfig struct { PreferToolCategories map[string][]string } type AgentChatRequest struct { Messages []AgentChatMessage ToolConfig AgentToolConfig ThreadID string ThreadIDType int64 EnableMultimodalInput int64 EnableWebSearch bool ImageModel string ImageSize string Mode string } type AgentThread struct { ThreadID string Status string ThreadIDType int64 Project Project } type AgentThreadSummary struct { AgentThreadID string CoverImageURL string Text string ThreadIDType int64 UpdateTimestamp int64 } type GeneratorTaskInputArgs struct { AspectRatio string Image []string ImageURL string Prompt string Resolution string SrcBox *NormalizedBox DstBox *NormalizedBox } type GeneratorTaskSubmitRequest struct { CID string ProjectID string GeneratorName string InputArgs GeneratorTaskInputArgs } type GeneratorTaskPriceDetail struct { BasePrice int64 ExtInfoForUnitCount string GeneratorName string InputArgs GeneratorTaskInputArgs OutputArgs string SearchKey string TimeVariantPeriod string TotalPrice int64 UnitCount int64 UnitName string UnitPrice int64 } type GeneratorTaskDisableUnlimitedPrice struct { Balance int64 Price int64 PriceDetail GeneratorTaskPriceDetail DisableUnlimited bool } type GeneratorTaskQueueInfo struct { InQueue bool Position int64 TotalQueueCount int64 EstimatedEndTime string RemainingTimeSeconds int64 DisableUnlimitedPrice GeneratorTaskDisableUnlimitedPrice } type GeneratorTaskArtifactMetadata struct { ArtifactID string Format string Height int64 Label string NodeID string NodeName string SizeBytes int64 Width int64 } type GeneratorTaskArtifact struct { Type string Content string Metadata GeneratorTaskArtifactMetadata } type GeneratorTask struct { GeneratorTaskID string GeneratorName string Status string OriginalInputArgs GeneratorTaskInputArgs QueueInfo GeneratorTaskQueueInfo Artifacts []GeneratorTaskArtifact Project Project } type ImageVectorizationRequest struct { ImageDataURL string Prompt string Title string Width int64 Height int64 } type ImageVectorization struct { SVG string Width int64 Height int64 } type ImageVectorizer interface { VectorizeImage(ctx context.Context, req ImageVectorizationRequest) (ImageVectorization, error) } type AgentPlan struct { Message Message GeneratedNodes []Node Connections []Connection } type AgentImageGenerationResult struct { Index int Node Node } type AgentTaskPlanRequest struct { Project Project Prompt string Mode string Messages []AgentChatMessage Memory AgentMemory WebSearchEnabled bool } type AgentImageTask struct { Title string `json:"title"` Brief string `json:"brief"` } type AgentTaskPlan struct { Intent string Reason string UserFacingResponse string ShouldSearch bool SearchQuery string SearchReason string ImageCount int ImageTasks []AgentImageTask } type AgentDecisionRequest struct { Project Project Prompt string Mode string Messages []AgentChatMessage Memory AgentMemory } type AgentDecision struct { Intent string Reason string } type AgentConversationRequest struct { Project Project Prompt string Mode string Messages []AgentChatMessage Memory AgentMemory TaskPlan AgentTaskPlan } type AgentImageSummaryRequest struct { Project Project Prompt string Mode string ImageURL string Memory AgentMemory } type AgentImagePromptRequest struct { Project Project Prompt string Mode string Messages []AgentChatMessage Memory AgentMemory TaskPlan AgentTaskPlan } type AgentImagePrompt struct { Prompt string Title string } type AgentResearchDecisionRequest struct { Project Project Prompt string Mode string Messages []AgentChatMessage Memory AgentMemory } type AgentResearchDecision struct { ShouldSearch bool Query string Reason string } type CreativeAgent interface { Decide(ctx context.Context, req AgentDecisionRequest) (AgentDecision, error) Respond(ctx context.Context, req AgentConversationRequest) (string, error) SummarizeImage(ctx context.Context, req AgentImageSummaryRequest) (string, error) BuildImagePrompt(ctx context.Context, req AgentImagePromptRequest) (AgentImagePrompt, error) } type ResearchDecider interface { DecideResearch(ctx context.Context, req AgentResearchDecisionRequest) (AgentResearchDecision, error) } type AgentTaskPlanner interface { PlanAgentTask(ctx context.Context, req AgentTaskPlanRequest) (AgentTaskPlan, error) } type AgentPlanningNarrator interface { StreamPlanNarration(ctx context.Context, req AgentTaskPlanRequest, onDelta func(delta string) error) (string, error) } type StreamingCreativeAgent interface { CreativeAgent StreamRespond(ctx context.Context, req AgentConversationRequest, onDelta func(delta string) error) (string, error) } type AgentReplay struct { ProjectID string Messages []Message } type AgentRunner interface { Plan(ctx context.Context, req AgentRequest) (AgentPlan, error) Replay(ctx context.Context, project Project) (AgentReplay, error) } type IncrementalAgentRunner interface { AgentRunner PlanIncremental(ctx context.Context, req AgentRequest, onResult func(AgentImageGenerationResult) error) (AgentPlan, error) }