Back to home@fantasyce

dsh-typelens

Automatic bounded type context and edit diagnostics for DeepSeek Harness

Stars
0
Language
TypeScript
Created
Aug 27, 2026
Updated
Aug 28, 2026

Introduction

DSH TypeLens

Local-first type context and edit diagnostics for DeepSeek Harness.

TypeLens watches successful DSH file reads and edits. After a read, it appends only the complete type declarations needed to understand the visible code. After an edit, it appends bounded TypeScript diagnostics with new errors first. The original tool result always remains intact, and an analysis failure never turns a successful file operation into a failure.

Why TypeLens

  • Automatic context: agents do not have to remember to call an LSP tool.
  • Full declarations: output is ranked, deduplicated, cycle-safe, and never cut mid-signature.
  • Immediate feedback: TS/JS diagnostics arrive directly after writes and edits.
  • Local analysis: TypeLens makes no outbound requests and never persists source-bearing analysis state.
  • Bounded and fail-open: workspace, file-size, timeout, depth, result, cache, and token limits are enforced.
  • Native DSH integration: four explicit tools, lifecycle hooks, health API, and a Web settings section.

Compatibility

Version 0.1.1 is acceptance-tested with DSH 0.1.1-rc.2 on macOS arm64. GitHub CI covers Linux with Node.js 22 and 24. TypeScript, TSX, JavaScript, and JSX are supported. Vue and Svelte script blocks use their optional compiler when available and retain a bounded first-instance-script fallback when it is absent. Template semantics are outside the current analysis boundary. Windows is a compatibility target but is not a 0.1.1 release gate.

Install

dsh plugin --profile web add https://github.com/fantasyce/dsh-typelens/releases/download/v0.1.1/dsh-typelens-0.1.1.tgz
dsh plugin --profile headless add https://github.com/fantasyce/dsh-typelens/releases/download/v0.1.1/dsh-typelens-0.1.1.tgz

The release tarball is the canonical 0.1.1 install source. The shorter dsh plugin --profile web add dsh-typelens form becomes available after npm publication.

Restart the affected DSH profile, then verify the composed row:

dsh --profile web --dump-config

The package bundle inserts a typelens row automatically. In DSH Web, open Settings → TypeLens to inspect health, change automatic behavior and limits, or reset in-memory caches and counters.

To remove it:

dsh plugin --profile web remove dsh-typelens

Model-facing tools

  • typelens_lookup_type: find a named declaration relevant to a file.
  • typelens_list_types: list bounded declarations relevant to a file.
  • typelens_check: run bounded file and project diagnostics.
  • typelens_explain: inspect effective configuration, health, circuit state, and source-free counters.

All returned paths are workspace-relative. Explicit file tools require an active DSH session workspace.

Safe defaults

Automatic context is limited to 800 estimated tokens, depth 4, 1.5 seconds, and 2 MiB files. Explicit checks receive 5 seconds. A circuit breaker pauses automatic analysis for 30 seconds after five operational failures in 60 seconds; explicit tools and health remain available. Dependency trees, build output, VCS metadata, coverage, and environment files are denied by default.

See configuration, troubleshooting, and the Chinese guide. The current release gate is recorded in v0.1.1 acceptance.

Development

corepack enable
pnpm install --frozen-lockfile
pnpm verify

pnpm verify type-checks, runs the complete test suite, builds both Host and DSH client artifacts, scans for secrets, audits package contents, and creates the tarball under artifacts/.

Security and privacy

TypeLens persists only validated settings under $DSH_HOME/typelens/settings.json with owner-only permissions. Analysis state and counters live in memory. Type context and diagnostics appended to an agent step become part of the next DSH model request, so they follow the privacy policy of your configured model provider. See SECURITY.md for reporting and the full trust boundary.

License

MIT