npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@guionai/dsh-web

v0.7.1

Published

DeepSeek Harness 0.1.2-rc.1 Guion-owned research surface for Exa, Brave, DeepSeek, and Kepos Bridge with HTTP and optional browser page-rendering modes.

Readme

@guionai/dsh-web

DeepSeek Harness 0.1.2-rc.1 Web bundle and browser settings client for Guion Web.

Generate compatible stock-equivalent presets before installing or activating the bundle in the existing Web profile:

web dsh sync
dsh plugin --profile web add @guionai/dsh-web
web dsh doctor

web dsh sync reads the installed official @deepseek-ai/[email protected] package and creates compatible copies with the familiar standard, ptc, cordis, and minimal ids in ${DSH_HOME:-$HOME/.dsh}/.agent-presets. It removes only the top-level official tool-web row from standard, ptc, and cordis; Minimal is copied unchanged. Sync compares same-id directories with the official and compatible trees and refreshes exact matches automatically. Modified same-id presets require interactive confirmation; pass --yes only for an intentional non-interactive overwrite. Run sync again after upgrading DSH. doctor is read-only, reports missing/conflicting/stale copies, and exits nonzero until all four are current.

The bundle patch sets includeShippedRoot: false, includeUserRoot: true, and default: standard. This hides the official shipped duplicates while retaining Yuki and all other ordinary user presets. Existing sessions, credentials, and deployed profiles are not migrated automatically; activate or deploy the bundle only after sync and doctor succeed.

The package owns the global DSH Research Surface and does not require a custom profile. It directly registers web_search, web_fetch, web_links, web_docs, and web_source_search; while Kepos Bridge is selected it also registers web_weather, web_sports, web_finance, and web_time. Compatible stock-equivalent presets omit the scoped tool-web row so both native and PTC modes inherit these same global registrations.

The profile patch disables the official DSH Web registry, official search and fetch providers, and official tool-web; it does not load or depend on the official @deepseek-ai/dsh-web package.

Research calls use compact native disclosure rows. Each row shows the request URL, query, or lookup target and non-default options such as browser rendering, wait time, navigation mode, section, or documentation topic. Expand a row to inspect its complete recorded input and returned text in independently scrollable sections. Running and failed calls retain their status; long results stay inside the result pane instead of growing the conversation.

Guion's client registers these request-aware views ahead of the built-in Web views. The built-in views are internal children of DSH's required tool UI plugin, so the Host bundle patch cannot disable them independently.

The Guion schemas are complete and shared by every compatible preset: web_search takes one to four trimmed queries and preserves concurrent, deterministic partial results; web_fetch takes mode: "auto" | "full" | "tree", optional section_id with omitted/auto mode, and explicit render: "http" | "browser" with browser waitMs from 0 through 30,000; web_links has the same renderer contract. web_docs and web_source_search retain their existing Context7 and Sourcegraph contracts.

Provider selection is explicit and persists in the guionai-web settings namespace. Exa, Brave, and DeepSeek API keys use namespaced write-only DSH credentials; settings expose only configured/source/writable metadata. The credential-free kepos-bridge provider uses the complete non-secret route configured in the card (default http://codex-bridge.localhost:17480/codex/web-search). While it is selected, the package registers web_weather, web_sports, web_finance, and web_time; switching to Exa, Brave, or DeepSeek removes those four schemas. DeepSeek uses the same provider picker and write-only DEEPSEEK_API_KEY credential workflow as the other hosted providers, makes one auxiliary model call per search, and returns normalized ranked sources. It has no endpoint input; the endpoint field in this card is for Kepos Bridge only. The route is a complete absolute http: or https: URL; credentials, query strings, and fragments are rejected and its path is used exactly as entered.

web_search accepts one to four trimmed, non-empty queries, starts valid queries concurrently, interleaves successful results deterministically, and keeps partial successes when one query fails. If every query fails it reports the failed queries clearly. The selected provider and its credential are read when each search executes, so the next call observes a settings change without remounting a preset. Search output uses the same bounded model-facing text conventions as the other Guion adapters.

The published package is a dual host/browser bundle. Its host and client artifacts, profile patch, and exact DSH 0.1.2-rc.1 peer contract are included in the npm package. Search, HTTP page rendering, page-link discovery, optional browser rendering, Context7 documentation, and Sourcegraph all run in-process through the bundled Guion Web core. web_fetch has two page-rendering modes: HTTP (the default) and explicit render: "browser" with required waitMs (an integer from 0 through 30,000) for client-rendered pages through a host-installed agent-browser executable. To enable that optional capability, install agent-browser separately with npm install --global agent-browser followed by agent-browser install. Its browser runtime is managed outside this package; the compatible executable must be directly runnable from PATH without a shell. The renderer is supported on macOS and Linux, is not an npm dependency, and never reuses persistent browser state or credentials.

web_links lists up to 100 unique HTTP(S) anchors from the original page DOM, so it includes navigation and other links that readable-content extraction drops. It uses the same HTTP default and explicit render: "browser" / required waitMs contract as web_fetch.

Long web_fetch documents with navigable headings return a navigation tree automatically when mode: "auto" (the default). A headingless long document uses the normal bounded response. Set mode: "full" for complete Markdown, mode: "tree" to force the heading tree, or supply a returned section_id with omitted mode or mode: "auto" to continue with one section. Input mode "section" is not supported, and section_id is rejected with "full" or "tree". Ordinary automatic document results report mode: "auto"; tree, full, and section results report "tree", "full", and "section". Every result includes truncated, which is true only when automatic content was cut by the content-length limit.

For example, request a tree and then continue with one returned section:

{ "url": "https://example.test/article", "mode": "tree" }
{ "url": "https://example.test/article", "section_id": "7i" }

Rendered requests are bounded and constrained to the requested hostname, *.<requested-hostname> (the target and its subdomains), and this fixed common CDN list: cdn.jsdelivr.net, unpkg.com, cdnjs.cloudflare.com, ajax.googleapis.com, fonts.googleapis.com, fonts.gstatic.com, and esm.sh. The caller cannot widen the list. A redirect, API, frame, worker, socket, or other dependency on an unknown domain fails closed as render_domain_not_allowed; increasing waitMs will not help. For example, retry a shell with render: "browser", waitMs: 2000, then explicitly retry with a longer wait such as waitMs: 10000 or abandon the page. Report a likely missing first-party or common-CDN domain at https://github.com/guionai/web/issues/new, including the page URL and blocked domain without credentials or page secrets.

Literal and DNS-resolved private/reserved targets are rejected before launch, but this is only a browser-level hostname boundary: an allowlisted malicious hostname can change its DNS answer to a private address after validation (DNS rebinding), and this backend provides no operating-system host-egress isolation. It is not a complete SSRF boundary for arbitrary untrusted URLs in a public or multi-tenant service; that deployment needs a per-connection SSRF-filtering proxy or container/microVM egress isolation.