| export const PUBLIC_DIRECTORIES = { |
| images: 'public/img/', |
| backups: 'backups/', |
| sounds: 'public/sounds', |
| extensions: 'public/scripts/extensions', |
| globalExtensions: 'public/scripts/extensions/third-party', |
| }; |
|
|
| export const SETTINGS_FILE = 'settings.json'; |
|
|
| |
| |
| |
| |
| |
| export const USER_DIRECTORY_TEMPLATE = Object.freeze({ |
| root: '', |
| thumbnails: 'thumbnails', |
| thumbnailsBg: 'thumbnails/bg', |
| thumbnailsAvatar: 'thumbnails/avatar', |
| thumbnailsPersona: 'thumbnails/persona', |
| worlds: 'worlds', |
| user: 'user', |
| avatars: 'User Avatars', |
| userImages: 'user/images', |
| groups: 'groups', |
| groupChats: 'group chats', |
| chats: 'chats', |
| characters: 'characters', |
| backgrounds: 'backgrounds', |
| novelAI_Settings: 'NovelAI Settings', |
| koboldAI_Settings: 'KoboldAI Settings', |
| openAI_Settings: 'OpenAI Settings', |
| textGen_Settings: 'TextGen Settings', |
| themes: 'themes', |
| movingUI: 'movingUI', |
| extensions: 'extensions', |
| instruct: 'instruct', |
| context: 'context', |
| quickreplies: 'QuickReplies', |
| assets: 'assets', |
| comfyWorkflows: 'user/workflows', |
| files: 'user/files', |
| vectors: 'vectors', |
| backups: 'backups', |
| sysprompt: 'sysprompt', |
| reasoning: 'reasoning', |
| }); |
|
|
| |
| |
| |
| |
| export const DEFAULT_USER = Object.freeze({ |
| handle: 'default-user', |
| name: 'User', |
| created: Date.now(), |
| password: '', |
| admin: true, |
| enabled: true, |
| salt: '', |
| }); |
|
|
| export const UNSAFE_EXTENSIONS = [ |
| '.php', |
| '.exe', |
| '.com', |
| '.dll', |
| '.pif', |
| '.application', |
| '.gadget', |
| '.msi', |
| '.jar', |
| '.cmd', |
| '.bat', |
| '.reg', |
| '.sh', |
| '.py', |
| '.js', |
| '.jse', |
| '.jsp', |
| '.pdf', |
| '.html', |
| '.htm', |
| '.hta', |
| '.vb', |
| '.vbs', |
| '.vbe', |
| '.cpl', |
| '.msc', |
| '.scr', |
| '.sql', |
| '.iso', |
| '.img', |
| '.dmg', |
| '.ps1', |
| '.ps1xml', |
| '.ps2', |
| '.ps2xml', |
| '.psc1', |
| '.psc2', |
| '.msh', |
| '.msh1', |
| '.msh2', |
| '.mshxml', |
| '.msh1xml', |
| '.msh2xml', |
| '.scf', |
| '.lnk', |
| '.inf', |
| '.reg', |
| '.doc', |
| '.docm', |
| '.docx', |
| '.dot', |
| '.dotm', |
| '.dotx', |
| '.xls', |
| '.xlsm', |
| '.xlsx', |
| '.xlt', |
| '.xltm', |
| '.xltx', |
| '.xlam', |
| '.ppt', |
| '.pptm', |
| '.pptx', |
| '.pot', |
| '.potm', |
| '.potx', |
| '.ppam', |
| '.ppsx', |
| '.ppsm', |
| '.pps', |
| '.ppam', |
| '.sldx', |
| '.sldm', |
| '.ws', |
| ]; |
|
|
| export const GEMINI_SAFETY = [ |
| { |
| category: 'HARM_CATEGORY_HARASSMENT', |
| threshold: 'OFF', |
| }, |
| { |
| category: 'HARM_CATEGORY_HATE_SPEECH', |
| threshold: 'OFF', |
| }, |
| { |
| category: 'HARM_CATEGORY_SEXUALLY_EXPLICIT', |
| threshold: 'OFF', |
| }, |
| { |
| category: 'HARM_CATEGORY_DANGEROUS_CONTENT', |
| threshold: 'OFF', |
| }, |
| { |
| category: 'HARM_CATEGORY_CIVIC_INTEGRITY', |
| threshold: 'OFF', |
| }, |
| ]; |
|
|
| export const VERTEX_SAFETY = [ |
| { |
| category: 'HARM_CATEGORY_IMAGE_HATE', |
| threshold: 'OFF', |
| }, |
| { |
| category: 'HARM_CATEGORY_IMAGE_DANGEROUS_CONTENT', |
| threshold: 'OFF', |
| }, |
| { |
| category: 'HARM_CATEGORY_IMAGE_HARASSMENT', |
| threshold: 'OFF', |
| }, |
| { |
| category: 'HARM_CATEGORY_IMAGE_SEXUALLY_EXPLICIT', |
| threshold: 'OFF', |
| }, |
| { |
| category: 'HARM_CATEGORY_JAILBREAK', |
| threshold: 'OFF', |
| }, |
| ]; |
|
|
| export const CHAT_COMPLETION_SOURCES = { |
| OPENAI: 'openai', |
| CLAUDE: 'claude', |
| OPENROUTER: 'openrouter', |
| AI21: 'ai21', |
| MAKERSUITE: 'makersuite', |
| VERTEXAI: 'vertexai', |
| MISTRALAI: 'mistralai', |
| CUSTOM: 'custom', |
| COHERE: 'cohere', |
| PERPLEXITY: 'perplexity', |
| GROQ: 'groq', |
| CHUTES: 'chutes', |
| ELECTRONHUB: 'electronhub', |
| NANOGPT: 'nanogpt', |
| DEEPSEEK: 'deepseek', |
| AIMLAPI: 'aimlapi', |
| XAI: 'xai', |
| POLLINATIONS: 'pollinations', |
| MOONSHOT: 'moonshot', |
| FIREWORKS: 'fireworks', |
| COMETAPI: 'cometapi', |
| AZURE_OPENAI: 'azure_openai', |
| ZAI: 'zai', |
| SILICONFLOW: 'siliconflow', |
| }; |
|
|
| |
| |
| |
| export const UPLOADS_DIRECTORY = '_uploads'; |
|
|
| |
| export const TEXTGEN_TYPES = { |
| OOBA: 'ooba', |
| MANCER: 'mancer', |
| VLLM: 'vllm', |
| APHRODITE: 'aphrodite', |
| TABBY: 'tabby', |
| KOBOLDCPP: 'koboldcpp', |
| TOGETHERAI: 'togetherai', |
| LLAMACPP: 'llamacpp', |
| OLLAMA: 'ollama', |
| INFERMATICAI: 'infermaticai', |
| DREAMGEN: 'dreamgen', |
| OPENROUTER: 'openrouter', |
| FEATHERLESS: 'featherless', |
| HUGGINGFACE: 'huggingface', |
| GENERIC: 'generic', |
| }; |
|
|
| export const INFERMATICAI_KEYS = [ |
| 'model', |
| 'prompt', |
| 'max_tokens', |
| 'temperature', |
| 'top_p', |
| 'top_k', |
| 'repetition_penalty', |
| 'stream', |
| 'stop', |
| 'presence_penalty', |
| 'frequency_penalty', |
| 'min_p', |
| 'seed', |
| 'ignore_eos', |
| 'n', |
| 'best_of', |
| 'min_tokens', |
| 'spaces_between_special_tokens', |
| 'skip_special_tokens', |
| 'logprobs', |
| ]; |
|
|
| export const FEATHERLESS_KEYS = [ |
| 'model', |
| 'prompt', |
| 'best_of', |
| 'echo', |
| 'frequency_penalty', |
| 'logit_bias', |
| 'logprobs', |
| 'max_tokens', |
| 'n', |
| 'presence_penalty', |
| 'seed', |
| 'stop', |
| 'stream', |
| 'suffix', |
| 'temperature', |
| 'top_p', |
| 'user', |
|
|
| 'use_beam_search', |
| 'top_k', |
| 'min_p', |
| 'repetition_penalty', |
| 'length_penalty', |
| 'early_stopping', |
| 'stop_token_ids', |
| 'ignore_eos', |
| 'min_tokens', |
| 'skip_special_tokens', |
| 'spaces_between_special_tokens', |
| 'truncate_prompt_tokens', |
|
|
| 'include_stop_str_in_output', |
| 'response_format', |
| 'guided_json', |
| 'guided_regex', |
| 'guided_choice', |
| 'guided_grammar', |
| 'guided_decoding_backend', |
| 'guided_whitespace_pattern', |
| ]; |
|
|
| |
| export const TOGETHERAI_KEYS = [ |
| 'model', |
| 'prompt', |
| 'max_tokens', |
| 'temperature', |
| 'top_p', |
| 'top_k', |
| 'repetition_penalty', |
| 'min_p', |
| 'presence_penalty', |
| 'frequency_penalty', |
| 'stream', |
| 'stop', |
| ]; |
|
|
| |
| export const OLLAMA_KEYS = [ |
| 'num_predict', |
| 'num_ctx', |
| 'num_batch', |
| 'stop', |
| 'temperature', |
| 'repeat_penalty', |
| 'presence_penalty', |
| 'frequency_penalty', |
| 'top_k', |
| 'top_p', |
| 'tfs_z', |
| 'typical_p', |
| 'seed', |
| 'repeat_last_n', |
| 'min_p', |
| ]; |
|
|
| |
| export const OPENAI_KEYS = [ |
| 'model', |
| 'prompt', |
| 'stream', |
| 'temperature', |
| 'top_p', |
| 'frequency_penalty', |
| 'presence_penalty', |
| 'stop', |
| 'seed', |
| 'logit_bias', |
| 'logprobs', |
| 'max_tokens', |
| 'n', |
| 'best_of', |
| ]; |
|
|
| export const AVATAR_WIDTH = 512; |
| export const AVATAR_HEIGHT = 768; |
| export const DEFAULT_AVATAR_PATH = './public/img/ai4.png'; |
|
|
| export const OPENROUTER_HEADERS = { |
| 'HTTP-Referer': 'https://tavernintern.app', |
| 'X-Title': 'TavernIntern', |
| }; |
|
|
| export const AIMLAPI_HEADERS = { |
| 'HTTP-Referer': 'https://tavernintern.app', |
| 'X-Title': 'TavernIntern', |
| }; |
|
|
| export const FEATHERLESS_HEADERS = { |
| 'HTTP-Referer': 'https://tavernintern.app', |
| 'X-Title': 'TavernIntern', |
| }; |
|
|
| export const OPENROUTER_KEYS = [ |
| 'max_tokens', |
| 'temperature', |
| 'top_k', |
| 'top_p', |
| 'presence_penalty', |
| 'frequency_penalty', |
| 'repetition_penalty', |
| 'min_p', |
| 'top_a', |
| 'seed', |
| 'logit_bias', |
| 'model', |
| 'stream', |
| 'prompt', |
| 'stop', |
| 'provider', |
| 'include_reasoning', |
| ]; |
|
|
| |
| export const VLLM_KEYS = [ |
| 'model', |
| 'prompt', |
| 'best_of', |
| 'echo', |
| 'frequency_penalty', |
| 'logit_bias', |
| 'logprobs', |
| 'max_tokens', |
| 'n', |
| 'presence_penalty', |
| 'seed', |
| 'stop', |
| 'stream', |
| 'suffix', |
| 'temperature', |
| 'top_p', |
| 'user', |
|
|
| 'use_beam_search', |
| 'top_k', |
| 'min_p', |
| 'repetition_penalty', |
| 'length_penalty', |
| 'early_stopping', |
| 'stop_token_ids', |
| 'ignore_eos', |
| 'min_tokens', |
| 'skip_special_tokens', |
| 'spaces_between_special_tokens', |
| 'truncate_prompt_tokens', |
|
|
| 'include_stop_str_in_output', |
| 'response_format', |
| 'guided_json', |
| 'guided_regex', |
| 'guided_choice', |
| 'guided_grammar', |
| 'guided_decoding_backend', |
| 'guided_whitespace_pattern', |
| ]; |
|
|
| export const AZURE_OPENAI_KEYS = [ |
| 'messages', |
| 'temperature', |
| 'frequency_penalty', |
| 'presence_penalty', |
| 'top_p', |
| 'max_tokens', |
| 'max_completion_tokens', |
| 'stream', |
| 'logit_bias', |
| 'stop', |
| 'n', |
| 'logprobs', |
| 'seed', |
| 'tools', |
| 'tool_choice', |
| 'reasoning_effort', |
| ]; |
|
|
| export const OPENAI_VERBOSITY_MODELS = /^gpt-5/; |
|
|
| export const OPENAI_REASONING_EFFORT_MODELS = [ |
| 'o1', |
| 'o3-mini', |
| 'o3-mini-2025-01-31', |
| 'o4-mini', |
| 'o4-mini-2025-04-16', |
| 'o3', |
| 'o3-2025-04-16', |
| 'gpt-5', |
| 'gpt-5-2025-08-07', |
| 'gpt-5-mini', |
| 'gpt-5-mini-2025-08-07', |
| 'gpt-5-nano', |
| 'gpt-5-nano-2025-08-07', |
| 'gpt-5.1', |
| 'gpt-5.1-2025-11-13', |
| 'gpt-5.1-chat-latest', |
| 'gpt-5.2', |
| 'gpt-5.2-2025-12-11', |
| 'gpt-5.2-chat-latest', |
| ]; |
|
|
| export const OPENAI_REASONING_EFFORT_MAP = { |
| min: 'minimal', |
| }; |
|
|
| export const LOG_LEVELS = { |
| DEBUG: 0, |
| INFO: 1, |
| WARN: 2, |
| ERROR: 3, |
| }; |
|
|
| |
| |
| |
| |
| export const MEDIA_EXTENSIONS = [ |
| 'bmp', |
| 'png', |
| 'jpg', |
| 'webp', |
| 'jpeg', |
| 'jfif', |
| 'gif', |
| 'mp4', |
| 'avi', |
| 'mov', |
| 'wmv', |
| 'flv', |
| 'webm', |
| '3gp', |
| 'mkv', |
| 'mpg', |
| 'mp3', |
| 'wav', |
| 'ogg', |
| 'flac', |
| 'aac', |
| 'm4a', |
| 'aiff', |
| ]; |
|
|
| |
| |
| |
| export const MEDIA_REQUEST_TYPE = { |
| IMAGE: 0b001, |
| VIDEO: 0b010, |
| AUDIO: 0b100, |
| }; |
|
|
|
|
| export const ZAI_ENDPOINT = { |
| COMMON: 'common', |
| CODING: 'coding', |
| }; |
|
|