Adopt JSDoc + // @ts-check + `tsc --noEmit` as a CI/dev-only type
check. No emit step, no runtime dependency: shipped .js files stay
byte-identical, typescript is a devDependency only.
- tsconfig.json: allowJs + checkJs:false so only files carrying an
explicit `// @ts-check` directive are checked; strict mode; DOM libs.
`include` matches static/**/*.d.ts so the upcoming ambient contract
is loaded into the program. moduleDetection is left at the default
`auto` on purpose -- app.js/highway.js carry no import/export and
must stay global scripts so cross-file globals resolve.
- package.json: typescript devDep + `npm run typecheck`.
- tests.yml: setup-node + `npm ci` + typecheck step before pytest.
This also gives the existing JS plugin-API test step an explicit
Node toolchain.
No file carries `// @ts-check` yet, so typecheck passes trivially.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>