1 line
16 KiB
JSON
1 line
16 KiB
JSON
{"repo": "aakeshf/deepweb-extension", "files": {"config.js": {"c99f8f7815117932f6afa1686b68e444d4a4c3f2": {"t": 1785745996.395904, "n": 2566, "h": "5a2c6b844060d759", "c": "// Configuration file for DeepWeb Firefox Extension\r\nconst DEEPWEB_CONFIG = {\r\n // API Settings\r\n api: {\r\n endpoint: 'https://api.deepseek.com/v1/chat/completions',\r\n timeout: 30000, // 30 seconds\r\n maxRetries: 3\r\n },\r\n \r\n // Rate Limiting\r\n rateLimit: {\r\n minInterval: 10000, // 10 seconds between requests\r\n maxRequestsPerHour: 100\r\n },\r\n \r\n // UI Settings\r\n ui: {\r\n width: 380,\r\n maxHeight: 600,\r\n minHeight: 200,\r\n position: {\r\n bottom: 20,\r\n right: 20\r\n }\r\n },\r\n \r\n // Content Processing\r\n content: {\r\n previewLength: 500,\r\n maxContextLength: 2000,\r\n maxMessageLength: 1000\r\n },\r\n \r\n // Model Settings\r\n models: {\r\n 'deepseek-chat': {\r\n name: 'DeepSeek Chat',\r\n description: 'General Purpose',\r\n maxTokens: 1000,\r\n temperature: 0.7,\r\n costPerThousandTokens: 0.00014\r\n },\r\n 'deepseek-coder': {\r\n name: 'DeepSeek Coder',\r\n description: 'Programming',\r\n maxTokens: 1500,\r\n temperature: 0.3,\r\n costPerThousandTokens: 0.00014\r\n },\r\n 'deepseek-reasoner': {\r\n name: 'DeepSeek Reasoner',\r\n description: 'Complex Analysis',\r\n maxTokens: 2000,\r\n temperature: 0.5,\r\n costPerThousandTokens: 0.00055\r\n }\r\n },\r\n \r\n // Security Settings\r\n security: {\r\n apiKeyMinLength: 20,\r\n apiKeyMaxLength: 200,\r\n allowedOrigins: ['https://api.deepseek.com'],\r\n maxStorageSize: 5 * 1024 * 1024 // 5MB\r\n },\r\n \r\n // Default Settings\r\n defaults: {\r\n model: 'deepseek-chat',\r\n theme: 'light',\r\n fontSize: 'medium',\r\n layout: 'corner',\r\n streamResponses: true,\r\n streamingEnabled: true\r\n }\r\n};\r\n\r\n// Validation functions\r\nconst DEEPWEB_VALIDATORS = {\r\n apiKey: (key) => {\r\n if (!key || typeof key !== 'string') return false;\r\n const trimmed = key.trim();\r\n return trimmed.length >= DEEPWEB_CONFIG.security.apiKeyMinLength && \r\n trimmed.length <= DEEPWEB_CONFIG.security.apiKeyMaxLength &&\r\n /^[a-zA-Z0-9\\-_]+$/.test(trimmed);\r\n },\r\n \r\n message: (msg) => {\r\n if (!msg || typeof msg !== 'string') return false;\r\n return msg.trim().length > 0 && msg.length <= DEEPWEB_CONFIG.content.maxMessageLength;\r\n },\r\n \r\n url: (url) => {\r\n try {\r\n const parsed = new URL(url);\r\n return parsed.protocol === 'http:' || parsed.protocol === 'https:';\r\n } catch {\r\n return false;\r\n }\r\n }\r\n};\r\n\r\n// Export for use in other scripts\r\nif (typeof module !== 'undefined' && module.exports) {\r\n module.exports = { DEEPWEB_CONFIG, DEEPWEB_VALIDATORS };\r\n}"}, "c8d741e7a5dd9b499630b3dd9cbe3491f2b80dab": {"t": 1785758632.3567908, "n": 2566, "h": "5a2c6b844060d759", "c": "// Configuration file for DeepWeb Firefox Extension\r\nconst DEEPWEB_CONFIG = {\r\n // API Settings\r\n api: {\r\n endpoint: 'https://api.deepseek.com/v1/chat/completions',\r\n timeout: 30000, // 30 seconds\r\n maxRetries: 3\r\n },\r\n \r\n // Rate Limiting\r\n rateLimit: {\r\n minInterval: 10000, // 10 seconds between requests\r\n maxRequestsPerHour: 100\r\n },\r\n \r\n // UI Settings\r\n ui: {\r\n width: 380,\r\n maxHeight: 600,\r\n minHeight: 200,\r\n position: {\r\n bottom: 20,\r\n right: 20\r\n }\r\n },\r\n \r\n // Content Processing\r\n content: {\r\n previewLength: 500,\r\n maxContextLength: 2000,\r\n maxMessageLength: 1000\r\n },\r\n \r\n // Model Settings\r\n models: {\r\n 'deepseek-chat': {\r\n name: 'DeepSeek Chat',\r\n description: 'General Purpose',\r\n maxTokens: 1000,\r\n temperature: 0.7,\r\n costPerThousandTokens: 0.00014\r\n },\r\n 'deepseek-coder': {\r\n name: 'DeepSeek Coder',\r\n description: 'Programming',\r\n maxTokens: 1500,\r\n temperature: 0.3,\r\n costPerThousandTokens: 0.00014\r\n },\r\n 'deepseek-reasoner': {\r\n name: 'DeepSeek Reasoner',\r\n description: 'Complex Analysis',\r\n maxTokens: 2000,\r\n temperature: 0.5,\r\n costPerThousandTokens: 0.00055\r\n }\r\n },\r\n \r\n // Security Settings\r\n security: {\r\n apiKeyMinLength: 20,\r\n apiKeyMaxLength: 200,\r\n allowedOrigins: ['https://api.deepseek.com'],\r\n maxStorageSize: 5 * 1024 * 1024 // 5MB\r\n },\r\n \r\n // Default Settings\r\n defaults: {\r\n model: 'deepseek-chat',\r\n theme: 'light',\r\n fontSize: 'medium',\r\n layout: 'corner',\r\n streamResponses: true,\r\n streamingEnabled: true\r\n }\r\n};\r\n\r\n// Validation functions\r\nconst DEEPWEB_VALIDATORS = {\r\n apiKey: (key) => {\r\n if (!key || typeof key !== 'string') return false;\r\n const trimmed = key.trim();\r\n return trimmed.length >= DEEPWEB_CONFIG.security.apiKeyMinLength && \r\n trimmed.length <= DEEPWEB_CONFIG.security.apiKeyMaxLength &&\r\n /^[a-zA-Z0-9\\-_]+$/.test(trimmed);\r\n },\r\n \r\n message: (msg) => {\r\n if (!msg || typeof msg !== 'string') return false;\r\n return msg.trim().length > 0 && msg.length <= DEEPWEB_CONFIG.content.maxMessageLength;\r\n },\r\n \r\n url: (url) => {\r\n try {\r\n const parsed = new URL(url);\r\n return parsed.protocol === 'http:' || parsed.protocol === 'https:';\r\n } catch {\r\n return false;\r\n }\r\n }\r\n};\r\n\r\n// Export for use in other scripts\r\nif (typeof module !== 'undefined' && module.exports) {\r\n module.exports = { DEEPWEB_CONFIG, DEEPWEB_VALIDATORS };\r\n}"}}, "mozilla-build/src/config/config.default.js": {"c99f8f7815117932f6afa1686b68e444d4a4c3f2": {"t": 1785746014.5302439, "n": 5105, "h": "d461082d09584360", "c": "/**\n * Default Configuration\n * Complete default settings for the extension\n */\n\nexport const DEFAULT_CONFIG = {\n version: '1.0.0',\n \n api: {\n providers: {\n deepseek: {\n endpoint: 'https://api.deepseek.com/v1/chat/completions',\n models: {\n 'deepseek-chat': {\n name: 'DeepSeek Chat',\n description: 'General purpose conversations',\n maxTokens: 4000,\n temperature: 0.7,\n pricing: {\n input: 0.0001, // per 1K tokens\n output: 0.0002 // per 1K tokens\n }\n },\n 'deepseek-coder': {\n name: 'DeepSeek Coder',\n description: 'Programming and code analysis',\n maxTokens: 8000,\n temperature: 0.3,\n pricing: {\n input: 0.0001,\n output: 0.0002\n }\n },\n 'deepseek-reasoner': {\n name: 'DeepSeek Reasoner',\n description: 'Complex reasoning and analysis',\n maxTokens: 4000,\n temperature: 0.5,\n pricing: {\n input: 0.0005,\n output: 0.001\n }\n }\n }\n }\n },\n timeout: 30000, // 30 seconds\n retries: {\n max: 3,\n delay: 1000, // Initial delay\n backoff: 2 // Exponential backoff multiplier\n },\n rateLimit: {\n interval: 10000, // 10 seconds between requests\n maxPerHour: 100,\n maxPerDay: 1000\n }\n },\n \n ui: {\n themes: {\n light: {\n name: 'Light',\n colors: {\n primary: '#667eea',\n secondary: '#764ba2',\n background: '#ffffff',\n surface: '#f8f9fa',\n text: {\n primary: '#333333',\n secondary: '#666666',\n disabled: '#999999'\n },\n border: '#e0e0e0',\n error: '#c62828',\n warning: '#f57c00',\n success: '#2e7d32',\n info: '#1976d2'\n }\n },\n dark: {\n name: 'Dark',\n colors: {\n primary: '#818cf8',\n secondary: '#a78bfa',\n background: '#1a1a1a',\n surface: '#2d2d2d',\n text: {\n primary: '#ffffff',\n secondary: '#b3b3b3',\n disabled: '#666666'\n },\n border: '#404040',\n error: '#ef4444',\n warning: '#f59e0b',\n success: '#10b981',\n info: '#3b82f6'\n }\n }\n },\n layouts: {\n corner: {\n position: 'bottom-right',\n offset: { x: 20, y: 20 },\n width: 380,\n maxWidth: 'calc(100vw - 40px)',\n maxHeight: 600\n },\n sidebar: {\n side: 'right',\n width: 400,\n height: '100%'\n },\n floating: {\n draggable: true,\n resizable: true,\n minWidth: 300,\n minHeight: 400,\n defaultWidth: 380,\n defaultHeight: 600\n }\n },\n animations: {\n enabled: true,\n duration: 200,\n easing: 'ease-out'\n },\n fontSize: {\n small: 12,\n medium: 14,\n large: 16\n }\n },\n \n security: {\n apiKeyValidation: {\n minLength: 20,\n maxLength: 200,\n pattern: '^sk-[a-zA-Z0-9]+$',\n required: true\n },\n contentSecurity: {\n maxInputLength: 1000,\n maxContextLength: 2000,\n sanitizeHtml: true,\n allowedTags: []\n },\n rateLimiting: {\n enabled: true,\n strictMode: false,\n penalties: {\n warning: 3, // Warnings before block\n blockDuration: 3600000 // 1 hour block\n }\n }\n },\n \n features: {\n streaming: {\n enabled: true,\n chunkSize: 1024,\n bufferSize: 4096\n },\n conversations: {\n maxHistory: 100,\n autoSave: true,\n syncAcrossTabs: true,\n persistence: 'indexedDB'\n },\n export: {\n formats: ['json', 'markdown', 'html', 'csv', 'pdf'],\n includeMetadata: true,\n compression: true\n },\n contextExtraction: {\n enabled: true,\n smartMode: true,\n maxLength: 2000,\n includeMetadata: true\n },\n templates: {\n enabled: true,\n allowCustom: true,\n maxCustomTemplates: 50\n }\n },\n \n content: {\n previewLength: 500,\n maxMessageLength: 1000,\n maxContextLength: 2000,\n truncateIndicator: '...',\n messageFormatting: {\n markdown: true,\n syntaxHighlighting: true,\n mathRendering: false\n }\n },\n \n storage: {\n quotaWarningThreshold: 0.8, // Warn at 80% usage\n autoCleanup: {\n enabled: true,\n maxAge: 2592000000, // 30 days in milliseconds\n maxConversations: 1000\n }\n },\n \n telemetry: {\n enabled: false,\n anonymous: true,\n events: ['errors', 'performance']\n },\n \n defaults: {\n model: 'deepseek-chat',\n theme: 'light',\n layout: 'corner',\n language: 'en',\n shortcuts: {\n toggle: 'Ctrl+Shift+Y',\n newChat: 'Ctrl+Shift+N',\n clearChat: 'Ctrl+Shift+C'\n }\n },\n \n experimental: {\n voiceInput: false,\n voiceOutput: false,\n autoSuggest: false,\n smartReplies: false\n }\n};"}, "6959895dcf2ea4aa02a5a48a62d063997ab780d7": {"t": 1785758633.2655194, "n": 5105, "h": "d461082d09584360", "c": "/**\n * Default Configuration\n * Complete default settings for the extension\n */\n\nexport const DEFAULT_CONFIG = {\n version: '1.0.0',\n \n api: {\n providers: {\n deepseek: {\n endpoint: 'https://api.deepseek.com/v1/chat/completions',\n models: {\n 'deepseek-chat': {\n name: 'DeepSeek Chat',\n description: 'General purpose conversations',\n maxTokens: 4000,\n temperature: 0.7,\n pricing: {\n input: 0.0001, // per 1K tokens\n output: 0.0002 // per 1K tokens\n }\n },\n 'deepseek-coder': {\n name: 'DeepSeek Coder',\n description: 'Programming and code analysis',\n maxTokens: 8000,\n temperature: 0.3,\n pricing: {\n input: 0.0001,\n output: 0.0002\n }\n },\n 'deepseek-reasoner': {\n name: 'DeepSeek Reasoner',\n description: 'Complex reasoning and analysis',\n maxTokens: 4000,\n temperature: 0.5,\n pricing: {\n input: 0.0005,\n output: 0.001\n }\n }\n }\n }\n },\n timeout: 30000, // 30 seconds\n retries: {\n max: 3,\n delay: 1000, // Initial delay\n backoff: 2 // Exponential backoff multiplier\n },\n rateLimit: {\n interval: 10000, // 10 seconds between requests\n maxPerHour: 100,\n maxPerDay: 1000\n }\n },\n \n ui: {\n themes: {\n light: {\n name: 'Light',\n colors: {\n primary: '#667eea',\n secondary: '#764ba2',\n background: '#ffffff',\n surface: '#f8f9fa',\n text: {\n primary: '#333333',\n secondary: '#666666',\n disabled: '#999999'\n },\n border: '#e0e0e0',\n error: '#c62828',\n warning: '#f57c00',\n success: '#2e7d32',\n info: '#1976d2'\n }\n },\n dark: {\n name: 'Dark',\n colors: {\n primary: '#818cf8',\n secondary: '#a78bfa',\n background: '#1a1a1a',\n surface: '#2d2d2d',\n text: {\n primary: '#ffffff',\n secondary: '#b3b3b3',\n disabled: '#666666'\n },\n border: '#404040',\n error: '#ef4444',\n warning: '#f59e0b',\n success: '#10b981',\n info: '#3b82f6'\n }\n }\n },\n layouts: {\n corner: {\n position: 'bottom-right',\n offset: { x: 20, y: 20 },\n width: 380,\n maxWidth: 'calc(100vw - 40px)',\n maxHeight: 600\n },\n sidebar: {\n side: 'right',\n width: 400,\n height: '100%'\n },\n floating: {\n draggable: true,\n resizable: true,\n minWidth: 300,\n minHeight: 400,\n defaultWidth: 380,\n defaultHeight: 600\n }\n },\n animations: {\n enabled: true,\n duration: 200,\n easing: 'ease-out'\n },\n fontSize: {\n small: 12,\n medium: 14,\n large: 16\n }\n },\n \n security: {\n apiKeyValidation: {\n minLength: 20,\n maxLength: 200,\n pattern: '^sk-[a-zA-Z0-9]+$',\n required: true\n },\n contentSecurity: {\n maxInputLength: 1000,\n maxContextLength: 2000,\n sanitizeHtml: true,\n allowedTags: []\n },\n rateLimiting: {\n enabled: true,\n strictMode: false,\n penalties: {\n warning: 3, // Warnings before block\n blockDuration: 3600000 // 1 hour block\n }\n }\n },\n \n features: {\n streaming: {\n enabled: true,\n chunkSize: 1024,\n bufferSize: 4096\n },\n conversations: {\n maxHistory: 100,\n autoSave: true,\n syncAcrossTabs: true,\n persistence: 'indexedDB'\n },\n export: {\n formats: ['json', 'markdown', 'html', 'csv', 'pdf'],\n includeMetadata: true,\n compression: true\n },\n contextExtraction: {\n enabled: true,\n smartMode: true,\n maxLength: 2000,\n includeMetadata: true\n },\n templates: {\n enabled: true,\n allowCustom: true,\n maxCustomTemplates: 50\n }\n },\n \n content: {\n previewLength: 500,\n maxMessageLength: 1000,\n maxContextLength: 2000,\n truncateIndicator: '...',\n messageFormatting: {\n markdown: true,\n syntaxHighlighting: true,\n mathRendering: false\n }\n },\n \n storage: {\n quotaWarningThreshold: 0.8, // Warn at 80% usage\n autoCleanup: {\n enabled: true,\n maxAge: 2592000000, // 30 days in milliseconds\n maxConversations: 1000\n }\n },\n \n telemetry: {\n enabled: false,\n anonymous: true,\n events: ['errors', 'performance']\n },\n \n defaults: {\n model: 'deepseek-chat',\n theme: 'light',\n layout: 'corner',\n language: 'en',\n shortcuts: {\n toggle: 'Ctrl+Shift+Y',\n newChat: 'Ctrl+Shift+N',\n clearChat: 'Ctrl+Shift+C'\n }\n },\n \n experimental: {\n voiceInput: false,\n voiceOutput: false,\n autoSuggest: false,\n smartReplies: false\n }\n};"}}}} |