diff --git a/docs/API.md b/docs/API.md index d9b06ffe7..3173216ef 100644 --- a/docs/API.md +++ b/docs/API.md @@ -140,6 +140,37 @@ Initiate OIDC login flow. --- +## 🤖 Pulse AI *(New in 5.0)* + +### Get AI Settings +`GET /api/settings/ai` +Returns current AI configuration (providers, models, patrol status). + +### Update AI Settings +`PUT /api/settings/ai` +Configure AI providers, API keys, and preferences. + +### Chat +`POST /api/ai/chat` +Send a message to the AI assistant. +```json +{ "message": "What VMs are using the most CPU?", "context": ["vm-100", "vm-101"] } +``` + +### Patrol Status +`GET /api/ai/patrol/status` +Get current patrol status and recent findings. + +### Patrol Findings +`GET /api/ai/patrol/findings` +List all patrol findings with severity and recommendations. + +### Cost Tracking +`GET /api/ai/cost?period=30d` +Get AI usage statistics and costs. + +--- + ## 🤖 Agent Endpoints ### Unified Agent (Recommended) diff --git a/frontend-modern/src/components/SetupWizard/SetupWizard.tsx b/frontend-modern/src/components/SetupWizard/SetupWizard.tsx index 4c4d41b2e..a86c9a897 100644 --- a/frontend-modern/src/components/SetupWizard/SetupWizard.tsx +++ b/frontend-modern/src/components/SetupWizard/SetupWizard.tsx @@ -1,4 +1,4 @@ -import { Component, createSignal, Show, onMount } from 'solid-js'; +import { Component, createSignal, Show } from 'solid-js'; import { WelcomeStep } from './steps/WelcomeStep'; import { SecurityStep } from './steps/SecurityStep'; import { ConnectStep } from './steps/ConnectStep'; diff --git a/frontend-modern/src/components/SetupWizard/steps/ConnectStep.tsx b/frontend-modern/src/components/SetupWizard/steps/ConnectStep.tsx index a959aae8b..21ca58e1e 100644 --- a/frontend-modern/src/components/SetupWizard/steps/ConnectStep.tsx +++ b/frontend-modern/src/components/SetupWizard/steps/ConnectStep.tsx @@ -28,7 +28,7 @@ export const ConnectStep: Component = (props) => { // Manual form fields const [host, setHost] = createSignal(''); - const [port, setPort] = createSignal('8006'); + const [port, _setPort] = createSignal('8006'); const [tokenId, setTokenId] = createSignal(''); const [tokenSecret, setTokenSecret] = createSignal(''); @@ -69,7 +69,7 @@ export const ConnectStep: Component = (props) => { if (discoveredNodes().length === 0) { showSuccess('Scan complete - no nodes found. Try manual setup.'); } - } catch (error) { + } catch (_error) { showError('Discovery failed. Try manual setup.'); } finally { setIsScanning(false); diff --git a/frontend-modern/src/components/SetupWizard/steps/FeaturesStep.tsx b/frontend-modern/src/components/SetupWizard/steps/FeaturesStep.tsx index 938b5f65d..9f7dd32b0 100644 --- a/frontend-modern/src/components/SetupWizard/steps/FeaturesStep.tsx +++ b/frontend-modern/src/components/SetupWizard/steps/FeaturesStep.tsx @@ -40,9 +40,9 @@ export const FeaturesStep: Component = (props) => { setIsSaving(true); try { - // Save feature preferences + // Only save auto-update setting through SystemConfig + // AI settings are configured separately via Settings → AI await SettingsAPI.updateSystemSettings({ - aiEnabled: aiEnabled(), autoUpdateEnabled: autoUpdates(), }); @@ -53,7 +53,7 @@ export const FeaturesStep: Component = (props) => { showSuccess('Preferences saved!'); props.onNext(); - } catch (error) { + } catch (_error) { // Continue anyway - settings can be changed later props.onNext(); } finally { @@ -73,8 +73,8 @@ export const FeaturesStep: Component = (props) => {