BOLT / types /conversation.ts
legends810's picture
Upload folder using huggingface_hub
d83e271 verified
// Conversation tracking types for maintaining context across interactions
export interface ConversationMessage {
id: string;
role: 'user' | 'assistant';
content: string;
timestamp: number;
metadata?: {
editedFiles?: string[]; // Files edited in this interaction
addedPackages?: string[]; // Packages added in this interaction
editType?: string; // Type of edit performed
sandboxId?: string; // Sandbox ID at time of message
};
}
export interface ConversationEdit {
timestamp: number;
userRequest: string;
editType: string;
targetFiles: string[];
confidence: number;
outcome: 'success' | 'partial' | 'failed';
errorMessage?: string;
}
export interface ConversationContext {
messages: ConversationMessage[];
edits: ConversationEdit[];
currentTopic?: string; // Current focus area (e.g., "header styling", "hero section")
projectEvolution: {
initialState?: string; // Description of initial project state
majorChanges: Array<{
timestamp: number;
description: string;
filesAffected: string[];
}>;
};
userPreferences: {
editStyle?: 'targeted' | 'comprehensive'; // How the user prefers edits
commonRequests?: string[]; // Common patterns in user requests
packagePreferences?: string[]; // Commonly used packages
};
}
export interface ConversationState {
conversationId: string;
startedAt: number;
lastUpdated: number;
context: ConversationContext;
}