diff --git a/wwwroot/new-session.js b/wwwroot/new-session.js deleted file mode 100644 index 54703fb..0000000 --- a/wwwroot/new-session.js +++ /dev/null @@ -1,73 +0,0 @@ -// Register function for creating new sessions -bricks.RF.register('create_session', async function(params) { - try { - // Get form data from the new session form using correct API - const formWidget = bricks.getWidgetById('app.new-session-form'); - const formData = formWidget ? formWidget.getData() : {}; - - if (!formData['session-name']) { - bricks.showMessage('Please enter a session name', 'error'); - return; - } - - if (!formData['model-select']) { - bricks.showMessage('Please select an AI model', 'error'); - return; - } - - const response = await fetch('/hermes-web-cli/sessions/create/', { - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify({ - 'session-name': formData['session-name'], - 'model-select': formData['model-select'], - 'initial-prompt': formData['initial-prompt'] || '' - }) - }); - const result = await response.json(); - - if (result.success) { - bricks.showMessage('Session created successfully', 'success'); - // Navigate back to sessions list - const mainContent = bricks.getWidgetById('app.main-content'); - if (mainContent) { - mainContent.loadURL(bricks.entire_url('sessions.ui')); - } - } else { - bricks.showMessage(result.error || 'Failed to create session', 'error'); - } - } catch (error) { - bricks.showMessage('Network error: ' + error.message, 'error'); - } -}); - -// Load available models for the model select dropdown -async function loadModelsForNewSession() { - try { - const response = await fetch('/hermes-web-cli/models/list/'); - const models = await response.json(); - - if (Array.isArray(models)) { - const modelSelect = bricks.getWidgetById('app.model-select'); - if (modelSelect && modelSelect.options) { - // Format models as items for UiCode component - const modelItems = models.map(model => ({ - label: model.name || model.model_name, - value: model.id || model.model_id - })); - modelSelect.options.items = modelItems; - modelSelect.refresh(); - } - } - } catch (error) { - console.error('Failed to load models:', error); - } -} - -// Auto-load models when the new session form is loaded -document.addEventListener('DOMContentLoaded', () => { - // Try to load models after a short delay to ensure widgets are ready - setTimeout(loadModelsForNewSession, 100); -}); \ No newline at end of file diff --git a/wwwroot/new_session.ui b/wwwroot/new_session.ui index 4e2db9d..20d5ed8 100644 --- a/wwwroot/new_session.ui +++ b/wwwroot/new_session.ui @@ -33,13 +33,12 @@ "marginBottom": "16px" }, { - "widgettype": "UiCode", + "widgettype": "UiStr", "name": "model-select", "label": "AI Model", - "placeholder": "Select model...", + "placeholder": "Enter model name or ID...", "width": "100%", - "marginBottom": "16px", - "items": [] + "marginBottom": "16px" }, { "widgettype": "UiText", @@ -72,14 +71,12 @@ "fontWeight": "600" }, "binds": [ - { - "wid": "self", - "event": "click", - "actiontype": "registerfunction", - "target": "app.new-session-container", - "rfname": "create_session", - "params": {} - } +{ + "wid": "self", + "event": "click", + "actiontype": "script", + "script": "const formData = bricks.getWidgetById('app.new-session-form').getData(); if (!formData['session-name']) { bricks.showMessage('Please enter a session name', 'error'); return; } if (!formData['model-select']) { bricks.showMessage('Please enter an AI model', 'error'); return; } fetch('/hermes-web-cli/sessions/create/', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) }).then(response => response.json()).then(result => { if (result.success) { bricks.showMessage('Session created successfully', 'success'); bricks.getWidgetById('app.main-content').loadURL(bricks.entire_url('sessions.ui')); } else { bricks.showMessage(result.error || 'Failed to create session', 'error'); } }).catch(error => { bricks.showMessage('Network error: ' + error.message, 'error'); });" + } ] }, {