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
- 1,209
- First published
- Feb 2026
- Publisher
- jkheadley
Recommended action
Block this updateStatic evidence trips multiple high-signal indicators. Quarantine the release until the publisher validates the change or you can rule out the indicators below.
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":"high"}'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":"high"}'Why flagged
What the scanner saw
Remote Payload: matched "api.telegram.org/bot"
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 high · score 155 · status changed
Evidence
Static findings
21 static · 0 from release diff · showing high-signal first.
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| medium | Remote Payload | package/dist/commands/setup-wizard/codex-driver.js | matched "api.telegram.org/bot" | 12 |
| medium | Remote Payload | package/dist/commands/setup-wizard/gemini-driver.js | matched "api.telegram.org/bot" | 12 |
| medium | Remote Payload | package/dist/core/Prerequisites.js | matched "curl " | 12 |
| medium | Remote Payload | package/dist/commands/setup.js | matched "api.telegram.org/bot" | 12 |
| medium | Remote Payload | package/dist/messaging/TelegramAdapter.js | matched "api.telegram.org/bot" | 12 |
| medium | Remote Payload | package/dist/lifeline/TelegramLifeline.js | matched "api.telegram.org/bot" | 12 |
| medium | Remote Payload | package/src/templates/hooks/compaction-recovery.sh | matched "curl " | 12 |
| medium | Remote Payload | package/src/templates/hooks/session-start.sh | matched "curl " | 12 |
| medium | Remote Payload | package/src/templates/hooks/slack-channel-context.sh | matched "curl " | 12 |
| medium | Remote Payload | package/src/templates/hooks/telegram-topic-context.sh | matched "curl " | 12 |
Show all 21 findings (low-signal and informational)
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| medium | Remote Payload | package/dist/commands/setup-wizard/codex-driver.js | matched "api.telegram.org/bot" | 12 |
| medium | Remote Payload | package/dist/commands/setup-wizard/gemini-driver.js | matched "api.telegram.org/bot" | 12 |
| medium | Remote Payload | package/dist/core/Prerequisites.js | matched "curl " | 12 |
| medium | Remote Payload | package/dist/commands/setup.js | matched "api.telegram.org/bot" | 12 |
| medium | Remote Payload | package/dist/messaging/TelegramAdapter.js | matched "api.telegram.org/bot" | 12 |
| medium | Remote Payload | package/dist/lifeline/TelegramLifeline.js | matched "api.telegram.org/bot" | 12 |
| medium | Remote Payload | package/src/templates/hooks/compaction-recovery.sh | matched "curl " | 12 |
| medium | Remote Payload | package/src/templates/hooks/session-start.sh | matched "curl " | 12 |
| medium | Remote Payload | package/src/templates/hooks/slack-channel-context.sh | matched "curl " | 12 |
| medium | Remote Payload | package/src/templates/hooks/telegram-topic-context.sh | matched "curl " | 12 |
| low | Messenger Bot Endpoint | package/dist/commands/setup-wizard/codex-driver.js | matched "api.telegram.org/bot" — messenger-bot URL without exfil context (likely a notification handler) | 5 |
| low | Credential file access | package/dist/core/FileClassifier.js | matched "id_rsa" | 5 |
| low | Credential file access | package/dist/server/fileRoutes.js | matched "id_rsa" | 5 |
| low | Messenger Bot Endpoint | package/dist/commands/setup-wizard/gemini-driver.js | matched "api.telegram.org/bot" — messenger-bot URL without exfil context (likely a notification handler) | 5 |
| low | Credential file access | package/dist/providers/adapters/gemini-cli/transport/geminiSpawn.js | matched "GOOGLE_APPLICATION_CREDENTIALS" | 5 |
| low | Credential file access | package/dist/monitoring/scrubSecrets.js | matched "AWS_ACCESS_KEY" | 5 |
| low | Messenger Bot Endpoint | package/dist/commands/setup.js | matched "api.telegram.org/bot" — messenger-bot URL without exfil context (likely a notification handler) | 5 |
| low | Messenger Bot Endpoint | package/dist/messaging/TelegramAdapter.js | matched "api.telegram.org/bot" — messenger-bot URL without exfil context (likely a notification handler) | 5 |
| low | Messenger Bot Endpoint | package/dist/lifeline/TelegramLifeline.js | matched "api.telegram.org/bot" — messenger-bot URL without exfil context (likely a notification handler) | 5 |
| low | Messenger Bot Endpoint | package/dist/commands/test-as-self.js | matched "api.telegram.org/bot" — messenger-bot URL without exfil context (likely a notification handler) | 5 |
| low | Install-time lifecycle script | package.json | postinstall="node scripts/fix-better-sqlite3.cjs" | 5 |
Manifest
Package metadata
Scripts33
buildnode scripts/generate-builtin-manifest.cjs && tsc && chmod 0755 dist/cli.js && node scripts/sign-instar-lockfile.mjscheck:contract-evidencenode scripts/check-contract-evidence.jscheck:pre-push-gatenode scripts/pre-push-gate.jscheck:releasenode scripts/analyze-release.jscheck:upgrade-guidenode scripts/check-upgrade-guide.jscleanrm -rf distdevtsc --watchgenerate:manifestnode scripts/generate-builtin-manifest.cjslinttsc --noEmit && node scripts/lint-no-direct-destructive.js && node scripts/lint-no-direct-llm-http.js && node scripts/lint-no-direct-url-log.js && node scripts/lint-no-unfunneled-topic-creation.js && node scripts/lint-no-unfunneled-headless-launch.js && node scripts/lint-no-unfunneled-credential-write.js && node scripts/lint-state-registry.js && node scripts/lint-cas-emit-placement.js && node scripts/lint-journal-actuation-ban.js && node scripts/lint-no-blocking-process-scans.js && node scripts/lint-dev-agent-dark-gate.js && node scripts/lint-guard-manifest.js && node scripts/lint-llm-attribution.js && node scripts/lint-no-mainthread-cartographer-walk.js && node scripts/check-codex-rule1-drift.jslint:credential-writenode scripts/lint-no-unfunneled-credential-write.jslint:credential-write:stagednode scripts/lint-no-unfunneled-credential-write.js --stagedlint:destructivenode scripts/lint-no-direct-destructive.jslint:destructive:stagednode scripts/lint-no-direct-destructive.js --stagedlint:dev-agent-dark-gatenode scripts/lint-dev-agent-dark-gate.jslint:dev-agent-dark-gate:stagednode scripts/lint-dev-agent-dark-gate.js --stagedlint:guard-manifestnode scripts/lint-guard-manifest.jslint:llm-attributionnode scripts/lint-llm-attribution.jslint:llm-attribution:stagednode scripts/lint-llm-attribution.js --stagedlint:llm-httpnode scripts/lint-no-direct-llm-http.jslint:llm-http:stagednode scripts/lint-no-direct-llm-http.js --stagedpostinstallnode scripts/fix-better-sqlite3.cjspreparehuskyprepublishOnlynpm run build && npm run check:upgrade-guide && npm run check:contract-evidencetestvitest runtest:allvitest run && vitest run --config vitest.integration.config.ts && vitest run --config vitest.e2e.config.tstest:contractnode scripts/run-contract-tests.jstest:contract:rawvitest run --config vitest.contract.config.tstest:e2evitest run --config vitest.e2e.config.tstest:flakyvitest run tests/unit/relationship-routes.test.ts tests/integration/messaging-routes.test.ts tests/integration/whatsapp-routes.test.ts tests/unit/server.test.ts tests/e2e/semantic-memory-lifecycle.test.ts tests/e2e/system-reviewer-e2e.test.ts tests/e2e/working-memory-lifecycle.test.ts tests/e2e/messaging-multi-agent.test.tstest:integrationvitest run --config vitest.integration.config.ts- …and 3 more.
Dependencies21
@a2a-js/sdk^0.3.10@huggingface/transformers^3.8.1@inquirer/prompts^8.2.1@modelcontextprotocol/sdk^1.27.1@noble/ciphers^2.1.1@noble/hashes^2.0.1@scure/bip39^2.0.1@types/js-yaml^4.0.9better-sqlite3^12.8.0cloudflared^0.7.1commander^12.0.0croner^8.0.0express^4.18.0js-yaml^4.1.1marked^17.0.5moltbridge^0.1.6picocolors^1.0.0proper-lockfile^4.1.2telegram^2.26.22ws^8.19.0zod^4.3.6
Optional dependencies2
baileys^7.0.0-rc.9sqlite-vec^0.1.6