OpenMAIC-React / src /lib /generation /pipeline-types.ts
muthuk1's picture
Convert OpenMAIC from Next.js to React (Vite)
f56a29b verified
raw
history blame
1.85 kB
/**
* Type definitions for the generation pipeline.
*/
import type { GenerationProgress } from '@/lib/types/generation';
// ==================== Agent Info ====================
/** Lightweight agent info passed to the generation pipeline */
export interface AgentInfo {
id: string;
name: string;
role: string;
persona?: string;
}
// ==================== Cross-Page Context ====================
/** Cross-page context for maintaining speech coherence across scenes */
export interface SceneGenerationContext {
pageIndex: number; // Current page (1-based)
totalPages: number; // Total number of pages
allTitles: string[]; // All page titles in order
previousSpeeches: string[]; // Speech texts from the previous page only
}
// ==================== Generated Slide Data Interface ====================
/**
* AI-generated slide data structure
* Used to parse AI responses
*/
export interface GeneratedSlideData {
elements: Array<{
type: 'text' | 'image' | 'video' | 'shape' | 'chart' | 'latex' | 'line';
left: number;
top: number;
width: number;
height: number;
[key: string]: unknown;
}>;
background?: {
type: 'solid' | 'gradient';
color?: string;
gradient?: {
type: 'linear' | 'radial';
colors: Array<{ pos: number; color: string }>;
rotate: number;
};
};
remark?: string;
}
// ==================== Types ====================
export interface GenerationResult<T> {
success: boolean;
data?: T;
error?: string;
}
export interface GenerationCallbacks {
onProgress?: (progress: GenerationProgress) => void;
onStageComplete?: (stage: 1 | 2 | 3, result: unknown) => void;
onError?: (error: string) => void;
}
export type AICallFn = (
systemPrompt: string,
userPrompt: string,
images?: Array<{ id: string; src: string }>,
) => Promise<string>;