feat(FN-3901): add builtin research web-search provider as default
The merge adds a builtin web-search research provider as the default, replacing the need for external research provider configuration and removing the setup gate for builtin defaults. Dashboard settings UX for research defaults was aligned (ResearchView, SettingsModal), CLI research commands were up Fusion-Task-Id: FN-3901
This commit is contained in:
@@ -6,16 +6,19 @@ describe("ResearchProviderRegistry", () => {
|
||||
const registry = new ResearchProviderRegistry({}, process.cwd());
|
||||
expect(registry.getProvider("web-search")).toBeDefined();
|
||||
expect(registry.getProvider("page-fetch")).toBeDefined();
|
||||
expect(registry.isProviderAvailable("web-search")).toBe(true);
|
||||
expect(registry.isProviderAvailable("local-docs")).toBe(true);
|
||||
expect(registry.isProviderAvailable("github")).toBe(false);
|
||||
});
|
||||
|
||||
it("detects search backend from credentials", () => {
|
||||
const tavily = new ResearchProviderRegistry({ researchGlobalTavilyApiKey: "key" }, process.cwd());
|
||||
expect(tavily.isProviderAvailable("web-search")).toBe(true);
|
||||
it("honors explicit none by disabling web-search", () => {
|
||||
const registry = new ResearchProviderRegistry({ researchGlobalWebSearchProvider: "none" }, process.cwd());
|
||||
expect(registry.isProviderAvailable("web-search")).toBe(false);
|
||||
});
|
||||
|
||||
const searx = new ResearchProviderRegistry({ researchGlobalSearxngUrl: "https://sx.local" }, process.cwd());
|
||||
expect(searx.isProviderAvailable("web-search")).toBe(true);
|
||||
it("requires credentials for explicit external providers", () => {
|
||||
const registry = new ResearchProviderRegistry({ researchGlobalWebSearchProvider: "tavily" }, process.cwd());
|
||||
expect(registry.isProviderAvailable("web-search")).toBe(false);
|
||||
});
|
||||
|
||||
it("returns only configured providers in available list", () => {
|
||||
@@ -40,10 +43,4 @@ describe("ResearchProviderRegistry", () => {
|
||||
registry.refreshSettings({ researchGlobalWebSearchProvider: "tavily", researchGlobalTavilyApiKey: "key" });
|
||||
expect(registry.isProviderAvailable("web-search")).toBe(true);
|
||||
});
|
||||
|
||||
it("gracefully degrades disabled providers", () => {
|
||||
const registry = new ResearchProviderRegistry({ researchGlobalGitHubEnabled: false, researchGlobalLocalDocsEnabled: false }, process.cwd());
|
||||
expect(registry.isProviderAvailable("github")).toBe(false);
|
||||
expect(registry.isProviderAvailable("local-docs")).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user