mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
Node 26.0.0 removed --experimental-transform-types, so the native source-launch chain cannot start anywhere on that line, and strip-only mode rejects the vendored syntax (parameter properties, decorators, runtime enums/namespaces). Switch bin/dsh, the root dsh/demo:tui/ demo:web scripts, and the Code Mode TUI overlay to node --import tsx/esm: one launch vector across the whole engines range, ~0.4s faster than the full tsx default (the CJS hook stays off; the graph is ESM-only). Delete scripts/tspath-loader.ts and apps/cli/src/tsconfig-paths-loader.ts: tsx owns both transformation and tsconfig paths projection. Add dsh-source-launch-smoke to the node-compat gates so the 22.19/26 matrix executes the real launch vector; no CI job did, which is how the Node 26 breakage shipped silently. Supersedes the native-TypeScript-source-launch Agent Note (new note records the profiling evidence and rejected alternatives).
26 lines
1.0 KiB
Bash
Executable File
26 lines
1.0 KiB
Bash
Executable File
#!/bin/sh
|
|
# dsh launcher: runs the apps/cli `dsh` bin FROM SOURCE through the tsx ESM
|
|
# hook, so a symlink from anywhere (e.g. ~/.local/bin/dsh) always executes the
|
|
# current working tree without a build step.
|
|
set -eu
|
|
|
|
# Resolve symlink chains without readlink -f (not on every macOS).
|
|
script=$0
|
|
while [ -L "$script" ]; do
|
|
target=$(readlink "$script")
|
|
case $target in
|
|
/*) script=$target ;;
|
|
*) script=$(dirname "$script")/$target ;;
|
|
esac
|
|
done
|
|
root=$(CDPATH='' cd -- "$(dirname -- "$script")/.." && pwd)
|
|
|
|
# The ESM-only tsx hook transforms TypeScript and projects this checkout's
|
|
# tsconfig paths into Node resolution (the CJS hook stays off: the graph is
|
|
# ESM-only and the CJS resolver costs ~0.4s of startup). Absolute paths keep
|
|
# both the hook and the tsconfig anchored to this checkout when the launcher
|
|
# runs from any cwd, where bare `tsx/esm` would not resolve.
|
|
TSX_TSCONFIG_PATH="$root/tsconfig.json" \
|
|
exec node --import "$root/node_modules/tsx/dist/esm/index.mjs" \
|
|
"$root/apps/cli/src/bin.ts" "$@"
|