feat: Go backend, enhanced search, new widgets, Docker deploy

Major changes:
- Add Go backend (backend/) with microservices architecture
- Enhanced master-agents-svc: reranker, content-classifier, stealth-crawler,
  proxy-manager, media-search, fastClassifier, language detection
- New web-svc widgets: KnowledgeCard, ProductCard, ProfileCard, VideoCard,
  UnifiedCard, CardGallery, InlineImageGallery, SourcesPanel, RelatedQuestions
- Improved discover-svc with discover-db integration
- Docker deployment improvements (Caddyfile, vendor.sh, BUILD.md)
- Library-svc: project_id schema migration
- Remove deprecated finance-svc and travel-svc
- Localization improvements across services

Made-with: Cursor
This commit is contained in:
home
2026-02-27 04:15:32 +03:00
parent 328d968f3f
commit 06fe57c765
285 changed files with 53132 additions and 1871 deletions

View File

@@ -0,0 +1,165 @@
import type { Config } from 'tailwindcss';
const config: Config = {
content: [
'./src/**/*.{js,ts,jsx,tsx,mdx}',
],
theme: {
extend: {
colors: {
/* Cursor IDE 2026 Color Palette */
base: 'hsl(var(--bg-base))',
elevated: 'hsl(var(--bg-elevated))',
surface: 'hsl(var(--bg-surface))',
overlay: 'hsl(var(--bg-overlay))',
/* Text colors */
primary: 'hsl(var(--text-primary))',
secondary: 'hsl(var(--text-secondary))',
muted: 'hsl(var(--text-muted))',
faint: 'hsl(var(--text-faint))',
/* Accent colors */
accent: {
DEFAULT: 'hsl(var(--accent))',
hover: 'hsl(var(--accent-hover))',
muted: 'hsl(var(--accent-muted))',
subtle: 'hsl(var(--accent-subtle))',
foreground: 'hsl(0 0% 100%)',
},
'accent-secondary': {
DEFAULT: 'hsl(var(--accent-secondary))',
muted: 'hsl(var(--accent-secondary-muted))',
},
/* Semantic colors */
success: {
DEFAULT: 'hsl(var(--success))',
muted: 'hsl(var(--success-muted))',
},
warning: {
DEFAULT: 'hsl(var(--warning))',
muted: 'hsl(var(--warning-muted))',
},
error: {
DEFAULT: 'hsl(var(--error))',
muted: 'hsl(var(--error-muted))',
},
/* Border colors */
border: {
DEFAULT: 'hsl(var(--border))',
hover: 'hsl(var(--border-hover))',
focus: 'hsl(var(--border-focus))',
},
/* Legacy mappings */
background: 'hsl(var(--background))',
foreground: 'hsl(var(--foreground))',
card: {
DEFAULT: 'hsl(var(--card))',
foreground: 'hsl(var(--card-foreground))',
},
popover: {
DEFAULT: 'hsl(var(--popover))',
foreground: 'hsl(var(--popover-foreground))',
},
destructive: {
DEFAULT: 'hsl(var(--destructive))',
foreground: 'hsl(var(--destructive-foreground))',
},
input: 'hsl(var(--input))',
ring: 'hsl(var(--ring))',
},
borderRadius: {
'2xl': '1rem',
'3xl': '1.5rem',
lg: 'var(--radius)',
md: 'calc(var(--radius) - 2px)',
sm: 'calc(var(--radius) - 4px)',
},
fontFamily: {
sans: ['Inter', 'system-ui', '-apple-system', 'sans-serif'],
mono: ['JetBrains Mono', 'Fira Code', 'SF Mono', 'Consolas', 'monospace'],
},
fontSize: {
'2xs': ['0.625rem', { lineHeight: '0.875rem' }],
'xs': ['0.75rem', { lineHeight: '1rem' }],
'sm': ['0.875rem', { lineHeight: '1.25rem' }],
'base': ['0.9375rem', { lineHeight: '1.5rem' }],
'lg': ['1.0625rem', { lineHeight: '1.625rem' }],
},
spacing: {
'18': '4.5rem',
'22': '5.5rem',
'26': '6.5rem',
'30': '7.5rem',
},
backdropBlur: {
xs: '2px',
},
boxShadow: {
'glow-sm': '0 0 10px hsl(239 84% 67% / 0.1)',
'glow-md': '0 0 20px hsl(239 84% 67% / 0.15)',
'glow-lg': '0 0 40px hsl(239 84% 67% / 0.2)',
'inner-glow': 'inset 0 0 20px hsl(240 6% 12% / 0.5)',
'elevated': '0 4px 20px hsl(240 6% 4% / 0.4), 0 0 1px hsl(240 5% 20% / 0.5)',
'card': '0 2px 8px hsl(240 6% 4% / 0.3)',
'dropdown': '0 8px 32px hsl(240 6% 4% / 0.5), 0 0 1px hsl(240 5% 20% / 0.5)',
},
keyframes: {
'fade-in': {
'0%': { opacity: '0', transform: 'translateY(4px)' },
'100%': { opacity: '1', transform: 'translateY(0)' },
},
'fade-in-up': {
'0%': { opacity: '0', transform: 'translateY(12px)' },
'100%': { opacity: '1', transform: 'translateY(0)' },
},
'slide-in-right': {
'0%': { opacity: '0', transform: 'translateX(-12px)' },
'100%': { opacity: '1', transform: 'translateX(0)' },
},
'slide-in-left': {
'0%': { opacity: '0', transform: 'translateX(12px)' },
'100%': { opacity: '1', transform: 'translateX(0)' },
},
'scale-in': {
'0%': { opacity: '0', transform: 'scale(0.95)' },
'100%': { opacity: '1', transform: 'scale(1)' },
},
'pulse-soft': {
'0%, 100%': { opacity: '1' },
'50%': { opacity: '0.7' },
},
shimmer: {
'0%': { backgroundPosition: '-200% 0' },
'100%': { backgroundPosition: '200% 0' },
},
'glow-pulse': {
'0%, 100%': { boxShadow: '0 0 20px hsl(239 84% 67% / 0.15)' },
'50%': { boxShadow: '0 0 30px hsl(239 84% 67% / 0.25)' },
},
'border-pulse': {
'0%, 100%': { borderColor: 'hsl(239 84% 67% / 0.3)' },
'50%': { borderColor: 'hsl(239 84% 67% / 0.5)' },
},
},
animation: {
'fade-in': 'fade-in 0.2s ease-out forwards',
'fade-in-up': 'fade-in-up 0.3s ease-out forwards',
'slide-in-right': 'slide-in-right 0.25s ease-out forwards',
'slide-in-left': 'slide-in-left 0.25s ease-out forwards',
'scale-in': 'scale-in 0.2s ease-out forwards',
'pulse-soft': 'pulse-soft 2s ease-in-out infinite',
shimmer: 'shimmer 1.5s linear infinite',
'glow-pulse': 'glow-pulse 2s ease-in-out infinite',
'border-pulse': 'border-pulse 2s ease-in-out infinite',
},
},
},
plugins: [],
};
export default config;