feat: integrate MarkBase Search Session API into Studio

- Created useSearchSession composable for session management
- Added 7 API endpoints in api/index.ts
- Updated SearchView.vue to use sessions instead of history
- Session sidebar with create, rename, delete functionality
- Auto-save messages to current session after each search
- Auto-create default session on first load
- Updated CSS for session active state and new session button
This commit is contained in:
2026-10-27 05:06:03 +08:00
parent 86d90f4f53
commit fe91afff98
7 changed files with 1959 additions and 243 deletions

View File

@@ -685,6 +685,22 @@ case 'search_keyword': {
return { url: '/api/v2/admin/users', method: 'GET', requiresAdminToken: true }
case 'list_shares':
return { url: '/api/v2/admin/shares', method: 'GET' }
// --- Search Sessions ---
case 'list_search_sessions':
return { url: '/api/v2/search-sessions', method: 'GET', requiresAdminToken: true }
case 'create_search_session':
return { url: '/api/v2/search-sessions', method: 'POST', body: { title: a.title, mode: a.mode }, requiresAdminToken: true }
case 'rename_search_session':
return { url: `/api/v2/search-sessions/${a.id}`, method: 'PUT', body: { title: a.title }, requiresAdminToken: true }
case 'delete_search_session':
return { url: `/api/v2/search-sessions/${a.id}`, method: 'DELETE', requiresAdminToken: true }
case 'get_session_messages':
return { url: `/api/v2/search-sessions/${a.sessionId}/messages`, method: 'GET', requiresAdminToken: true }
case 'save_session_message':
return { url: `/api/v2/search-sessions/${a.sessionId}/messages`, method: 'POST', body: a.message, requiresAdminToken: true }
case 'update_session_message':
return { url: `/api/v2/search-sessions/${a.sessionId}/messages/${a.msgId}`, method: 'PATCH', body: a.message, requiresAdminToken: true }
case 'admin_login':
return { url: '/api/v2/admin/login', method: 'POST', body: { username: a.username, password: a.password } }