Trust signals
Why this verdict
PkgRadar discounts a release’s score when public reputation argues against novel malware. The verdict above already reflects these — the panel just explains what was applied.
- Weekly downloads
- 1,560Niche · −30% score
- Versions published
- 23
- First published
- Apr 2026
- Publisher
- GitHub ActionsTrusted automation · −70% score
Effective trust discount applied: −70% (max across signals — discounts don’t stack). New install-lifecycle deltas vs the previous release would clear the discount.
Recommended action
Review before promotingMixed signals: the package has indicators worth reading before allowing the update in automated dependency flows.
Block this release in CIcurl · GitHub Actions
Fail the build when this package version is added or upgraded. Replace $PKGRADAR_TOKEN with a Pro / Team API key from your dashboard.
curl -fsS https://pkgradar.com/gate/npm \
-H "Authorization: Bearer $PKGRADAR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"specs":["@geraldmaron/[email protected]"],"fail_on":"review"}'GitHub Actions step:
- name: PkgRadar gate
run: |
curl -fsS https://pkgradar.com/gate/npm \
-H "Authorization: Bearer ${{ secrets.PKGRADAR_TOKEN }}" \
-H "Content-Type: application/json" \
-d '{"specs":["@geraldmaron/[email protected]"],"fail_on":"review"}'Why flagged
What the scanner saw
Remote Payload: matched "curl "
Not observed: package install, lifecycle script execution, or sandbox execution. PkgRadar only inspects on-disk artifacts.
Availability ledger
available
Status history (1 event)
- new → available · risk review · score 12 · status changed
Evidence
Static findings
4 static · 0 from release diff · showing high-signal first.
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| medium | Remote Payload | package/lib/mcp-manager.mjs | matched "curl " | 12 |
| medium | Remote Payload | package/lib/runtime/uv-bootstrap.mjs | matched "curl " | 12 |
| medium | Remote Payload | package/templates/distribution/bootstrap.sh | matched "curl " | 12 |
Show all 4 findings (low-signal and informational)
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| medium | Remote Payload | package/lib/mcp-manager.mjs | matched "curl " | 12 |
| medium | Remote Payload | package/lib/runtime/uv-bootstrap.mjs | matched "curl " | 12 |
| medium | Remote Payload | package/templates/distribution/bootstrap.sh | matched "curl " | 12 |
| low | Install-time lifecycle script | package.json | postinstall="node ./bin/construct-postinstall.mjs" | 5 |
Manifest
Package metadata
Scripts27
audit:publishednode scripts/audit-published-artifact.mjsbuild:seaesbuild bin/construct --bundle --platform=node --target=node20 --packages=external --outfile=dist/construct-bundle.cjs 2>&1 || (echo 'esbuild not found — install with: npm install -g esbuild' && exit 1)coveragec8 --reporter=text-summary --reporter=lcov --src=lib --src=bin node scripts/run-tests.mjs --exclude=tests/functionaldocs:buildnpm --prefix apps/docs run builddocs:devnpm --prefix apps/docs run devdocs:initnode lib/init-docs.mjs --yesdocs:sitenode ./bin/construct docs:sitedocs:updatenode ./bin/construct docs:updateeval:routingnode scripts/eval/score-intent-classifier.mjslearning:statusnode scripts/learning-status.mjslint:agentsnode ./bin/construct lint:agentslint:commentsnode ./bin/construct lint:commentslint:contractsnode ./bin/construct lint:contractslint:jseslint bin/construct "lib/**/*.mjs" "scripts/**/*.mjs" "tests/**/*.mjs"lint:profilesnode scripts/lint-profiles.mjslint:templatesnode scripts/lint-commits-pr.mjsmcpnode lib/mcp/server.mjsnpm:publishnpm run release:check && npm publish --access publicpostinstallnode ./bin/construct-postinstall.mjsrelease:checknode ./bin/construct doctor && npm test && node ./bin/construct docs:update --check && node ./bin/construct dashboard:sync --check && node ./bin/construct lint:comments && node scripts/lint-commits-pr.mjsrelease:gatenode --test tests/functional/release-gate.functional.test.mjsrelease:preflightnode scripts/pre-release-check.mjsrelease:preflight:no-authnode scripts/pre-release-check.mjs --skip-authtestnode scripts/run-tests.mjstest:functionalnode --test --test-timeout=120000 --test-concurrency=1 tests/functional/*.functional.test.mjstest:unitnode scripts/run-tests.mjs --exclude=tests/functionalversionnode scripts/sync-construct-version.mjs && git add .construct/version
Dependencies4
@lancedb/lancedb^0.30.0@modelcontextprotocol/sdk^1.12.0apache-arrow^18.1.0js-yaml^4.2.0
Optional dependencies7
@huggingface/transformers^4.2.0@opentelemetry/api^1.9.0@opentelemetry/core^2.7.1@opentelemetry/exporter-trace-otlp-http^0.218.0@opentelemetry/resources^2.7.1@opentelemetry/sdk-trace-node^1.25.0@opentelemetry/semantic-conventions^1.25.0