119 lines
3.0 KiB
TypeScript
119 lines
3.0 KiB
TypeScript
/**
|
|
* Chrome Extension Constants
|
|
* Centralized configuration values and magic constants
|
|
*/
|
|
|
|
// Native Host Configuration
|
|
export const NATIVE_HOST = {
|
|
NAME: 'com.chromemcp.nativehost',
|
|
DEFAULT_PORT: 12306,
|
|
} as const;
|
|
|
|
// Chrome Extension Icons
|
|
export const ICONS = {
|
|
NOTIFICATION: 'icon/48.png',
|
|
} as const;
|
|
|
|
// Timeouts and Delays (in milliseconds)
|
|
export const TIMEOUTS = {
|
|
DEFAULT_WAIT: 1000,
|
|
NETWORK_CAPTURE_MAX: 60000, // Increased from 30000
|
|
NETWORK_CAPTURE_IDLE: 5000, // Increased from 3000
|
|
SCREENSHOT_DELAY: 100,
|
|
KEYBOARD_DELAY: 50,
|
|
CLICK_DELAY: 100,
|
|
REMOTE_SERVER_CONNECTION: 45000, // Increased from 30000ms to 45000ms for more reliable connections
|
|
TOOL_EXECUTION: 60000, // New timeout for tool execution
|
|
} as const;
|
|
|
|
// Limits and Thresholds
|
|
export const LIMITS = {
|
|
MAX_NETWORK_REQUESTS: 100,
|
|
MAX_SEARCH_RESULTS: 50,
|
|
MAX_BOOKMARK_RESULTS: 100,
|
|
MAX_HISTORY_RESULTS: 100,
|
|
SIMILARITY_THRESHOLD: 0.1,
|
|
VECTOR_DIMENSIONS: 384,
|
|
} as const;
|
|
|
|
// Error Messages
|
|
export const ERROR_MESSAGES = {
|
|
NATIVE_CONNECTION_FAILED: 'Failed to connect to native host',
|
|
NATIVE_DISCONNECTED: 'Native connection disconnected',
|
|
SERVER_STATUS_LOAD_FAILED: 'Failed to load server status',
|
|
SERVER_STATUS_SAVE_FAILED: 'Failed to save server status',
|
|
TOOL_EXECUTION_FAILED: 'Tool execution failed',
|
|
INVALID_PARAMETERS: 'Invalid parameters provided',
|
|
PERMISSION_DENIED: 'Permission denied',
|
|
TAB_NOT_FOUND: 'Tab not found',
|
|
ELEMENT_NOT_FOUND: 'Element not found',
|
|
NETWORK_ERROR: 'Network error occurred',
|
|
} as const;
|
|
|
|
// Success Messages
|
|
export const SUCCESS_MESSAGES = {
|
|
TOOL_EXECUTED: 'Tool executed successfully',
|
|
CONNECTION_ESTABLISHED: 'Connection established',
|
|
SERVER_STARTED: 'Server started successfully',
|
|
SERVER_STOPPED: 'Server stopped successfully',
|
|
} as const;
|
|
|
|
// File Extensions and MIME Types
|
|
export const FILE_TYPES = {
|
|
STATIC_EXTENSIONS: [
|
|
'.css',
|
|
'.js',
|
|
'.png',
|
|
'.jpg',
|
|
'.jpeg',
|
|
'.gif',
|
|
'.svg',
|
|
'.ico',
|
|
'.woff',
|
|
'.woff2',
|
|
'.ttf',
|
|
],
|
|
FILTERED_MIME_TYPES: ['text/html', 'text/css', 'text/javascript', 'application/javascript'],
|
|
IMAGE_FORMATS: ['png', 'jpeg', 'webp'] as const,
|
|
} as const;
|
|
|
|
// Network Filtering
|
|
export const NETWORK_FILTERS = {
|
|
EXCLUDED_DOMAINS: [
|
|
'google-analytics.com',
|
|
'googletagmanager.com',
|
|
'facebook.com',
|
|
'doubleclick.net',
|
|
'googlesyndication.com',
|
|
],
|
|
STATIC_RESOURCE_TYPES: ['stylesheet', 'image', 'font', 'media', 'other'],
|
|
} as const;
|
|
|
|
// Semantic Similarity Configuration
|
|
export const SEMANTIC_CONFIG = {
|
|
DEFAULT_MODEL: 'sentence-transformers/all-MiniLM-L6-v2',
|
|
CHUNK_SIZE: 512,
|
|
CHUNK_OVERLAP: 50,
|
|
BATCH_SIZE: 32,
|
|
CACHE_SIZE: 1000,
|
|
} as const;
|
|
|
|
// Storage Keys
|
|
export const STORAGE_KEYS = {
|
|
SERVER_STATUS: 'serverStatus',
|
|
SEMANTIC_MODEL: 'selectedModel',
|
|
USER_PREFERENCES: 'userPreferences',
|
|
VECTOR_INDEX: 'vectorIndex',
|
|
} as const;
|
|
|
|
// Notification Configuration
|
|
export const NOTIFICATIONS = {
|
|
PRIORITY: 2,
|
|
TYPE: 'basic' as const,
|
|
} as const;
|
|
|
|
export enum ExecutionWorld {
|
|
ISOLATED = 'ISOLATED',
|
|
MAIN = 'MAIN',
|
|
}
|