60 lines
1.5 KiB
TypeScript
60 lines
1.5 KiB
TypeScript
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;
|
|
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;
|
|
}
|
|
|
|
export interface CreatePuzzleAgentSessionResponse {
|
|
session: PuzzleAgentSessionSnapshot;
|
|
}
|
|
|
|
export interface SendPuzzleAgentMessageRequest {
|
|
clientMessageId: string;
|
|
text: string;
|
|
quickFillRequested?: boolean;
|
|
}
|
|
|
|
export interface SendPuzzleAgentMessageResponse extends PuzzleAgentActionResponse {
|
|
session: PuzzleAgentSessionSnapshot;
|
|
}
|