Files
kilocode/packages/opencode/test/tool
Aarav c0ebf98778 feat(opencode): route websearch Exa through Kilo proxy (#12470)
Add a new Kilo-REST Exa transport alongside the existing MCP-Exa
and MCP-Parallel transports. When the websearch tool picks the Exa
provider and the user is signed into Kilo, requests go to
https://app.kilo.ai/api/exa/search with the user's Kilo bearer.
The cloud proxy injects its own Exa API key; the client sends the
user's Kilo API key as a Bearer token. The MCP-BYOK path (EXA_API_KEY)
and MCP-unauthed fallback are preserved unchanged.

Changes:
* New `packages/opencode/src/kilocode/tool/websearch-kilo-exa.ts`
  implements `callKiloExa` against the Exa REST API
  (`POST /search`) with `{ highlights: true }` contents and clamps
  numResults at 10 (Exa's first-10-results flat $0.007 tier).
* `packages/opencode/src/tool/websearch.ts` adds a `"kilo-exa"`
  provider variant (selected only via `KILO_WEBSEARCH_PROVIDER`
  override), an Auth.Service yield to source the Kilo bearer, a
  transport-dispatch block that prefers Kilo-REST over MCP when
  auth is available and EXA_API_KEY is unset, and `transport`
  metadata on the tool part. MCP-Exa numResults is now clamped
  at 10 (default stays 8).
* 13 unit tests in
  `packages/opencode/test/kilocode/tool/websearch-kilo-exa.test.ts`
  cover request shape, response formatting, error handling, and
  the costDollars ignore case.
* Parameters snapshot updated for the new numResults description
  string.
* Patch-level changeset added.
2026-07-29 10:07:24 +02:00
..
2026-07-13 18:00:35 +02:00
2026-07-22 13:31:23 +02:00
2026-07-22 13:31:23 +02:00
2026-07-13 18:00:35 +02:00
2026-07-13 18:00:35 +02:00
2026-07-22 13:31:23 +02:00
2026-07-22 15:00:34 +02:00
2026-07-22 13:31:23 +02:00
2026-07-13 18:00:35 +02:00
2026-07-13 18:00:35 +02:00