from pydantic import BaseModel, Field
from typing import List, Optional

class NodeItem(BaseModel):
    type: str = Field(description="The type of the node. Valid values: IMAGE_GENERATOR, VIDEO_GENERATOR, INFO_DISPLAY, AUDIO_GENERATOR, LYRICS_GENERATOR, PROMPT_GENERATOR")
    title: str = Field(description="The title of the node")
    prompt: str = Field(description="Description or prompt for the node")

class AgentResponse(BaseModel):
    reply: str = Field(description="The conversational response to the user")
    nodes: Optional[List[NodeItem]] = Field(description="List of nodes to be added to the canvas", default=[])
