Add user profile page with custom avatar upload (crop/resize to 256px), avatar display throughout the app, and MD5-based Gravatar fallback. Add image paste/attach support in chat with vision model detection via OpenRouter API. Images can be pasted from clipboard or selected via file picker, uploaded to the server, and sent alongside messages. The AI receives images as base64 data URLs for multimodal models. Models with vision support are indicated with a badge in the model picker. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
41 lines
801 B
JavaScript
41 lines
801 B
JavaScript
import { defineConfig } from 'vite'
|
|
|
|
// Custom Riot.js plugin for Vite
|
|
function riotPlugin() {
|
|
return {
|
|
name: 'vite-plugin-riot',
|
|
async transform(code, id) {
|
|
if (!id.endsWith('.riot')) return null
|
|
|
|
const { compile } = await import('@riotjs/compiler')
|
|
const { code: compiled } = compile(code, { file: id })
|
|
|
|
return {
|
|
code: compiled,
|
|
map: null,
|
|
}
|
|
},
|
|
}
|
|
}
|
|
|
|
export default defineConfig({
|
|
plugins: [riotPlugin()],
|
|
server: {
|
|
port: 3000,
|
|
proxy: {
|
|
'/api': {
|
|
target: 'http://localhost:3001',
|
|
changeOrigin: true,
|
|
},
|
|
'/ws': {
|
|
target: 'ws://localhost:3001',
|
|
ws: true,
|
|
},
|
|
'/uploads': {
|
|
target: 'http://localhost:3001',
|
|
changeOrigin: true,
|
|
},
|
|
},
|
|
},
|
|
})
|