diff --git a/package.json b/package.json index 3abd448..ed5c46b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hermes-web-ui", - "version": "0.5.26", + "version": "0.5.27", "description": "Self-hosted AI chat dashboard for Hermes Agent — multi-model web UI with multi-platform integration", "repository": { "type": "git", diff --git a/packages/client/src/api/hermes/chat.ts b/packages/client/src/api/hermes/chat.ts index 877c8c2..6f75cc6 100644 --- a/packages/client/src/api/hermes/chat.ts +++ b/packages/client/src/api/hermes/chat.ts @@ -16,6 +16,8 @@ export interface StartRunRequest { instructions?: string session_id?: string model?: string + provider?: string + model_groups?: Array<{ provider: string; models: string[] }> queue_id?: string source?: 'api_server' | 'cli' } diff --git a/packages/client/src/api/hermes/conversations.ts b/packages/client/src/api/hermes/conversations.ts index d4d2707..cb7c07f 100644 --- a/packages/client/src/api/hermes/conversations.ts +++ b/packages/client/src/api/hermes/conversations.ts @@ -4,6 +4,7 @@ export interface ConversationSummary { id: string source: string model: string + provider?: string title: string | null started_at: number ended_at: number | null diff --git a/packages/client/src/api/hermes/sessions.ts b/packages/client/src/api/hermes/sessions.ts index 5e463c8..83e5114 100644 --- a/packages/client/src/api/hermes/sessions.ts +++ b/packages/client/src/api/hermes/sessions.ts @@ -4,6 +4,7 @@ export interface SessionSummary { id: string source: string model: string + provider?: string title: string | null preview?: string started_at: number @@ -147,6 +148,18 @@ export async function setSessionWorkspace(id: string, workspace: string | null): } } +export async function setSessionModel(id: string, model: string, provider: string): Promise { + try { + await request(`/api/hermes/sessions/${id}/model`, { + method: 'POST', + body: JSON.stringify({ model, provider }), + }) + return true + } catch { + return false + } +} + export async function exportSession(id: string, mode: 'full' | 'compressed' = 'full', ext: 'json' | 'txt' = 'json'): Promise { const baseUrl = getBaseUrlValue() const token = getApiKey() diff --git a/packages/client/src/components/hermes/chat/ChatPanel.vue b/packages/client/src/components/hermes/chat/ChatPanel.vue index accb06b..697ec74 100644 --- a/packages/client/src/components/hermes/chat/ChatPanel.vue +++ b/packages/client/src/components/hermes/chat/ChatPanel.vue @@ -1,15 +1,18 @@