GuionAI/web--packages-dsh-web1

@guionai/dsh-web

DeepSeek Harness 0.1.1 provider for web research with direct and optional agent-browser page-fetch backends.

包名
@guionai/dsh-web
版本
0.1.0
许可证
Apache-2.0
最近更新
2026年8月30日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:GuionAI/web#bafb7cb0b2c3ad0987c98a1ae95f80f7272992d6&path:packages/dsh-web

@guionai/dsh-web

DeepSeek Harness rc.8 Web bundle and browser settings client for Guion Web.

Install it into the existing Web profile:

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

The package owns the Web profile patch and does not require a custom profile or PTC preset. It leaves the root tool-web row disabled and routes stock PTC's batched web_search through the Guion provider seam.

Provider selection is explicit and persists in the guionai-web settings namespace. Exa and Brave API keys use namespaced write-only DSH credentials; settings expose only configured/source/writable metadata.

The published package is a dual host/browser bundle. Its host and client artifacts, profile patch, and exact DSH 0.1.0-rc.8 peer contract are included in the npm package. Search, direct page fetch, page-link discovery, optional agent-browser rendering, Context7 documentation, and Sourcegraph all run in-process through the bundled Guion Web core. web_fetch has two page-fetch backends: direct fetch (the default) and explicit render: "agent-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 direct default and explicit render: "agent-browser" / required waitMs contract as web_fetch.

Rendered requests are bounded and constrained to the 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: "agent-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.