Files
Genarrative/packages/shared/src/contracts/puzzleAgentSession.ts

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;
}