Files
Hermes-ui/src/App.vue
T
ekkoandClaude Opus 4.6 5887462f7d feat: add model selector, skills/memory pages, and config management
- Add model selector in sidebar that discovers models from auth.json credential pool
- Add per-session model display (badge in chat header and session list)
- Add skills browser page and memory editor page
- Add BFF routes for skills, memory, and config model management
- Model switching updates config.yaml provider field to bypass env auto-detection
- Refactor Settings page, simplify ChatInput with file upload
- Add attachment upload support via BFF /upload endpoint

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 23:23:50 +08:00

56 lines
1.2 KiB
Vue

<script setup lang="ts">
import { onMounted, onUnmounted } from 'vue'
import { NConfigProvider, NMessageProvider, NDialogProvider, NNotificationProvider } from 'naive-ui'
import { themeOverrides } from '@/styles/theme'
import AppSidebar from '@/components/layout/AppSidebar.vue'
import { useKeyboard } from '@/composables/useKeyboard'
import { useAppStore } from '@/stores/app'
const appStore = useAppStore()
onMounted(() => {
appStore.loadModels()
appStore.startHealthPolling()
})
onUnmounted(() => {
appStore.stopHealthPolling()
})
useKeyboard()
</script>
<template>
<NConfigProvider :theme-overrides="themeOverrides">
<NMessageProvider>
<NDialogProvider>
<NNotificationProvider>
<div class="app-layout">
<AppSidebar />
<main class="app-main">
<router-view />
</main>
</div>
</NNotificationProvider>
</NDialogProvider>
</NMessageProvider>
</NConfigProvider>
</template>
<style scoped lang="scss">
@use '@/styles/variables' as *;
.app-layout {
display: flex;
height: 100vh;
width: 100vw;
overflow: hidden;
}
.app-main {
flex: 1;
overflow: hidden;
background-color: $bg-primary;
}
</style>