/** * Bayan — Shared Constants (Single Source of Truth) * * ALL shared configuration lives here. * No hardcoded API URLs, timeouts, or limits elsewhere. * * Used by: background.js, analysis-controller.js, config.js (legacy alias) */ const BAYAN = { /** Backend API base URL (HuggingFace Spaces) */ API_BASE: 'https://bayan10-bayan-api.hf.space', /** Network timeout for API calls (ms) */ API_TIMEOUT_MS: 60000, // FIX-09: Increased from 20s to 60s for cold-start tolerance /** Max retries on network failure */ MAX_RETRIES: 1, /** Cache TTL (ms) — 5 minutes */ CACHE_TTL_MS: 300000, /** Max cache entries */ CACHE_MAX_ENTRIES: 20, /** Max text length for analysis */ MAX_TEXT_LENGTH: 5000, /** Min text length to trigger analysis */ MIN_TEXT_LENGTH: 15, /** Min Arabic characters required */ MIN_ARABIC_CHARS: 5, /** Min text length for summarization */ MIN_SUMMARIZE_LENGTH: 10, /** Protected hosts — disable contenteditable injection */ PROTECTED_HOSTS: [ 'mail.google.com', 'docs.google.com', 'sheets.google.com', 'slides.google.com', 'notion.so', 'www.notion.so', ], };