1|// Register functions for settings management 2|bricks.RF.register('save_general_settings', async function(params) { 3| try { 4| const formData = new FormData(); 5| formData.append('default-model', params.default_model); 6| formData.append('session-timeout', params.session_timeout); 7| formData.append('auto-save', params.auto_save); 8| 9| const response = await fetch('/hermes-web-cli/settings/save/general/', { 10| method: 'POST', 11| body: formData 12| }); 13| const result = await response.json(); 14| 15| if (result.success) { 16| bricks.showMessage('General settings saved successfully', 'success'); 17| } else { 18| bricks.showMessage(result.error || 'Failed to save settings', 'error'); 19| } 20| } catch (error) { 21| bricks.showMessage('Network error: ' + error.message, 'error'); 22| } 23|}); 24| 25|bricks.RF.register('save_security_settings', async function(params) { 26| try { 27| const formData = new FormData(); 28| formData.append('require-auth', params.require_auth); 29| formData.append('encrypt-storage', params.encrypt_storage); 30| 31| const response = await fetch('/hermes-web-cli/settings/save/security/', { 32| method: 'POST', 33| body: formData 34| }); 35| const result = await response.json(); 36| 37| if (result.success) { 38| bricks.showMessage('Security settings saved successfully', 'success'); 39| } else { 40| bricks.showMessage(result.error || 'Failed to save settings', 'error'); 41| } 42| } catch (error) { 43| bricks.showMessage('Network error: ' + error.message, 'error'); 44| } 45|}); 46| 47|bricks.RF.register('save_appearance_settings', async function(params) { 48| try { 49| const formData = new FormData(); 50| formData.append('theme-select', params.theme); 51| 52| const response = await fetch('/hermes-web-cli/settings/save/appearance/', { 53| method: 'POST', 54| body: formData 55| }); 56| const result = await response.json(); 57| 58| if (result.success) { 59| bricks.showMessage('Appearance settings saved successfully', 'success'); 60| // Apply theme change 61| document.body.className = params.theme; 62| } else { 63| bricks.showMessage(result.error || 'Failed to save settings', 'error'); 64| } 65| } catch (error) { 66| bricks.showMessage('Network error: ' + error.message, 'error'); 67| } 68|}); 69| 70|// Register functions for models management 71|bricks.RF.register('add_model', async function(params) { 72| // Navigate to add model page 73| const mainContent = bricks.getWidget('app.main-content'); 74| if (mainContent) { 75| mainContent.loadURL(bricks.entire_url('add_model.ui')); 76| } 77|}); 78| 79|bricks.RF.register('update_model', async function(params) { 80| try { 81| const formData = new FormData(); 82| formData.append('model_id', params.model_id); 83| formData.append('model_name', params.model_name); 84| formData.append('model_provider', params.model_provider); 85| 86| const response = await fetch('/hermes-web-cli/models/update/', { 87| method: 'POST', 88| body: formData 89| }); 90| const result = await response.json(); 91| 92| if (result.success) { 93| bricks.showMessage('Model updated successfully', 'success'); 94| // Refresh the models list if needed 95| } else { 96| bricks.showMessage(result.error || 'Failed to update model', 'error'); 97| } 98| } catch (error) { 99| bricks.showMessage('Network error: ' + error.message, 'error'); 100| } 101|}); 102| 103|bricks.RF.register('remove_model', async function(params) { 104| try { 105| const response = await fetch('/hermes-web-cli/models/remove/?id=' + params.model_id); 106| const result = await response.json(); 107| 108| if (result.success) { 109| bricks.showMessage('Model removed successfully', 'success'); 110| // Refresh the models list 111| const modelsList = bricks.getWidget('models-list'); 112| if (modelsList) { 113| modelsList.reload(); 114| } 115| } else { 116| bricks.showMessage(result.error || 'Failed to remove model', 'error'); 117| } 118| } catch (error) { 119| bricks.showMessage('Network error: ' + error.message, 'error'); 120| } 121|});