dsh-tool-tsfork
Verified@hy-sde-org/dsh-tool-tsfork Β· v0.2.1-alpha.4 Β· MIT
tsfork devices (tsfork_status, tsfork_check) over a parked Go-native TypeScript compiler (can1357/TypeScript perf fork, TS 7.1.0-dev): status/version probe and one-shot -b project-graph checks with parsed diagnostics, timing, and a GOMAXPROCS cap.
Install
dsh plugin add @hy-sde-org/dsh-tool-tsfork Confirm the layer applied with dsh --profile default --dump-config β see the install guide.
Source
Published to npm without a public repository. Inspect the package contents before installing.
Tags
Readme
@hy-sde-org/dsh-tool-tsfork
Model-facing tsfork devices for DeepSeek Harness: tsfork_status and
tsfork_check, driving a parked Go-native TypeScript compiler (the
can1357/TypeScript perf fork,
perf/checker-speedups-v3, TS 7.1.0-dev) as one-shot -b project-graph
checks with parsed diagnostics, wall time, and a GOMAXPROCS cap.
Decision-experiment numbers behind this plugin (2026-10-11, on the fork harness's own 337-project host graph, noEmit):
| run | stock [email protected] | tsfork Go 7.1.0-dev |
|---|---|---|
cold tsc -b tsconfig.host.json |
54.25s wall / 91.6s user | 7.05s wall / 27.0s user (7.7Γ) |
| warm | 0.65s | 0.56s |
Graph listings (--dry) and error output are byte-identical (14/14 planted
errors, deterministic). CPU work is 3.4Γ less β the cache-insensitive floor.
Devices
tsfork_status(zero params) β resolved binary,--versionprobe, build stamp (<binaryDir>/VERSION).tsfork_checkβtsc -b <project>(or-pfixture checks viaargs), returningexitCode,wallMs,errorCount/warningCount, parseddiagnostics(file:line:col TSxxxx), anoutputTail, and a reproduciblecommand.dry: trueprepends--dry(cheap graph-coverage probe).
The plugin registers a tsfork:tools system-prompt section documenting the
buildinfo gotcha and the adoption boundary (below).
Install (fleet flow)
# 1. park a compiler binary (or point `binary` at your own):
# inside a checkout of the fork's tsc/ dir: go build -o ~/.dsh/tsfork/tsc ./cmd/tsc
# (the tree ships generated files; no generate step needed)
# 2. wire into the profile (absolute file: path β the anchorPathSpec only
# rewrites ./ ../ file: link: specs):
cd ~/.dsh/profiles/web
pnpm add file:/Users/hui/Documents/github/dsh-plugins/dsh-tool-tsfork/packages/tool-tsfork
# 3. add '@hy-sde-org/dsh-tool-tsfork' to dsh.profile.bundles in package.json
# (the package's own cordis.patch.yml mounts row `hy-sde-tsfork`)
Per-deployment config rides the row (binary, defaultProject, defaultCwd,
timeoutMs, gomaxprocs, maxOutputBytes) β patch hy-sde-tsfork by id.
Gotchas
.tsbuildinfois compiler-version-tagged β alternatingtsfork_checkwith the repo's stocktsc -binvalidates the other side's incremental caches; runs go cold. The prompt section warns agents.- GOMAXPROCS defaults to 4 (row config) to avoid oversubscribing a shared box across concurrent lanes; override per call.
- Adoption boundary: tsfork does NOT replace the pinned toolchain β
oxlint
typeAwareand the typert generator need the JS API ([email protected]; TS 7's npm package is a launcher shim with nolib/typescript.js). Promotion path (if the trial proves out) is apnpmoverride of the gate binary, not this plugin.
Development
pnpm install && pnpm build && pnpm check && pnpm test
Integration tests auto-skip when ~/.dsh/tsfork/tsc is absent.
License
MIT