All checks were successful
deploy / deploy (push) Successful in 7s
Live HL data → in-browser TA → 4-agent committee → LONG/SHORT/SKIP verdict. Terminal grid command bar + interactive agent-workflow graph. Paper-trading worker reuses the browser brain (dry-run + Telegram). Forgejo static deploy. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
37 lines
1 KiB
TypeScript
37 lines
1 KiB
TypeScript
import { fileURLToPath, URL } from 'node:url'
|
|
import { defineConfig } from 'vite'
|
|
import react from '@vitejs/plugin-react'
|
|
import tailwindcss from '@tailwindcss/vite'
|
|
import { ViteImageOptimizer } from 'vite-plugin-image-optimizer'
|
|
|
|
// https://vite.dev/config/
|
|
export default defineConfig({
|
|
plugins: [
|
|
react(),
|
|
tailwindcss(),
|
|
// svgo v4 keeps viewBox by default; defaults are fine
|
|
ViteImageOptimizer(),
|
|
],
|
|
resolve: {
|
|
dedupe: ['react', 'react-dom'],
|
|
alias: {
|
|
'@': fileURLToPath(new URL('./src', import.meta.url)),
|
|
},
|
|
},
|
|
optimizeDeps: {
|
|
include: ['react', 'react-dom', 'react/jsx-runtime'],
|
|
},
|
|
build: {
|
|
cssCodeSplit: true,
|
|
rollupOptions: {
|
|
output: {
|
|
manualChunks(id) {
|
|
if (!id.includes('node_modules')) return
|
|
if (id.includes('@visx') || id.includes('/d3-') || id.includes('motion')) return 'charts'
|
|
if (id.includes('/react') || id.includes('react-dom') || id.includes('react-router'))
|
|
return 'vendor'
|
|
},
|
|
},
|
|
},
|
|
},
|
|
})
|