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.
- Versions published
- 2
- First published
- Jun 2026
- Publisher
- weichen74_org
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":["[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":["[email protected]"],"fail_on":"review"}'Why flagged
What the scanner saw
Credential file access: matched ".ssh/"
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 16 · status changed
Evidence
Static findings
4 static · 0 from release diff · showing high-signal first.
No high-signal findings — see all findings below.
Show all 4 findings (low-signal and informational)
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| low | Credential file access | package/dist/security/tool-guard/file-guardian.js | matched ".ssh/" | 5 |
| low | Credential file access | package/dist/agent/read-binary-guard.js | matched ".npmrc" | 5 |
| low | Credential file access | package/dist/security/rules/skill-scanner/data_exfiltration.yaml | matched ".aws/" | 3 |
| low | Credential file access | package/dist/security/rules/default_policy.yaml | matched ".npmrc" | 3 |
Manifest
Package metadata
Scripts17
api:devnpm run sync:settings && tsx watch src/api/server.tsapi:startnpm run sync:settings && npm run gateway:build && node dist/api/server.jsbuildnpm run sync:settings:build && tsc -p tsconfig.build.json && node -e "const fs=require('fs'),path=require('path');function cp(src,dst){if(!fs.existsSync(dst))fs.mkdirSync(dst,{recursive:true});for(const f of fs.readdirSync(src)){const s=path.join(src,f),d=path.join(dst,f);fs.statSync(s).isDirectory()?cp(s,d):fs.copyFileSync(s,d)} }cp('src/security/rules','dist/security/rules');console.log('Copied security rules to dist/')" && npm run build:toolsbuild:toolsnode -e "const{execSync}=require('child_process'),fs=require('fs'),path=require('path');const srcDir=path.join(__dirname,'tools');const outDir=path.join(__dirname,'tools-built');execSync('npx -p typescript tsc --module node16 --target es2022 --moduleResolution node16 --esModuleInterop --skipLibCheck --outDir tools-built --rootDir tools tools/pdf-to-markdown/index.ts tools/image-to-markdown/index.ts --noEmit false --declaration false',{cwd:__dirname,stdio:'inherit'});for(const sub of['_shared','image-to-markdown','pdf-to-markdown']){cpDir(path.join(outDir,sub),path.join(srcDir,sub))}fs.rmSync(outDir,{recursive:true,force:true});console.log('Tools compiled to JS');function cpDir(s,d){fs.mkdirSync(d,{recursive:true});for(const f of fs.readdirSync(s)){const sp=path.join(s,f),dp=path.join(d,f);fs.statSync(sp).isDirectory()?cpDir(sp,dp):fs.copyFileSync(sp,dp)}}"debug:confignpm run sync:settings && tsx debug-config.tsdevnpm run sync:settings && node --import tsx/esm src/cli.tsgateway:buildnpm run sync:settings && tsc -p tsconfig.build.jsongateway:devnpm run sync:settings && tsx watch src/gateway.tsgateway:prodnpm run sync:settings && npm run gateway:build && npm run gateway:startgateway:startnpm run sync:settings && node dist/gateway.jsstartnpm run sync:settings && node dist/cli.jssync:settingstsx src/scripts/sync-settings.tssync:settings:buildtsx src/scripts/sync-settings.ts --overwrite-soultestnpm run sync:settings && vitest runtest:watchnpm run sync:settings && vitesttypechecknpm run sync:settings && tsc --noEmitwechat:confignpm run sync:settings && node src/channels/wechat-qr-login.mjs
Dependencies29
@earendil-works/pi-agent-core^0.74.0@earendil-works/pi-ai^0.74.0@earendil-works/pi-coding-agent^0.74.0@grpc/grpc-js^1.14.3@grpc/proto-loader^0.8.0@larksuiteoapi/node-sdk^1.62.0@mariozechner/pi-agent-core^0.63.1@mariozechner/pi-ai^0.63.1@mariozechner/pi-coding-agent^0.63.1@modelcontextprotocol/sdk^1.29.0@napi-rs/canvas^0.1.100agent-browser^0.22.3better-sqlite3^11.10.0chipzone-kernel-weichen74^0.1.4cors^2.8.6croner^9.1.0express^4.22.1js-yaml^4.1.1json5^2.2.3jszip^3.10.1mammoth^1.12.0multer^1.4.5-lts.1openai^6.34.0pdfjs-dist^5.6.205pino^9.14.0uuid^10.0.0ws^8.20.0xlsx^0.18.5zod^3.25.76