UNPKG

@codervisor/devlog-ai

Version:

AI Chat History Extractor & Docker-based Automation - TypeScript implementation for GitHub Copilot and other AI coding assistants with automated testing capabilities

312 lines 10.2 kB
/** * Data models for AI Chat processing * * TypeScript interfaces and classes for representing chat histories * focused on core chat functionality. * * Note: These models are for internal AI package use. For devlog integration, * use the types from @codervisor/devlog-core/types/chat. */ import { z } from 'zod'; export interface MessageMetadata { type?: 'user_request' | 'assistant_response' | 'editing_session' | 'snapshot'; agent?: Record<string, unknown>; variableData?: Record<string, unknown>; modelId?: string; result?: Record<string, unknown>; followups?: unknown[]; isCanceled?: boolean; contentReferences?: unknown[]; codeCitations?: unknown[]; requestTimestamp?: string; [key: string]: unknown; } export interface ChatSessionMetadata { version?: string; requesterUsername?: string; responderUsername?: string; initialLocation?: Record<string, unknown>; creationDate?: string; lastMessageDate?: string; isImported?: boolean; customTitle?: string; type?: 'chat_session' | 'chat_editing_session' | string; source_file?: string; linearHistoryIndex?: number; initialFileContents?: unknown[]; recentSnapshot?: unknown; total_requests?: number; [key: string]: unknown; } export interface WorkspaceMetadata { discovered_files_count?: number; parsing_errors?: string[]; total_sessions_discovered?: number; discovery_timestamp?: string; vscode_installations?: string[]; [key: string]: unknown; } export declare const MessageSchema: z.ZodObject<{ id: z.ZodOptional<z.ZodString>; role: z.ZodEnum<["user", "assistant"]>; content: z.ZodString; timestamp: z.ZodString; metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { role: "user" | "assistant"; content: string; timestamp: string; metadata: Record<string, unknown>; id?: string | undefined; }, { role: "user" | "assistant"; content: string; timestamp: string; id?: string | undefined; metadata?: Record<string, unknown> | undefined; }>; export declare const ChatSessionSchema: z.ZodObject<{ agent: z.ZodString; timestamp: z.ZodString; messages: z.ZodDefault<z.ZodArray<z.ZodObject<{ id: z.ZodOptional<z.ZodString>; role: z.ZodEnum<["user", "assistant"]>; content: z.ZodString; timestamp: z.ZodString; metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { role: "user" | "assistant"; content: string; timestamp: string; metadata: Record<string, unknown>; id?: string | undefined; }, { role: "user" | "assistant"; content: string; timestamp: string; id?: string | undefined; metadata?: Record<string, unknown> | undefined; }>, "many">>; workspace: z.ZodOptional<z.ZodString>; session_id: z.ZodOptional<z.ZodString>; metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { agent: string; timestamp: string; metadata: Record<string, unknown>; messages: { role: "user" | "assistant"; content: string; timestamp: string; metadata: Record<string, unknown>; id?: string | undefined; }[]; workspace?: string | undefined; session_id?: string | undefined; }, { agent: string; timestamp: string; metadata?: Record<string, unknown> | undefined; messages?: { role: "user" | "assistant"; content: string; timestamp: string; id?: string | undefined; metadata?: Record<string, unknown> | undefined; }[] | undefined; workspace?: string | undefined; session_id?: string | undefined; }>; export declare const WorkspaceDataSchema: z.ZodObject<{ agent: z.ZodString; version: z.ZodOptional<z.ZodString>; workspace_path: z.ZodOptional<z.ZodString>; chat_sessions: z.ZodDefault<z.ZodArray<z.ZodObject<{ agent: z.ZodString; timestamp: z.ZodString; messages: z.ZodDefault<z.ZodArray<z.ZodObject<{ id: z.ZodOptional<z.ZodString>; role: z.ZodEnum<["user", "assistant"]>; content: z.ZodString; timestamp: z.ZodString; metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { role: "user" | "assistant"; content: string; timestamp: string; metadata: Record<string, unknown>; id?: string | undefined; }, { role: "user" | "assistant"; content: string; timestamp: string; id?: string | undefined; metadata?: Record<string, unknown> | undefined; }>, "many">>; workspace: z.ZodOptional<z.ZodString>; session_id: z.ZodOptional<z.ZodString>; metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { agent: string; timestamp: string; metadata: Record<string, unknown>; messages: { role: "user" | "assistant"; content: string; timestamp: string; metadata: Record<string, unknown>; id?: string | undefined; }[]; workspace?: string | undefined; session_id?: string | undefined; }, { agent: string; timestamp: string; metadata?: Record<string, unknown> | undefined; messages?: { role: "user" | "assistant"; content: string; timestamp: string; id?: string | undefined; metadata?: Record<string, unknown> | undefined; }[] | undefined; workspace?: string | undefined; session_id?: string | undefined; }>, "many">>; metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { agent: string; metadata: Record<string, unknown>; chat_sessions: { agent: string; timestamp: string; metadata: Record<string, unknown>; messages: { role: "user" | "assistant"; content: string; timestamp: string; metadata: Record<string, unknown>; id?: string | undefined; }[]; workspace?: string | undefined; session_id?: string | undefined; }[]; version?: string | undefined; workspace_path?: string | undefined; }, { agent: string; version?: string | undefined; metadata?: Record<string, unknown> | undefined; workspace_path?: string | undefined; chat_sessions?: { agent: string; timestamp: string; metadata?: Record<string, unknown> | undefined; messages?: { role: "user" | "assistant"; content: string; timestamp: string; id?: string | undefined; metadata?: Record<string, unknown> | undefined; }[] | undefined; workspace?: string | undefined; session_id?: string | undefined; }[] | undefined; }>; export interface Message { /** Unique identifier for the message */ id?: string; /** Role of the message sender */ role: 'user' | 'assistant'; /** Content of the message */ content: string; /** Timestamp when the message was created */ timestamp: Date; /** Additional metadata */ metadata: MessageMetadata; } export interface ChatSession { /** Name of the AI agent (e.g., "copilot", "cursor", "windsurf") */ agent: string; /** Timestamp when the session was created */ timestamp: Date; /** List of messages in the session */ messages: Message[]; /** Workspace identifier or path */ workspace?: string; /** Unique session identifier */ session_id?: string; /** Additional metadata */ metadata: ChatSessionMetadata; } export interface WorkspaceData { /** Name of the AI agent */ agent: string; /** Version of the agent or data format */ version?: string; /** Path to the workspace */ workspace_path?: string; /** List of chat sessions */ chat_sessions: ChatSession[]; /** Additional metadata */ metadata: WorkspaceMetadata; } export interface SearchResult { session_id?: string; message_id?: string; role: string; timestamp: string; match_position: number; context: string; full_content: string; metadata: Record<string, unknown>; } export interface ChatStatistics { total_sessions: number; total_messages: number; message_types: Record<string, number>; session_types: Record<string, number>; workspace_activity: Record<string, { sessions: number; messages: number; first_seen: string; last_seen: string; }>; date_range: { earliest: string | null; latest: string | null; }; agent_activity: Record<string, number>; } export declare class MessageData implements Message { id?: string; role: 'user' | 'assistant'; content: string; timestamp: Date; metadata: MessageMetadata; constructor(data: Partial<Message> & Pick<Message, 'role' | 'content'>); toDict(): Record<string, unknown>; static fromDict(data: Record<string, unknown>): MessageData; } export declare class ChatSessionData implements ChatSession { agent: string; timestamp: Date; messages: Message[]; workspace?: string; session_id?: string; metadata: ChatSessionMetadata; constructor(data: Partial<ChatSession> & Pick<ChatSession, 'agent'>); toDict(): Record<string, unknown>; static fromDict(data: Record<string, unknown>): ChatSessionData; } export declare class WorkspaceDataContainer implements WorkspaceData { agent: string; version?: string; workspace_path?: string; chat_sessions: ChatSession[]; metadata: WorkspaceMetadata; constructor(data: Partial<WorkspaceData> & Pick<WorkspaceData, 'agent'>); toDict(): Record<string, unknown>; static fromDict(data: Record<string, unknown>): WorkspaceDataContainer; } //# sourceMappingURL=index.d.ts.map