// Application constants // API Configuration export const API_URL = import.meta.env.VITE_API_URL || 'http://localhost:4004'; export const API_TIMEOUT = parseInt(import.meta.env.VITE_API_TIMEOUT || '30000'); export const API_TOKEN = import.meta.env.VITE_API_TOKEN || 'dev-token-change-in-production'; // Authentication export const ENABLE_MOCK_AUTH = import.meta.env.VITE_ENABLE_MOCK_AUTH === 'true'; export const MOCK_USER_ID = import.meta.env.VITE_MOCK_USER_ID || 'testuser'; export const MOCK_USERNAME = import.meta.env.VITE_MOCK_USERNAME || 'Test User'; export const MOCK_EMAIL = import.meta.env.VITE_MOCK_EMAIL || 'testuser@example.com'; // OAuth export const OAUTH_CLIENT_ID = import.meta.env.VITE_OAUTH_CLIENT_ID || ''; export const OAUTH_REDIRECT_URI = import.meta.env.VITE_OAUTH_REDIRECT_URI || 'http://localhost:5173/auth/callback'; export const OAUTH_PROVIDER_URL = import.meta.env.VITE_OAUTH_PROVIDER_URL || 'https://huggingface.co'; // Feature Flags export const ENABLE_COMPARISON = import.meta.env.VITE_ENABLE_COMPARISON !== 'false'; export const SESSION_LIMIT = parseInt(import.meta.env.VITE_SESSION_LIMIT || '20'); // UI Constants export const SESSION_LIMIT_WARNING = 15; // Warn when approaching limit export const MESSAGE_MAX_LENGTH = 10000; // Max message content length export const SESSION_TITLE_MAX_LENGTH = 200; // Max session title length // Storage Keys export const STORAGE_KEY_AUTH_TOKEN = 'prepmate_auth_token'; export const STORAGE_KEY_AUTH_USER = 'prepmate_auth_user'; export const STORAGE_KEY_USER_PROFILE = 'prepmate_user_profile'; // Alias for AUTH_USER export const STORAGE_KEY_TOKEN_EXPIRY = 'prepmate_token_expiry'; export const STORAGE_KEY_SIDEBAR_VISIBLE = 'prepmate_sidebar_visible'; export const STORAGE_KEY_ACTIVE_SESSION = 'prepmate_active_session'; // HTTP Headers export const HEADER_AUTHORIZATION = 'Authorization'; export const HEADER_USER_ID = 'X-User-ID'; export const HEADER_CONTENT_TYPE = 'Content-Type'; // Retry Configuration export const MAX_RETRIES = 3; export const RETRY_DELAY = 1000; // milliseconds // Breakpoints (match Bootstrap) export const BREAKPOINT_MOBILE = 768; export const BREAKPOINT_TABLET = 992; export const BREAKPOINT_DESKTOP = 1200;