// Register functions for settings management bricks.RF.register('save_general_settings', async function(params) { try { const formData = new FormData(); formData.append('default-model', params.default_model); formData.append('session-timeout', params.session_timeout); formData.append('auto-save', params.auto_save); const response = await fetch('/hermes-web-cli/settings/save/general/', { method: 'POST', body: formData }); const result = await response.json(); if (result.success) { bricks.showMessage('General settings saved successfully', 'success'); } else { bricks.showMessage(result.error || 'Failed to save settings', 'error'); } } catch (error) { bricks.showMessage('Network error: ' + error.message, 'error'); } }); bricks.RF.register('save_security_settings', async function(params) { try { const formData = new FormData(); formData.append('require-auth', params.require_auth); formData.append('encrypt-storage', params.encrypt_storage); const response = await fetch('/hermes-web-cli/settings/save/security/', { method: 'POST', body: formData }); const result = await response.json(); if (result.success) { bricks.showMessage('Security settings saved successfully', 'success'); } else { bricks.showMessage(result.error || 'Failed to save settings', 'error'); } } catch (error) { bricks.showMessage('Network error: ' + error.message, 'error'); } }); bricks.RF.register('save_appearance_settings', async function(params) { try { const formData = new FormData(); formData.append('theme-select', params.theme); const response = await fetch('/hermes-web-cli/settings/save/appearance/', { method: 'POST', body: formData }); const result = await response.json(); if (result.success) { bricks.showMessage('Appearance settings saved successfully', 'success'); // Apply theme change document.body.className = params.theme; } else { bricks.showMessage(result.error || 'Failed to save settings', 'error'); } } catch (error) { bricks.showMessage('Network error: ' + error.message, 'error'); } }); // Register functions for models management bricks.RF.register('add_model', async function(params) { // Navigate to add model page const mainContent = bricks.getWidget('app.main-content'); if (mainContent) { mainContent.loadURL(bricks.entire_url('add_model.ui')); } }); bricks.RF.register('update_model', async function(params) { try { const formData = new FormData(); formData.append('model_id', params.model_id); formData.append('model_name', params.model_name); formData.append('model_provider', params.model_provider); const response = await fetch('/hermes-web-cli/models/update/', { method: 'POST', body: formData }); const result = await response.json(); if (result.success) { bricks.showMessage('Model updated successfully', 'success'); // Refresh the models list if needed } else { bricks.showMessage(result.error || 'Failed to update model', 'error'); } } catch (error) { bricks.showMessage('Network error: ' + error.message, 'error'); } }); bricks.RF.register('remove_model', async function(params) { try { const response = await fetch('/hermes-web-cli/models/remove/?id=' + params.model_id); const result = await response.json(); if (result.success) { bricks.showMessage('Model removed successfully', 'success'); // Refresh the models list const modelsList = bricks.getWidget('models-list'); if (modelsList) { modelsList.reload(); } } else { bricks.showMessage(result.error || 'Failed to remove model', 'error'); } } catch (error) { bricks.showMessage('Network error: ' + error.message, 'error'); } });