diff --git a/client/src/components/SettingsView.tsx b/client/src/components/SettingsView.tsx index 56488c8..efd6d9c 100644 --- a/client/src/components/SettingsView.tsx +++ b/client/src/components/SettingsView.tsx @@ -51,6 +51,7 @@ export function SettingsView() { const [preferredSearch, setPreferredSearch] = useState('auto'); const [searxngEndpoint, setSearxngEndpoint] = useState('http://localhost:8888/search'); const [braveApiKey, setBraveApiKey] = useState(''); + const [tavilyApiKey, setTavilyApiKey] = useState(''); const [savingSearch, setSavingSearch] = useState(false); const [searchTestResult, setSearchTestResult] = useState(null); @@ -291,6 +292,7 @@ export function SettingsView() { preferred_provider: preferredSearch, searxng_endpoint: searxngEndpoint, brave_api_key: braveApiKey || undefined, + tavily_api_key: tavilyApiKey || undefined, }), }); await fetchSearchProviders(); @@ -673,6 +675,7 @@ export function SettingsView() { +
@@ -695,6 +698,18 @@ export function SettingsView() { onChange={e => setBraveApiKey(e.target.value)} />
+
+ + setTavilyApiKey(e.target.value)} + /> +

+ Get a key at app.tavily.com +

+
{/* Actions */} diff --git a/client/src/components/SetupWizard.tsx b/client/src/components/SetupWizard.tsx index e4d8b9c..62057b5 100644 --- a/client/src/components/SetupWizard.tsx +++ b/client/src/components/SetupWizard.tsx @@ -42,6 +42,7 @@ const INTEGRATIONS = [ { id: 'github', label: 'GitHub', description: 'Create PRs, issues, and manage repos.', keyLabel: 'Personal Access Token', keyHint: 'ghp_...' }, { id: 'notion', label: 'Notion', description: 'Create pages, update databases, search notes.', keyLabel: 'API Key', keyHint: 'secret_...' }, { id: 'brave', label: 'Brave Search', description: 'High-quality web search API.', keyLabel: 'API Key', keyHint: 'BSA...' }, + { id: 'tavily', label: 'Tavily Search', description: 'AI-optimised web search API (optional).', keyLabel: 'API Key', keyHint: 'tvly-...' }, ]; // ─── Helpers ─────────────────────────────────────────────────────────────────── diff --git a/server/src/routes/setupRoutes.ts b/server/src/routes/setupRoutes.ts index c92e80d..ea39011 100644 --- a/server/src/routes/setupRoutes.ts +++ b/server/src/routes/setupRoutes.ts @@ -211,6 +211,7 @@ router.post('/complete', async (req: Request, res: Response) => { github: 'GITHUB_TOKEN', notion: 'NOTION_API_KEY', brave: 'BRAVE_API_KEY', + tavily: 'TAVILY_API_KEY', serpapi: 'SERPAPI_API_KEY', }; for (const [service, val] of Object.entries(integrations)) {