feat: add profile management page with full CRUD UI
- Add frontend API layer, Pinia store, and 5 components (ProfileCard, ProfilesPanel, ProfileCreateModal, ProfileRenameModal, ProfileImportModal) - Add ProfilesView page with card grid layout and expandable details - Modify export endpoint to stream file as browser download instead of returning server path - Add sidebar nav entry, router route, and i18n translations (en/zh) - Support create, rename, delete, switch (with gateway restart), export, and import profiles Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -31,6 +31,9 @@ export default {
|
||||
disable: 'Disable',
|
||||
configured: 'Configured',
|
||||
notConfigured: 'Not configured',
|
||||
confirm: 'Confirm',
|
||||
expand: 'Expand',
|
||||
collapse: 'Collapse',
|
||||
},
|
||||
|
||||
// Sidebar
|
||||
@@ -38,6 +41,7 @@ export default {
|
||||
chat: 'Chat',
|
||||
jobs: 'Jobs',
|
||||
models: 'Models',
|
||||
profiles: 'Profiles',
|
||||
skills: 'Skills',
|
||||
memory: 'Memory',
|
||||
logs: 'Logs',
|
||||
@@ -197,6 +201,50 @@ export default {
|
||||
fetchFailed: 'Failed to fetch models',
|
||||
},
|
||||
|
||||
// Profiles
|
||||
profiles: {
|
||||
title: 'Profiles',
|
||||
create: 'Create Profile',
|
||||
import: 'Import',
|
||||
export: 'Export',
|
||||
rename: 'Rename',
|
||||
delete: 'Delete',
|
||||
switchTo: 'Switch to',
|
||||
switchConfirm: 'Switching to profile "{name}" will restart the gateway. Continue?',
|
||||
switchSuccess: 'Switched to profile "{name}"',
|
||||
switchFailed: 'Failed to switch profile. Gateway may need manual restart.',
|
||||
createSuccess: 'Profile "{name}" created',
|
||||
createFailed: 'Failed to create profile',
|
||||
renameSuccess: 'Profile renamed',
|
||||
renameFailed: 'Failed to rename profile',
|
||||
deleteConfirm: 'Are you sure you want to delete profile "{name}"?',
|
||||
deleteSuccess: 'Profile deleted',
|
||||
deleteFailed: 'Failed to delete profile',
|
||||
exportSuccess: 'Profile exported',
|
||||
exportFailed: 'Failed to export profile',
|
||||
importSuccess: 'Profile imported',
|
||||
importFailed: 'Failed to import profile',
|
||||
name: 'Profile Name',
|
||||
namePlaceholder: 'Enter profile name',
|
||||
newName: 'New Name',
|
||||
newNamePlaceholder: 'Enter new name',
|
||||
cloneFromCurrent: 'Clone from current profile',
|
||||
archivePath: 'Archive Path',
|
||||
archivePathPlaceholder: 'Server path to archive file',
|
||||
importName: 'Profile Name (optional)',
|
||||
importNamePlaceholder: 'Leave empty to use archive name',
|
||||
active: 'Active',
|
||||
model: 'Model',
|
||||
gateway: 'Gateway',
|
||||
alias: 'Alias',
|
||||
provider: 'Provider',
|
||||
path: 'Path',
|
||||
skills: 'Skills',
|
||||
hasEnv: 'Has .env',
|
||||
hasSoulMd: 'Has soul.md',
|
||||
noProfiles: 'No profiles found. Create one to get started.',
|
||||
},
|
||||
|
||||
// Logs
|
||||
logs: {
|
||||
title: 'Logs',
|
||||
|
||||
Reference in New Issue
Block a user