import type { PuzzleAgentActionResponse, PuzzleAgentSuggestedAction, } from './puzzleAgentActions'; import type { PuzzleAnchorPack, PuzzleResultDraft } from './puzzleAgentDraft'; import type { PuzzleResultPreviewEnvelope } from './puzzleResultPreview'; export type PuzzleAgentStage = | 'collecting_anchors' | 'draft_ready' | 'image_refining' | 'ready_to_publish' | 'published'; export type PuzzleAgentMessageRole = 'user' | 'assistant' | 'system'; export type PuzzleAgentMessageKind = | 'chat' | 'summary' | 'action_result' | 'warning'; export interface PuzzleAgentMessage { id: string; role: PuzzleAgentMessageRole; kind: PuzzleAgentMessageKind; text: string; createdAt: string; } export interface PuzzleAgentSessionSnapshot { sessionId: string; seedText?: string; currentTurn: number; progressPercent: number; stage: PuzzleAgentStage; anchorPack: PuzzleAnchorPack; draft: PuzzleResultDraft | null; messages: PuzzleAgentMessage[]; lastAssistantReply: string | null; publishedProfileId: string | null; suggestedActions: PuzzleAgentSuggestedAction[]; resultPreview: PuzzleResultPreviewEnvelope | null; updatedAt: string; } export interface CreatePuzzleAgentSessionRequest { seedText?: string; workTitle?: string; workDescription?: string; pictureDescription?: string; referenceImageSrc?: string | null; imageModel?: string | null; aiRedraw?: boolean; } export interface CreatePuzzleAgentSessionResponse { session: PuzzleAgentSessionSnapshot; } export interface SendPuzzleAgentMessageRequest { clientMessageId: string; text: string; quickFillRequested?: boolean; } export interface SendPuzzleAgentMessageResponse extends PuzzleAgentActionResponse { session: PuzzleAgentSessionSnapshot; }