Bundle
dsh-http-probe
Third-party DeepSeek Harness plugin: model-facing http_probe tool over a deployment-owned probe target with bounded streaming body reads and a cooperative timeout budget.
- Source
- TwistedRiCen
- stars
- 2 stars
- License
- MIT
- Updated
- Updated 15 hours ago
Readme
# dsh-http-probe Third-party DeepSeek Harness plugin bundle providing the model-facing `http_probe` tool: a controlled HTTP GET against a deployment-owned probe target. ## Features - Controlled probe: only the URL path is model-controlled; host and port come from deployment config. - Deployment-owned `baseUrl`. - Bounded response body read: past the byte cap the read stops and the canonical result carries `truncated: true`. - Cooperative timeout integration: the budget is declared on the tool and enforced by the host tool-call timeout policy. - Structured canonical Tool result (`ok`, `status`, `url`, `contentType`, `body`, `truncated`), with the model-facing text produced separately by `output.render`. - Redirects are not followed automatically (`redirect: 'manual'`). ## Installation Prebuilt GitHub Release tarball (the currently verified distribution path): 1. Download `dsh-http-probe-0.1.0.tgz` from the [Releases page](https://github.com/TwistedRiCen/dsh-http-probe/releases). 2. Install it with: ```sh dsh plugin --profile <profile> add /path/to/dsh-http-probe-0.1.0.tgz ``` The package declares `dsh.bundle`, so `dsh plugin add` registers it as a profile bundle layer automatically. Remove it with: ```sh dsh plugin --profile <profile> remove dsh-http-probe ``` ## Configuration | Field | Type | Default | Meaning | |---|---|---|---| | `baseUrl` | string | `http://127.0.0.1:3199` | Probe target base URL (http/https, normalized with a trailing `/`). | | `maxBodyBytes` | number | `8192` | Maximum response body bytes read from the wire; past it the read stops and the canonical result carries `truncated: true`. | | `timeoutMs` | number | `2000` | Cooperative tool-call timeout budget, enforced by the host's `@deepseek-ai/dsh-tool-call-timeout-policy`. | Config is validated by the plugin at load (no schema dependency): unknown fields and non-positive-integer limits fail loud. ## Tool - Name: `http_probe` - Parameter: `path` only — must start with a single `/`; no `..` segments, query, fragment, or control characters. Example: `Use the http_probe tool to GET /ok.` ## Security - The model cannot choose a full URL: only `path` is exposed. - `baseUrl` is deployment configuration. - Redirects are not followed automatically. - This is a fixed-target probe, not a general-purpose arbitrary-URL fetcher. ## Compatibility / Developer Preview - Requires the host to provide `@deepseek-ai/cordis@4.0.1` and `@deepseek-ai/dsh-tools@0.1.0-rc.5` (hard peer dependencies). - `@deepseek-ai/dsh-tools@0.1.0-rc.5` is not currently published on the npm registry, therefore: - Prebuilt tarball installation is verified and supported. - Git source self-contained install is not verified and is currently blocked. - Do not substitute a different `@deepseek-ai/dsh-tools` version; keep the exact host version. ## Development - The public `tsconfig.json` carries no machine-specific paths and is used by `pnpm build`. - While `@deepseek-ai/dsh-tools@0.1.0-rc.5` types are unavailable from the registry, local development uses a gitignored `tsconfig.local.json` that extends `./tsconfig.json` with a `paths` mapping to a local rc.5 declaration build; run `pnpm build:local` to use it. - `tsconfig.local.json` never ships in the tarball and never enters Git.
Install
dsh plugin --profile web add github:TwistedRiCen/dsh-http-probe
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-http-probe from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.