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":["@respira/[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":["@respira/[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 24 · status changed
Evidence
Static findings
5 static · 0 from release diff · showing high-signal first.
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| medium | Remote Payload | package/dist/wordpress-client.js | matched "curl " | 12 |
Show all 5 findings (low-signal and informational)
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| medium | Remote Payload | package/dist/wordpress-client.js | matched "curl " | 12 |
| low | Obfuscation | package/dist/config.js | matched "Buffer.from(encoded, 'base64" | 3 |
| low | Obfuscation | package/dist/server.js | matched "\\u003c" | 3 |
| low | Obfuscation | package/dist/setup.js | matched "\\x1b" | 3 |
| low | Obfuscation | package/dist/wordpress-client.js | matched "Buffer.from(matches[2], 'base64" | 3 |
Manifest
Package metadata
Scripts11
buildnpm run bundle-skills && tscbundle-skillsnode -e "const fs=require('fs'),path=require('path');const src=path.join(__dirname,'..','plugins','respira-wordpress','skills');const dst=path.join(__dirname,'skills');if(!fs.existsSync(src))process.exit(0);fs.rmSync(dst,{recursive:true,force:true});fs.mkdirSync(dst,{recursive:true});for(const e of fs.readdirSync(src,{withFileTypes:true})){if(!e.isDirectory())continue;const s=path.join(src,e.name);const d=path.join(dst,e.name);fs.mkdirSync(d,{recursive:true});for(const f of fs.readdirSync(s,{withFileTypes:true})){if(f.isDirectory())continue;fs.copyFileSync(path.join(s,f.name),path.join(d,f.name));}}console.log('bundled '+fs.readdirSync(dst).length+' skills from plugins/respira-wordpress/skills/');"check:registry-paritynode ../scripts/check-tool-registry-parity.mjscleanrm -rf dist skillsdevtsc && node dist/index.jsformatprettier --write "src/**/*.ts"linteslint src --ext .tssetupnode dist/setup.js --setupstartnode dist/index.jstesttsc && node --test dist/__tests__/watchtsc --watch
Dependencies6
@iarna/toml^2.2.5@modelcontextprotocol/sdk^1.29.0@sentry/node^10.25.0axios^1.15.0dotenv^16.3.1form-data^4.0.0