Skip to content

feat: add SERPdive search integration#5847

Open
edendalexis wants to merge 1 commit into
simstudioai:mainfrom
edendalexis:feat/serpdive-integration
Open

feat: add SERPdive search integration#5847
edendalexis wants to merge 1 commit into
simstudioai:mainfrom
edendalexis:feat/serpdive-integration

Conversation

@edendalexis

@edendalexis edendalexis commented Jul 22, 2026

Copy link
Copy Markdown

Summary

Adds SERPdive as a search integration: one tool (serpdive_search) and its block. SERPdive is a web search API built for AI agents — instead of links or snippets, each result carries the extracted, answer-ready content of the page, sized for a context window, which fits Sim agents that quote and cite from search output.

Measured, not asserted: on a public 1,000-question benchmark judged blind by an independent model, SERPdive won 60.7% of decided quality duels against Tavily's default (basic) search while returning 20.2% fewer tokens at the same speed (methodology and per-question results). Free tier: 1,000 credits/month, no card.

Authored following .agents/skills/add-integration / add-tools / add-block, mirroring the closest existing provider (Linkup: single search tool, API-key auth):

  • apps/sim/tools/serpdive/types.ts, search.ts, index.ts. Params map 1:1 to the documented API (query, model mako/moby, answer, max_results), apiKey is user-only, coercions live in request.body, outputs use typed properties (no raw JSON dumps).
  • apps/sim/blocks/blocks/serpdive.ts — block + SerpdiveBlockMeta (8 templates, 5 skills, all grounded in the single operation the tool exposes).
  • Registrations, alphabetical: tools/registry.ts, blocks/registry-maps.ts (both maps), SerpdiveIcon in components/icons.tsx.
  • Generated artifacts produced by bun run generate-docs: the docs page, meta.json, both icon-mapping.ts files, apps/docs/components/icons.tsx, and the integrations.json entry. Only the SERPdive-related output is included — regenerating on this repo currently also rewrites unrelated entries (managed_agent, slack_app, service-account pages), and I left that pre-existing drift out of this PR. Happy to include it if you'd rather the file be fully regenerated.

No hosting config, matching Tavily — happy to add hosted-key support in a follow-up if you want SERPdive available on hosted keys.

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation
  • Other: ___________

Testing

Ran locally against this branch:

  • bun run apps/sim/scripts/check-block-registry.ts — subblock ID stability, canonical-id contract, integration meta coverage, sunset replacedBy: all pass.
  • bunx tsc --noEmit on apps/sim0 errors.
  • bunx vitest run tools/index.test.ts blocks455 tests / 32 files pass.
  • biome check on every touched file — clean (formatting applied).
  • bun run check:bare-icons, check:icon-paths, check:boundaries — all pass.
  • bun run generate-docs — re-running it produces no further SERPdive diff (the committed generated output matches).
  • Live API check: built the request from searchTool.request.headers/body and ran transformResponse against the real endpoint — HTTP 200, 3 results plus a built answer in ~2.3 s; invalid key → 401.

Reviewers may want to focus on the block's subBlock/param mapping and on whether you'd prefer integrations.json fully regenerated (see Summary).

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing — no per-provider test exists for peer search tools (Linkup, Serper); the registry-wide suites cover the new entries and pass
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

Screenshots/Videos

N/A — no UI changes beyond the new block appearing in the toolbar with its icon.

@vercel

vercel Bot commented Jul 22, 2026

Copy link
Copy Markdown

@edendalexis is attempting to deploy a commit to the Sim Team on Vercel.

A member of the Team first needs to authorize it.

@cursor

cursor Bot commented Jul 22, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Additive integration following existing search-provider patterns; user-supplied API keys go outbound to SERPdive only, with no changes to auth or core execution paths.

Overview
Adds SERPdive as a new API-key search integration alongside peers like Serper and Linkup.

Workflows get a serpdive_search tool that POSTs to api.serpdive.com/v1/search and returns page content (not just links/snippets), with optional mako/moby depth, answer, and max_results. A matching serpdive workflow block wires those fields (including a password API key) to that tool, with templates and agent skills in block meta.

Registration and docs: SerpdiveIcon, block/tool registry entries, generated integrations.json slice, docs page serpdive.mdx, and icon mappings in docs and sim.

Reviewed by Cursor Bugbot for commit 6ca6f9d. Bugbot is set up for automated code reviews on this repo. Configure here.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit c0825ee. Configure here.

Comment thread apps/sim/components/icons.tsx Outdated
@greptile-apps

greptile-apps Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR adds SERPdive as a web-search integration. The main changes are:

  • A SERPdive search tool with typed inputs and outputs.
  • A workflow block with templates and skills.
  • Tool and block registry entries.
  • A branded icon and integration documentation.

Confidence Score: 4/5

The integration discovery path needs a fix before merging; the documentation also shows a text fallback instead of the brand icon.

  • The tool and workflow block use matching parameter and registry identifiers.
  • The integration catalog inventory does not include SERPdive.
  • The docs icon map does not include the new block type.

apps/sim/blocks/registry-maps.ts and apps/docs/content/docs/en/integrations/serpdive.mdx

Important Files Changed

Filename Overview
apps/sim/tools/serpdive/search.ts Defines the API request and maps successful SERPdive responses into typed tool output.
apps/sim/tools/serpdive/types.ts Defines search parameters, result fields, and response types.
apps/sim/blocks/blocks/serpdive.ts Defines the workflow block, metadata, templates, and skills.
apps/sim/blocks/registry-maps.ts Registers the block and metadata without the matching integration catalog record.
apps/sim/tools/registry.ts Registers the search tool under the identifier used by the block.
apps/docs/content/docs/en/integrations/serpdive.mdx Adds the integration page, but its info card lacks the corresponding docs icon mapping.
apps/sim/components/icons.tsx Adds the SERPdive SVG icon used by the workflow block.

Reviews (1): Last reviewed commit: "feat: add SERPdive search integration" | Re-trigger Greptile

sendblue: SendblueBlockMeta,
sendgrid: SendGridBlockMeta,
sentry: SentryBlockMeta,
serpdive: SerpdiveBlockMeta,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Catalog Registration Is Incomplete

This adds SERPdive to BLOCK_META_REGISTRY, but the required matching record is absent from apps/sim/lib/integrations/integrations.json. Catalog and integration-management surfaces that read that inventory will omit SERPdive even though its block is available in workflows.

import { BlockInfoCard } from "@/components/ui/block-info-card"

<BlockInfoCard
type="serpdive"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Brand Icon Falls Back To Text

BlockInfoCard resolves serpdive through the docs icon map, but this PR adds no matching map entry and passes no explicit icon. The integration page therefore renders its se text fallback instead of the new SERPdive icon.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

@edendalexis
edendalexis force-pushed the feat/serpdive-integration branch 2 times, most recently from 7eef996 to 8030080 Compare July 22, 2026 14:52
@edendalexis
edendalexis force-pushed the feat/serpdive-integration branch from 8030080 to 6ca6f9d Compare July 22, 2026 16:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant