/** * SessionContextFormatter * * Formats session context content for display during session start. * Extracted from SessionStartHandler to enable unit testing of * formatting logic without MCP/DAL/git dependencies. */ import type { SessionTrigger, IMemoryItem, ITask, ITaskCounts } from '../../domain'; import type { ITriageResult } from '../../domain/interfaces/IGitTriageService'; /** * Git commit summary used in context display. */ export interface IGitCommit { hash: string; message: string; } /** * Session context information for formatting. */ export interface ISessionContext { projectName: string; userName: string; folderType: string; projectRoot: string; branch: string | null; } /** * Memory data used for context formatting. */ export interface IFormattableMemories { readonly facts: readonly IMemoryItem[]; readonly nodes: readonly IMemoryItem[]; readonly initReview: string | null; readonly timedOut: boolean; } export declare class SessionContextFormatter { /** * Get trigger-specific message. */ getTriggerMessage(trigger: SessionTrigger, timedOut: boolean): string; /** * Get trigger-specific reminders. */ getTriggerReminders(trigger: SessionTrigger): string[]; /** * Format the full context content for injection into session context. */ formatContextContent(trigger: SessionTrigger, memories: IFormattableMemories, tasks: readonly ITask[], taskCounts: ITaskCounts, context: ISessionContext, gitCommits?: readonly IGitCommit[], querySince?: Date, gitTriage?: ITriageResult | null): string; /** * Filter memories to recent items within a time window. */ filterRecentMemories(memories: readonly IMemoryItem[], hoursAgo: number): IMemoryItem[]; /** * Format memory items into grouped summary lines. */ formatMemorySummary(memories: readonly IMemoryItem[], limit: number): string[]; /** * Group memories by time windows for compact display. */ groupMemoriesByTime(memories: readonly IMemoryItem[], windowMinutes: number): Array<{ timestamp: Date; memories: IMemoryItem[]; summary: string; }>; /** * Extract a concise summary from a group of related memories. */ extractGroupSummary(memories: IMemoryItem[]): string; /** * Format a date range description for display. */ formatDateRangeDescription(since: Date): string; /** * Format a date as a relative display string. */ formatRelativeDate(date: Date): string; /** * Format git triage results as a compact summary. * Shows aggregate counts rather than individual commits. */ formatGitTriageSummary(triage: ITriageResult): string[]; /** * Format a file path for hotspot display (truncate long paths). */ private formatHotspotPath; } //# sourceMappingURL=SessionContextFormatter.d.ts.map