@kaifronsdal/transcript-viewer
Version:
A web-based viewer for AI conversation transcripts with rollback support
57 lines (48 loc) • 1.61 kB
text/typescript
// Application constants
// Data loading
export const DEFAULT_TRANSCRIPT_DIR = './transcripts';
export const DEFAULT_CONCURRENCY = 10;
export const DEFAULT_PAGINATION_LIMIT = 50;
// Caching
export const MAX_FULL_TRANSCRIPTS_CACHE = 200;
export const CACHE_STATS_LOG_INTERVAL = 60000; // 1 minute
// UI constants
export const DEFAULT_TABLE_ROW_HEIGHT = 50;
export const DEFAULT_TABLE_OVERSCAN = 10;
export const MAX_SUMMARY_LENGTH = 150;
export const MAX_JUDGE_SUMMARY_LENGTH = 100;
// File processing
export const TRANSCRIPT_FILE_EXTENSION = '.json';
export const MAX_FILE_READ_ATTEMPTS = 3;
// Virtualization
export const VIRTUAL_TABLE_HEIGHT = '70vh';
export const VIRTUAL_ITEM_SIZE = 50;
// Local storage keys
export const STORAGE_KEYS = {
COLUMN_VISIBILITY: 'transcript-table-visible-columns',
COLUMN_SIZING: 'transcript-table-column-sizing',
VIEW_MODE: 'transcript-viewer-view-mode',
FILTER_STATE: 'transcript-filter-state'
} as const;
// Score thresholds for coloring
export const SCORE_THRESHOLDS = {
HIGH_CONCERN: 8,
MEDIUM_CONCERN: 6,
LOW_CONCERN: 4,
MINIMAL_CONCERN: 2
} as const;
// API timeouts (in milliseconds)
export const API_TIMEOUTS = {
DEFAULT: 120000, // 2 minutes
BULK_LOAD: 300000, // 5 minutes
VALIDATION: 30000 // 30 seconds
} as const;
// Error messages
export const ERROR_MESSAGES = {
GENERIC: 'An unexpected error occurred',
FILE_NOT_FOUND: 'File not found',
VALIDATION_FAILED: 'Schema validation failed',
PERMISSION_DENIED: 'Permission denied',
PARSE_ERROR: 'Failed to parse file',
NETWORK_ERROR: 'Network error occurred'
} as const;