feat(web_search): add Exa provider support#34862
feat(web_search): add Exa provider support#34862trolljode wants to merge 1 commit intoopenclaw:mainfrom
Conversation
Greptile SummaryThis PR adds Exa as a sixth web search provider, integrating the Exa Search API throughout the codebase consistently with existing providers. The implementation follows established patterns: a typed Key changes:
One minor style issue: after inserting Exa at step 2 in the auto-detection chain, the inline step comments for Kimi ( Confidence Score: 5/5
Last reviewed commit: d450a88 |
Additional Comments (1)
After inserting Exa at position 2, the inline step comments for Kimi ( Update the three comments to |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d450a88083
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| z.literal("grok"), | ||
| z.literal("gemini"), | ||
| z.literal("kimi"), | ||
| z.literal("exa"), |
There was a problem hiding this comment.
Sync public web-search types with the new Exa provider
Adding "exa" to the runtime schema here makes Exa a valid config at runtime, but the exported ToolsConfig type still only allows "brave" | "perplexity" | "grok" | "gemini" | "kimi" and has no search.exa block (src/config/types.tools.ts:443-487). That leaves TypeScript consumers unable to compile valid Exa configs even though the runtime accepts them, which is a real API contract regression for typed integrations.
Useful? React with 👍 / 👎.
|
I appreciate the contribution here. I'm closing this as a duplicate of #52617. The merged PR now lands the bundled Exa provider on top of the rebased plugin-owned search path, so this branch is superseded. If there is still a distinct behavior gap, point me to it and I can reopen review right away. |
Summary
exaas aweb_searchprovider with Exa Search API backendtools.web.search.exa.apiKeyandEXA_API_KEYValidation
pnpm vitest run src/agents/tools/web-tools.enabled-defaults.test.ts src/secrets/runtime.coverage.test.tspnpm oxlint --type-aware src/agents/tools/web-search.ts src/agents/tools/web-tools.enabled-defaults.test.ts src/config/zod-schema.agent-runtime.ts src/config/schema.help.ts src/config/schema.labels.ts src/secrets/runtime-config-collectors-core.ts src/secrets/runtime.coverage.test.ts src/secrets/target-registry-data.ts src/wizard/onboarding.finalize.tspnpm oxfmt --check docs/tools/web.md docs/reference/secretref-credential-surface.md docs/reference/secretref-user-supplied-credentials-matrix.json