mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-18 01:10:14 +01:00
* 📝 chore: Add comment to clarify purpose of check_updates.sh script
* feat: mcp package
* feat: add librechat-mcp package and update dependencies
* feat: refactor MCPConnectionSingleton to handle transport initialization and connection management
* feat: change private methods to public in MCPConnectionSingleton for improved accessibility
* feat: filesystem demo
* chore: everything demo and move everything under mcp workspace
* chore: move ts-node to mcp workspace
* feat: mcp examples
* feat: working sse MCP example
* refactor: rename MCPConnectionSingleton to MCPConnection for clarity
* refactor: replace MCPConnectionSingleton with MCPConnection for consistency
* refactor: manager/connections
* refactor: update MCPConnection to use type definitions from mcp types
* refactor: update MCPManager to use winston logger and enhance server initialization
* refactor: share logger between connections and manager
* refactor: add schema definitions and update MCPManager to accept logger parameter
* feat: map available MCP tools
* feat: load manifest tools
* feat: add MCP tools delimiter constant and update plugin key generation
* feat: call MCP tools
* feat: update librechat-data-provider version to 0.7.63 and enhance StdioOptionsSchema with additional properties
* refactor: simplify typing
* chore: update types/packages
* feat: MCP Tool Content parsing
* chore: update dependencies and improve package configurations
* feat: add 'mcp' directory to package and update configurations
* refactor: return CONTENT_AND_ARTIFACT format for MCP callTool
* chore: bump @librechat/agents
* WIP: MCP artifacts
* chore: bump @librechat/agents to v1.8.7
* fix: ensure filename has extension when saving base64 image
* fix: move base64 buffer conversion before filename extension check
* chore: update backend review workflow to install MCP package
* fix: use correct `mime` method
* fix: enhance file metadata with message and tool call IDs in image saving process
* fix: refactor ToolCall component to handle MCP tool calls and improve domain extraction
* fix: update ToolItem component for default isInstalled value and improve localization in ToolSelectDialog
* fix: update ToolItem component to use consistent text color for tool description
* style: add theming to ToolSelectDialog
* fix: improve domain extraction logic in ToolCall component
* refactor: conversation item theming, fix rename UI bug, optimize props, add missing types
* feat: enhance MCP options schema with base options (iconPath to start) and make transport type optional, infer based on other option fields
* fix: improve reconnection logic with parallel init and exponential backoff and enhance transport debug logging
* refactor: improve logging format
* refactor: improve logging of available tools by displaying tool names
* refactor: improve reconnection/connection logic
* feat: add MCP package build process to Dockerfile
* feat: add fallback icon for tools without an image in ToolItem component
* feat: Assistants Support for MCP Tools
* fix(build): configure rollup to use output.dir for dynamic imports
* chore: update @librechat/agents to version 1.8.8 and add @langchain/anthropic dependency
* fix: update CONFIG_VERSION to 1.2.0
133 lines
4.3 KiB
JavaScript
133 lines
4.3 KiB
JavaScript
// const { fontFamily } = require('tailwindcss/defaultTheme');
|
|
|
|
/** @type {import('tailwindcss').Config} */
|
|
module.exports = {
|
|
content: ['./src/**/*.{js,jsx,ts,tsx}'],
|
|
// darkMode: 'class',
|
|
darkMode: ['class'],
|
|
theme: {
|
|
fontFamily: {
|
|
sans: ['Inter', 'sans-serif'],
|
|
mono: ['Roboto Mono', 'monospace'],
|
|
},
|
|
// fontFamily: {
|
|
// sans: ['Söhne', 'sans-serif'],
|
|
// mono: ['Söhne Mono', 'monospace'],
|
|
// },
|
|
extend: {
|
|
width: {
|
|
authPageWidth: '370px',
|
|
},
|
|
keyframes: {
|
|
'accordion-down': {
|
|
from: { height: 0 },
|
|
to: { height: 'var(--radix-accordion-content-height)' },
|
|
},
|
|
'accordion-up': {
|
|
from: { height: 'var(--radix-accordion-content-height)' },
|
|
to: { height: 0 },
|
|
},
|
|
},
|
|
animation: {
|
|
'accordion-down': 'accordion-down 0.2s ease-out',
|
|
'accordion-up': 'accordion-up 0.2s ease-out',
|
|
},
|
|
colors: {
|
|
gray: {
|
|
20: '#ececf1',
|
|
50: '#f7f7f8',
|
|
100: '#ececec',
|
|
200: '#e3e3e3',
|
|
300: '#cdcdcd',
|
|
400: '#999696',
|
|
500: '#595959',
|
|
600: '#424242',
|
|
700: '#2f2f2f',
|
|
800: '#212121',
|
|
850: '#171717',
|
|
900: '#0d0d0d',
|
|
},
|
|
green: {
|
|
50: '#f1f9f7',
|
|
100: '#def2ed',
|
|
200: '#a6e5d6',
|
|
300: '#6dc8b9',
|
|
400: '#41a79d',
|
|
500: '#10a37f',
|
|
550: '#349072',
|
|
600: '#126e6b',
|
|
700: '#0a4f53',
|
|
800: '#06373e',
|
|
900: '#031f29',
|
|
},
|
|
'brand-purple': '#ab68ff',
|
|
'text-primary': 'var(--text-primary)',
|
|
'text-secondary': 'var(--text-secondary)',
|
|
'text-secondary-alt': 'var(--text-secondary-alt)',
|
|
'text-tertiary': 'var(--text-tertiary)',
|
|
'ring-primary': 'var(--ring-primary)',
|
|
'header-primary': 'var(--header-primary)',
|
|
'header-hover': 'var(--header-hover)',
|
|
'header-button-hover': 'var(--header-button-hover)',
|
|
'surface-active': 'var(--surface-active)',
|
|
'surface-active-alt': 'var(--surface-active-alt)',
|
|
'surface-hover': 'var(--surface-hover)',
|
|
'surface-primary': 'var(--surface-primary)',
|
|
'surface-primary-alt': 'var(--surface-primary-alt)',
|
|
'surface-primary-contrast': 'var(--surface-primary-contrast)',
|
|
'surface-secondary': 'var(--surface-secondary)',
|
|
'surface-secondary-alt': 'var(--surface-secondary-alt)',
|
|
'surface-tertiary': 'var(--surface-tertiary)',
|
|
'surface-tertiary-alt': 'var(--surface-tertiary-alt)',
|
|
'surface-dialog': 'var(--surface-dialog)',
|
|
'surface-submit': 'var(--surface-submit)',
|
|
'border-light': 'var(--border-light)',
|
|
'border-medium': 'var(--border-medium)',
|
|
'border-medium-alt': 'var(--border-medium-alt)',
|
|
'border-heavy': 'var(--border-heavy)',
|
|
'border-xheavy': 'var(--border-xheavy)',
|
|
/* These are test styles */
|
|
border: 'hsl(var(--border))',
|
|
input: 'hsl(var(--input))',
|
|
['switch-unchecked']: 'hsl(var(--switch-unchecked))',
|
|
ring: 'hsl(var(--ring))',
|
|
background: 'hsl(var(--background))',
|
|
foreground: 'hsl(var(--foreground))',
|
|
primary: {
|
|
DEFAULT: 'hsl(var(--primary))',
|
|
foreground: 'hsl(var(--primary-foreground))',
|
|
},
|
|
secondary: {
|
|
DEFAULT: 'hsl(var(--secondary))',
|
|
foreground: 'hsl(var(--secondary-foreground))',
|
|
},
|
|
destructive: {
|
|
DEFAULT: 'hsl(var(--destructive))',
|
|
foreground: 'hsl(var(--destructive-foreground))',
|
|
},
|
|
muted: {
|
|
DEFAULT: 'hsl(var(--muted))',
|
|
foreground: 'hsl(var(--muted-foreground))',
|
|
},
|
|
accent: {
|
|
DEFAULT: 'hsl(var(--accent))',
|
|
foreground: 'hsl(var(--accent-foreground))',
|
|
},
|
|
card: {
|
|
DEFAULT: 'hsl(var(--card))',
|
|
foreground: 'hsl(var(--card-foreground))',
|
|
},
|
|
},
|
|
borderRadius: {
|
|
lg: 'var(--radius)',
|
|
md: 'calc(var(--radius) - 2px)',
|
|
sm: 'calc(var(--radius) - 4px)',
|
|
},
|
|
},
|
|
},
|
|
plugins: [
|
|
require('tailwindcss-animate'),
|
|
require('tailwindcss-radix')(),
|
|
// require('@tailwindcss/typography'),
|
|
],
|
|
};
|