/** * Interfaces for LLM integration */ export interface LlmConfig { apiKey: string; model: string; temperature?: number; maxTokens?: number; topP?: number; frequencyPenalty?: number; presencePenalty?: number; } export interface ActionRequest { playerInput: string; currentRoom: string; visibleObjects: string[]; visibleCharacters: string[]; possibleActions: string[]; inventory: string[]; gameContext: string; } export interface ActionResponse { action: string; object?: string; target?: string; parameters?: Record; confidence: number; } export interface NarrativeRequest { action: string; result: string; roomDescription: string; visibleObjects: string[]; visibleCharacters: string[]; previousContext?: string; tone?: string; } export interface NarrativeResponse { text: string; suggestions?: string[]; } export interface LlmProvider { initialize(config: LlmConfig): Promise; translateAction(request: ActionRequest): Promise; generateNarrative(request: NarrativeRequest): Promise; }