fix: leads finder no longer chats - silent search + table output only

- System prompt rewritten: strict no-chat rules, immediate search
- Leads search moved to its own block outside SEO if-scope (fixes TS)
- Status shows "Finding leads..." instead of "Searching for SEO context"
- Search context instructs AI to extract leads and output [PREVIEW:leads:html]
This commit is contained in:
admin
2026-03-19 05:52:36 +00:00
Unverified
parent 12ceb6594d
commit 4677246b4c
2 changed files with 37 additions and 56 deletions

View File

@@ -780,7 +780,7 @@ export default function AIAssist({ vibeMode = false }: { vibeMode?: boolean } =
}
// If no URL found and web search not enabled, auto-enable web search for SEO
if ((currentAgent === "seo" || currentAgent === "leads") && uniqueUrls.length === 0 && !webSearchEnabled) {
if (uniqueUrls.length === 0 && !webSearchEnabled) {
try {
setStatus("Searching for SEO context...");
const searchRes = await fetch("/api/search?q=" + encodeURIComponent(finalInput.split("\n")[0].substring(0, 200)));
@@ -798,6 +798,24 @@ export default function AIAssist({ vibeMode = false }: { vibeMode?: boolean } =
}
}
// Leads mode: auto-search for leads
if (currentAgent === "leads" && !webSearchEnabled) {
try {
setStatus("Finding leads...");
const searchRes = await fetch("/api/search?q=" + encodeURIComponent(finalInput.split("\n")[0].substring(0, 200)));
if (searchRes.ok) {
const searchData = await searchRes.json();
if (searchData.results && searchData.results.length > 0) {
const searchContext = searchData.results.slice(0, 5).map((r: { title: string; url: string; snippet: string }, i: number) =>
(i + 1) + ". **" + r.title + "** (" + r.url + ") - " + r.snippet
).join("\n");
enrichedInput = "[WEB SEARCH CONTEXT - Use these results to find leads]\n" + searchContext + "\n\n---\nExtract leads/prospects from the above results. Search for more leads using [WEB_SEARCH:query] with different angles. Then output results as a [PREVIEW:leads:html] table.\n\nUser request: " + finalInput;
}
}
} catch (e) { console.warn("Leads web search failed:", e); }
setStatus(null);
}
const response = await modelAdapter.generateAIAssistStream(
{
messages: [...formattedHistory, { role: "user" as const, content: enrichedInput, timestamp: new Date() }],