Add serpdive provider - #7
Conversation
Mirrors the tavily provider module: bearer auth, POST body with query and max_results (capped at the API's 10), results[].content as snippet. Domain filters fold into the query via appendDomainFilters. Registered in types, default endpoints, provider modules, config validation, and tests.
|
Update while this is open: SERPdive now has a free tier, which changes the calculus for this integration.
Why it matters here: the usual objection to adding a search provider is that reviewers and users need a paid key just to try it. That objection is gone — anyone can run this integration end to end for free, including whoever reviews this PR. Nothing in this PR needs to change for that: the default stays |
The provider list tells the reader what each provider requires — the duckduckgo entry already notes it needs no key. SERPdive's now says its key has a free tier: unlimited under fair use, no card. No behaviour change; this provider sends no model and keeps using the API default.
What
Adds
serpdiveas a provider, mirroring thetavilymodule. SERPdive returns extracted, answer-ready page content per result instead of snippets, so thesnippetfield carries real page content. On a public 1,000-question benchmark it won 60.7% of decided quality duels against Tavily's default (basic) search while returning 20.2% fewer tokens (1,001 vs 1,255 per query on average) at the same speed; Tavily's advanced tier was not tested. Free tier, no card.Full disclosure: I built SERPdive — close freely if you'd rather keep the provider list as is, no hard feelings.
How
providers/serpdive.ts: bearer auth,POSTbody{ query, max_results }withmax_resultsclamped to the API cap of 10; domain filters fold into the query viaappendDomainFilters(the API has no domain parameters);results[].content→snippettypes.ts,provider-endpoints.ts(https://api.serpdive.com/v1/search),providers.ts,config.tsprovider list,package.jsonkeywords, README provider bulletTesting
npm run check(tsgo + biome) clean,npm test110/110.Summary by cubic
Add
serpdiveas a web search provider that returns extracted page content insnippetfor more answer-ready results. Wired into config, endpoints, providers, tests, and docs (README notes the API key has a free tier).{ query, max_results }(clamped to 10), no model sent; domain filters appended to the query.results[].title/url/contentto the common result shape;content→snippet.types,provider-endpoints,providers, andconfig; README updated to note free-tier key;package.jsonkeyword added; tests for request building and response normalization.Written for commit 6e3d869. Summary will update on new commits.