All plugins

DSH / BUNDLE / CLIENT-UI

@junjiangao/dsh-web-search-tavily

v0.4.2junjiangao / dsh-web-search-tavily0e266a20d9

InstallableBundlesUI & client pluginsCommunity · Topic auto-analysisWeb UI

Overview

@junjiangao/dsh-web-search-tavily

Tavily-backed search provider for the DeepSeek Harness web capability seam (ctx.web): keyless mode, full official search parameters, and the native dsh 0.2 configuration form

README / EN

Package documentation

Registry summary

Tavily-backed search provider for the DeepSeek Harness web capability seam (ctx.web): keyless mode, full official search parameters, and the native dsh 0.2 configuration form

dsh.pub verifies the pinned bundle contract, runtime facts, and distribution semantics. The complete README remains in the source repository.

Read the full README on GitHub

LIMITATIONS

Known limitations

- **Only `search` is implemented** — no Tavily `extract`/crawl/map/research; keyless mode only permits search/extract anyway. - **Keyless is server-rate-limited** and may downgrade parameters; the plugin makes no local assumptions. - **`includeImages` / `includeImageDescriptions` / `includeFavicon` / `includeUsage` were removed** — the seam has no surface for them, so they only changed the request body. An older patch that still sets them should drop those keys. - **Combinations Tavily rejects with a 400 are handled in the provider** — `include_domains_mode` without `include_domains`, and `filter_by_language` without `language`, are dropped rather than sent (both verified to return 400). - **`safe_search` conflicts with the `fast`/`ultra-fast` depths** — Tavily answers that combination with a 400 (`Safe search parameter is not supported for fast or ultra-fast search_depth.`); the plugin does not intercept it and surfaces the message as-is. - **Selection stays user-owned**: installation registers the provider; the card's switch selects search and fetch together when saved (see above). - **Abort classification is signal-based**: a fetch abort or an already-aborted signal maps to `WEB_ABORTED`. - **One entry point: the bundle's own page** — `plugins.bundle.config`, keyed by the *declared* bundle name, which the client resolves from the plugin manager's bundle list so an aliased install (a profile dependency key left over from a package rename) still matches; a package-name key alone would render nothing. `plugins.row.config` is deliberately not claimed, so that row carries no configure control of its own, and `plugins.item` would add a default-artwork card to the Official group. - **A prop named `ref` is a trap in this bundle**: React owns `ref` on every element, so a string value there never reaches a function component and throws error #290 instead, which the shell reports as `slot entry crashed` and renders nothing. The `jsx-runtime` test stub now reproduces that rule, so the suite fails first.