feat(backend): add v2 LLM validation fields to health service
- DashboardHealthItem schema: add run_id, policy_id, execution_path, issues_count, timings, token_usage, screenshot_paths, chunk_count, dashboard_name fields for v2 LLM validation reporting. - HealthService: populate v2 fields from validation run records. - ValidationService: update to support v2 validation run fields. - validation_tasks route: minor fix for v2 field handling. - tailwind.config.js: refactor design tokens — add success/warning/info palettes, surface/border/text hierarchy, semantic action colors. - Agent configs: update svelte-coder and semantics-svelte for .svelte.ts runes and Screen Model patterns.
This commit is contained in:
@@ -1,73 +1,109 @@
|
||||
/** @type {import('tailwindcss').Config} */
|
||||
export default {
|
||||
content: [
|
||||
"./index.html",
|
||||
"./src/**/*.{svelte,js,ts,jsx,tsx}",
|
||||
],
|
||||
theme: {
|
||||
extend: {
|
||||
colors: {
|
||||
// Semantic UI colors (light surfaces)
|
||||
primary: {
|
||||
DEFAULT: '#2563eb', // blue-600
|
||||
hover: '#1d4ed8', // blue-700
|
||||
ring: '#3b82f6', // blue-500
|
||||
light: '#eff6ff', // blue-50
|
||||
},
|
||||
secondary: {
|
||||
DEFAULT: '#f3f4f6', // gray-100
|
||||
hover: '#e5e7eb', // gray-200
|
||||
text: '#111827', // gray-900
|
||||
ring: '#6b7280', // gray-500
|
||||
},
|
||||
destructive: {
|
||||
DEFAULT: '#dc2626', // red-600
|
||||
hover: '#b91c1c', // red-700
|
||||
ring: '#ef4444', // red-500
|
||||
light: '#fef2f2', // red-50
|
||||
},
|
||||
ghost: {
|
||||
hover: '#f3f4f6', // gray-100
|
||||
text: '#374151', // gray-700
|
||||
ring: '#6b7280', // gray-500
|
||||
},
|
||||
// Dark terminal palette (log viewer, task drawer)
|
||||
terminal: {
|
||||
bg: '#0f172a', // slate-900
|
||||
surface: '#1e293b', // slate-800
|
||||
border: '#334155', // slate-700
|
||||
text: {
|
||||
DEFAULT: '#cbd5e1', // slate-300
|
||||
muted: '#475569', // slate-600
|
||||
subtle: '#64748b', // slate-500
|
||||
bright: '#e2e8f0', // slate-200
|
||||
heading: '#f1f5f9', // slate-100
|
||||
},
|
||||
accent: '#22d3ee', // cyan-400
|
||||
},
|
||||
// Log level palette
|
||||
log: {
|
||||
debug: '#64748b',
|
||||
info: '#38bdf8',
|
||||
warning: '#fbbf24',
|
||||
error: '#f87171',
|
||||
},
|
||||
// Log source palette
|
||||
source: {
|
||||
plugin: '#4ade80',
|
||||
api: '#c084fc',
|
||||
git: '#fb923c',
|
||||
system: '#38bdf8',
|
||||
},
|
||||
},
|
||||
width: {
|
||||
sidebar: '240px',
|
||||
'sidebar-collapsed': '64px',
|
||||
},
|
||||
fontFamily: {
|
||||
mono: ['"JetBrains Mono"', '"Fira Code"', 'monospace'],
|
||||
},
|
||||
},
|
||||
},
|
||||
plugins: [],
|
||||
}
|
||||
/** @type {import('tailwindcss').Config} */
|
||||
export default {
|
||||
content: [
|
||||
"./index.html",
|
||||
"./src/**/*.{svelte,js,ts,jsx,tsx}",
|
||||
],
|
||||
theme: {
|
||||
extend: {
|
||||
colors: {
|
||||
// ── Semantic action palette (light surfaces) ──────────────
|
||||
primary: {
|
||||
DEFAULT: '#2563eb', // blue-600
|
||||
hover: '#1d4ed8', // blue-700
|
||||
ring: '#3b82f6', // blue-500
|
||||
light: '#eff6ff', // blue-50
|
||||
},
|
||||
secondary: {
|
||||
DEFAULT: '#f3f4f6', // gray-100
|
||||
hover: '#e5e7eb', // gray-200
|
||||
text: '#111827', // gray-900
|
||||
ring: '#6b7280', // gray-500
|
||||
},
|
||||
destructive: {
|
||||
DEFAULT: '#dc2626', // red-600
|
||||
hover: '#b91c1c', // red-700
|
||||
ring: '#ef4444', // red-500
|
||||
light: '#fef2f2', // red-50
|
||||
},
|
||||
success: {
|
||||
DEFAULT: '#22c55e', // green-500
|
||||
hover: '#16a34a', // green-600
|
||||
ring: '#4ade80', // green-400
|
||||
light: '#f0fdf4', // green-50
|
||||
},
|
||||
warning: {
|
||||
DEFAULT: '#f59e0b', // amber-500
|
||||
hover: '#d97706', // amber-600
|
||||
ring: '#fbbf24', // amber-400
|
||||
light: '#fffbeb', // amber-50
|
||||
},
|
||||
info: {
|
||||
DEFAULT: '#0ea5e9', // sky-500
|
||||
hover: '#0284c7', // sky-600
|
||||
ring: '#38bdf8', // sky-400
|
||||
light: '#f0f9ff', // sky-50
|
||||
},
|
||||
ghost: {
|
||||
hover: '#f3f4f6', // gray-100
|
||||
text: '#374151', // gray-700
|
||||
ring: '#6b7280', // gray-500
|
||||
},
|
||||
// ── Surface hierarchy ─────────────────────────────────────
|
||||
surface: {
|
||||
page: '#f8fafc', // slate-50
|
||||
card: '#ffffff', // white
|
||||
muted: '#f1f5f9', // slate-100
|
||||
},
|
||||
// ── Border hierarchy ──────────────────────────────────────
|
||||
border: {
|
||||
DEFAULT: '#e2e8f0', // slate-200
|
||||
strong: '#cbd5e1', // slate-300
|
||||
},
|
||||
// ── Text hierarchy ────────────────────────────────────────
|
||||
text: {
|
||||
DEFAULT: '#0f172a', // slate-900
|
||||
muted: '#64748b', // slate-500
|
||||
subtle: '#94a3b8', // slate-400
|
||||
inverse: '#ffffff', // white
|
||||
},
|
||||
// ── Dark terminal palette (log viewer, task drawer) ───────
|
||||
terminal: {
|
||||
bg: '#0f172a', // slate-900
|
||||
surface: '#1e293b', // slate-800
|
||||
border: '#334155', // slate-700
|
||||
text: {
|
||||
DEFAULT: '#cbd5e1', // slate-300
|
||||
muted: '#475569', // slate-600
|
||||
subtle: '#64748b', // slate-500
|
||||
bright: '#e2e8f0', // slate-200
|
||||
heading: '#f1f5f9', // slate-100
|
||||
},
|
||||
accent: '#22d3ee', // cyan-400
|
||||
},
|
||||
// ── Log level palette ─────────────────────────────────────
|
||||
log: {
|
||||
debug: '#64748b',
|
||||
info: '#38bdf8',
|
||||
warning: '#fbbf24',
|
||||
error: '#f87171',
|
||||
},
|
||||
// ── Log source palette ────────────────────────────────────
|
||||
source: {
|
||||
plugin: '#4ade80',
|
||||
api: '#c084fc',
|
||||
git: '#fb923c',
|
||||
system: '#38bdf8',
|
||||
},
|
||||
},
|
||||
width: {
|
||||
sidebar: '240px',
|
||||
'sidebar-collapsed': '64px',
|
||||
},
|
||||
fontFamily: {
|
||||
mono: ['"JetBrains Mono"', '"Fira Code"', 'monospace'],
|
||||
},
|
||||
},
|
||||
},
|
||||
plugins: [],
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user