chore(mcp): add tsc build pipeline + convert small lib utilities to TypeScript (Phase 1 of #7291) - #7404
Conversation
…ypeScript Adds packages/loopover-mcp/tsconfig.json and switches the package's build script from a node --check-only chain to a real tsc compile (in-place .ts -> .js emit, import paths unchanged) plus a glob-driven syntax verification pass, mirroring loopover-miner's own build pipeline. Converts the four smallest, lowest-risk lib files: cli-error.js, format-table.js, redact-local-path.js, telemetry.js. Refs JSONbored#7328
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
|
Caution 🛑 LoopOver review result - fixes requiredReview updated: 2026-07-20 07:09:01 UTC
Review summary Nits — 5 non-blocking
CI checks failing
Decision drivers
Context & advisory signals — never blocks the verdict
Linked issue satisfactionAddressed Review context
Contributor next steps
Signal definitions
🧪 Chat with LoopOverAsk LoopOver a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.
Full command reference: https://loopover.ai/docs/loopover-commands 🧪 Experimental — new and may change. 🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by LoopOver, a quiet PR intelligence layer for OSS maintainers.
|
|
LoopOver is closing this pull request on the maintainer's behalf (CI is failing (validate, changes)). This is an automated maintenance action — to pursue this change, please open a new pull request with the issues resolved. Closed PRs may be analyzed later to improve review accuracy, but they are not automatically reopened or re-reviewed. |
Summary
packages/loopover-mcp/tsconfig.jsonand switches the package'sbuildscript from anode --check-only chain to a realtsccompile (in-place.ts->.jsemit, import paths unchanged), plus a glob-drivenscripts/check-syntax.mjssyntax-verification pass -- mirroringpackages/loopover-miner's own build pipeline exactly (build:tsc && build:verify).lib/files to real TypeScript:cli-error.js,format-table.js,redact-local-path.js,telemetry.js.declaration: false(no new.d.tsartifact type) and"!lib/**/*.ts"/"!scripts/check-syntax.mjs"exclusions inpackage.json'sfileskeep the npm tarball's file list byte-identical to before -- verified againsttest/unit/check-mcp-package.test.ts's allowlist.Scope
type(scope): short summaryConventional Commit format.CONTRIBUTING.mdand does not reintroduce GitHub Pages, VitePress,site/, orCNAME.Closes #7328
Validation
git diff --checknpm run actionlintnpm run typechecknpm run test:coveragelocally -- 100% lines/branches/functions on all 4 converted files, including a newtest/unit/mcp-cli-error.test.tsforcli-error.js(previously untested at all) and added branch-coverage tests totest/unit/format-table.test.ts.npm run test:workersnpm run build:mcpnpm run test:mcp-packnpm run ui:openapi:checknpm run ui:lintnpm run ui:typechecknpm run ui:buildnpm audit --audit-level=moderateIf any required check was skipped, explain why:
npm audit --audit-level=moderatereports a pre-existing high-severityadm-zipadvisory (no fix available) viagithub-actionlint, inherited unchanged frommainand unrelated to this PR'spackages/loopover-mcpscope.Safety
Notes
.js(only JSDoc-implicit types became real TypeScript types, withexactOptionalPropertyTypes/noUncheckedIndexedAccessfixes where the stricter compiler settings required them -- e.g. non-null assertions informat-table.tswhere same-length-array indexing is provably in bounds).format-table.test.ts,redact-local-path.test.ts,mcp-local-telemetry.test.ts) had a@ts-expect-errorsuppression for dynamically importing what was previously an untyped.jsmodule; these are now stale (TypeScript resolves the import to the new.tssource directly) and were removed.