PkgRadar

Package evidence

@cangjielang/[email protected]

Obfuscation Density: high encoded/escaped-token density

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
2,245Niche · −30% score
Versions published
29
First published
May 2026
Publisher
ousc

Effective trust discount applied: 30% (max across signals — discounts don’t stack). New install-lifecycle deltas vs the previous release would clear the discount.

Recommended action

Review before promoting

Mixed 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":["@cangjielang/[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":["@cangjielang/[email protected]"],"fail_on":"review"}'
Publisherousc
Artifact bytes46,634,283
Previous version1.0.0-beta.26
Published2026-05-22T08:26:27.198Z
SHA-256e4214e2a08fcbef2e12ed9cdd2f38d76d70b1bdbc6ff554102a008c6e75b29df

Why flagged

What the scanner saw

Obfuscation Density: high encoded/escaped-token density

Not observed: package install, lifecycle script execution, or sandbox execution. PkgRadar only inspects on-disk artifacts.

Availability ledger

available

review
Last checked
reviewRisk
161Score
1.0.0-beta.27Version
Status history (2 events)
  1. availableavailable · risk review · score 161 · status available -> available, risk high -> review, score 1509 -> 161
  2. newavailable · risk high · score 1509 · status changed

Evidence

Static findings

316 static · 0 from release diff · showing high-signal first.

SeverityKindPathDetailPoints
mediumObfuscation Densitypackage/.next/server/chunks/ssr/_eba1ff4d._.jshigh encoded/escaped-token density12
mediumObfuscation Densitypackage/.next/static/chunks/03b2bc163081e892.jshigh encoded/escaped-token density12
mediumObfuscation Densitypackage/.next/static/chunks/0bd41f0cb6103de0.jshigh encoded/escaped-token density12
mediumRemote Payloadpackage/.next/static/chunks/575a6057f2824e16.jsmatched "curl "12
mediumObfuscation Densitypackage/.next/static/chunks/e13f11148ad77436.jshigh encoded/escaped-token density12
mediumRemote Payloadpackage/.next/static/chunks/fea6682ebdf786e0.jsmatched "curl "12
mediumObfuscation Densitypackage/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-4TB4RGXK_mjs_6ad0b29a._.jshigh encoded/escaped-token density12
mediumObfuscation Densitypackage/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_flowDiagram-DWJPFMVM_mjs_f3a7d7e1._.jshigh encoded/escaped-token density12
mediumRemote Payloadpackage/.next/server/chunks/ssr/src_app_account_channels_page_tsx_3929d9bd._.jsmatched "curl "12
mediumRemote Payloadpackage/.next/server/chunks/ssr/src_app_api-docs_page_tsx_7af92e08._.jsmatched "curl "12
mediumRemote Payloadpackage/.next/server/chunks/ssr/src_app_engines_page_tsx_8cee74ce._.jsmatched "curl "12
mediumLarge Javascript Payloadpackage/.next/static/chunks/0ac0bedebff63a59.js3379064 bytes10
mediumLarge Javascript Payloadpackage/.next/static/chunks/66e82fb7fe171287.js6665242 bytes10
Show all 316 findings (low-signal and informational)

Showing 60 of 316 findings.

SeverityKindPathDetailPoints
mediumObfuscation Densitypackage/.next/server/chunks/ssr/_eba1ff4d._.jshigh encoded/escaped-token density12
mediumObfuscation Densitypackage/.next/static/chunks/03b2bc163081e892.jshigh encoded/escaped-token density12
mediumObfuscation Densitypackage/.next/static/chunks/0bd41f0cb6103de0.jshigh encoded/escaped-token density12
mediumRemote Payloadpackage/.next/static/chunks/575a6057f2824e16.jsmatched "curl "12
mediumObfuscation Densitypackage/.next/static/chunks/e13f11148ad77436.jshigh encoded/escaped-token density12
mediumRemote Payloadpackage/.next/static/chunks/fea6682ebdf786e0.jsmatched "curl "12
mediumObfuscation Densitypackage/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-4TB4RGXK_mjs_6ad0b29a._.jshigh encoded/escaped-token density12
mediumObfuscation Densitypackage/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_flowDiagram-DWJPFMVM_mjs_f3a7d7e1._.jshigh encoded/escaped-token density12
mediumRemote Payloadpackage/.next/server/chunks/ssr/src_app_account_channels_page_tsx_3929d9bd._.jsmatched "curl "12
mediumRemote Payloadpackage/.next/server/chunks/ssr/src_app_api-docs_page_tsx_7af92e08._.jsmatched "curl "12
mediumRemote Payloadpackage/.next/server/chunks/ssr/src_app_engines_page_tsx_8cee74ce._.jsmatched "curl "12
mediumLarge Javascript Payloadpackage/.next/static/chunks/0ac0bedebff63a59.js3379064 bytes10
mediumLarge Javascript Payloadpackage/.next/static/chunks/66e82fb7fe171287.js6665242 bytes10
lowCredential file accesspackage/.next/static/chunks/0eac975ccdf70b0a.jsmatched ".ssh"5
lowCredential file accesspackage/.next/static/chunks/da55416a699642f3.jsmatched ".ssh"5
lowObfuscationpackage/.next/server/chunks/_00ad0baf._.jsmatched "fromCharCode"3
lowObfuscationpackage/.next/server/chunks/_05bfdf43._.jsmatched "fromCharCode"3
lowObfuscationpackage/.next/server/chunks/ssr/_06d17dc1._.jsmatched "\\xb7"3
lowObfuscationpackage/.next/server/chunks/ssr/_1117d82b._.jsmatched "\\xb7"3
lowObfuscationpackage/.next/server/chunks/_1bd600e0._.jsmatched "fromCharCode"3
lowObfuscationpackage/.next/server/chunks/ssr/_29c032b7._.jsmatched "\\xb7"3
lowObfuscationpackage/.next/server/chunks/ssr/_43f61e07._.jsmatched "\\xb7"3
lowObfuscationpackage/.next/server/chunks/_4b122fca._.jsmatched "fromCharCode"3
lowObfuscationpackage/.next/server/chunks/ssr/_5925a59a._.jsmatched "\\xb7"3
lowObfuscationpackage/.next/server/chunks/ssr/_5cd491f5._.jsmatched "\\x00"3
lowObfuscationpackage/.next/server/chunks/ssr/_60f85be8._.jsmatched "\\xb7"3
lowObfuscationpackage/.next/server/chunks/ssr/_69cc75a6._.jsmatched "\\xb7"3
lowObfuscationpackage/.next/server/chunks/_6bd0294c._.jsmatched "\\uFEFF"3
lowObfuscationpackage/.next/server/chunks/ssr/_7722c89d._.jsmatched "\\xb7"3
lowObfuscationpackage/.next/server/chunks/ssr/_78f9f8d1._.jsmatched "\\x00"3
lowObfuscationpackage/.next/server/chunks/ssr/_78fcbfcc._.jsmatched "\\xb7"3
lowObfuscationpackage/.next/server/chunks/_8043a737._.jsmatched "fromCharCode"3
lowObfuscationpackage/.next/server/chunks/ssr/_83c34729._.jsmatched "\\xb7"3
lowObfuscationpackage/.next/server/chunks/ssr/_8a5c2b33._.jsmatched "\\xb7"3
lowObfuscationpackage/.next/server/chunks/ssr/_943439f3._.jsmatched "\\xb7"3
lowObfuscationpackage/.next/server/chunks/_96c367e7._.jsmatched "\\uFEFF"3
lowObfuscationpackage/.next/server/chunks/ssr/_97dcd4e6._.jsmatched "\\u2028"3
lowObfuscationpackage/.next/server/chunks/_9b0ef33f._.jsmatched "\\x00"3
lowObfuscationpackage/.next/server/chunks/_a99c83c4._.jsmatched "\\u4e00"3
lowObfuscationpackage/.next/server/chunks/ssr/_acee14e1._.jsmatched "\\xb7"3
lowObfuscationpackage/.next/server/chunks/_cd3cae6b._.jsmatched "\\uFEFF"3
lowObfuscationpackage/.next/server/chunks/ssr/_dbd40f1b._.jsmatched "\\xb7"3
lowObfuscationpackage/.next/server/chunks/ssr/_de4fe0a7._.jsmatched "\\xb7"3
lowObfuscationpackage/.next/server/chunks/ssr/_e4269c0f._.jsmatched "\\xb7"3
lowObfuscationpackage/.next/server/chunks/ssr/_e68ece59._.jsmatched "\\xb7"3
lowObfuscationpackage/.next/server/chunks/ssr/_eba1ff4d._.jsmatched "\\x3c"3
lowObfuscationpackage/.next/server/chunks/_f505ed90._.jsmatched "\\x00"3
lowObfuscationpackage/.next/server/chunks/[root-of-the-server]__00274b5b._.jsmatched "\\u4e00"3
lowObfuscationpackage/.next/server/chunks/[root-of-the-server]__00c6a178._.jsmatched "\\u0000"3
lowObfuscationpackage/.next/server/chunks/[root-of-the-server]__064dd08e._.jsmatched "\\u0000"3
lowObfuscationpackage/.next/server/chunks/ssr/[root-of-the-server]__088b3fd0._.jsmatched "\\u0000"3
lowObfuscationpackage/.next/server/chunks/ssr/[root-of-the-server]__158a47e9._.jsmatched "\\xb7"3
lowObfuscationpackage/.next/server/chunks/ssr/[root-of-the-server]__1b921019._.jsmatched "\\x20"3
lowObfuscationpackage/.next/server/chunks/[root-of-the-server]__1f1bd2dd._.jsmatched "\\uFEFF"3
lowObfuscationpackage/.next/server/chunks/[root-of-the-server]__3026ce34._.jsmatched "\\x1b"3
lowObfuscationpackage/.next/server/chunks/ssr/[root-of-the-server]__3fb74832._.jsmatched "\\u0000"3
lowObfuscationpackage/.next/server/chunks/[root-of-the-server]__4164ab32._.jsmatched "\\u4e00"3
lowObfuscationpackage/.next/server/chunks/[root-of-the-server]__4a5d6a90._.jsmatched "\\u4e00"3
lowObfuscationpackage/.next/server/chunks/[root-of-the-server]__503ad694._.jsmatched "\\u4e00"3
lowObfuscationpackage/.next/server/chunks/[root-of-the-server]__564bf5b1._.jsmatched "\\u0000"3

Manifest

Package metadata

Scripts26
  • acenode ./bin/ace.js
  • buildnpm run build:cli && next build
  • build:clinode scripts/build-cli.js
  • check:acpnode ./scripts/check-acp-connectivity.mjs
  • check:batch-reportnode ./scripts/check-batch-report.cjs
  • check:clarification-qanode ./scripts/check-clarification-qa.cjs
  • check:engine-chatnode ./scripts/check-engine-chat.cjs
  • check:enginesnode ./scripts/check-engine-availability.mjs
  • check:spec-codingnode ./scripts/check-spec-coding.cjs
  • check:spec-then-workflownode ./scripts/check-spec-then-workflow.cjs
  • check:workflow-creatornode ./scripts/check-workflow-creator.cjs
  • cleannode -e "const fs=require('fs'); for (const p of ['dist','.next','dist-build']) fs.rmSync(p,{recursive:true,force:true});"
  • devnpm run build:cli && node server.js dev
  • linteslint . --cache
  • lint:fixeslint . --cache --fix
  • prepacknpm run build && npm run prune:package-maps
  • preparenode scripts/build-cli.js
  • prune:package-mapsnode scripts/prune-package-maps.js
  • publish:betanpm run build && npm publish --tag beta
  • publish:npmnpm run build && npm publish
  • startnode server.js start
  • testvitest run
  • test:componentsvitest run tests/components --environment jsdom
  • wechat:officialnode -r ts-node/register -r tsconfig-paths/register scripts/wechat-official.ts
  • wechat:qr-testnode scripts/wechat-qr-test-runner.mjs
  • wechat:relaynode scripts/wechat-bridge-relay.mjs
Dependencies112
  • @agentclientprotocol/claude-agent-acp0.36.1
  • @agentclientprotocol/sdk0.22.1
  • @anthropic-ai/claude-agent-sdk0.3.146
  • @anthropic-ai/sdk^0.97.1
  • @aws-sdk/client-s3^3.1049.0
  • @base-ui/react^1.3.0
  • @dnd-kit/core^6.3.1
  • @dnd-kit/sortable^10.0.0
  • @dnd-kit/utilities^3.2.2
  • @hookform/resolvers^3.3.0
  • @modelcontextprotocol/sdk^1.29.0
  • @monaco-editor/react^4.7.0
  • @openai/codex-sdk0.130.0
  • @opencode-ai/sdk^1.14.50
  • @radix-ui/react-alert-dialog^1.1.15
  • @radix-ui/react-checkbox^1.3.3
  • @radix-ui/react-collapsible^1.1.12
  • @radix-ui/react-context-menu^2.2.16
  • @radix-ui/react-dialog^1.1.15
  • @radix-ui/react-dropdown-menu^2.1.16
  • @radix-ui/react-hover-card^1.1.15
  • @radix-ui/react-label^2.1.8
  • @radix-ui/react-progress^1.1.8
  • @radix-ui/react-scroll-area^1.2.10
  • @radix-ui/react-select^2.2.6
  • @radix-ui/react-separator^1.1.8
  • @radix-ui/react-slot^1.2.4
  • @radix-ui/react-switch^1.2.6
  • @radix-ui/react-tabs^1.1.13
  • @radix-ui/react-tooltip^1.2.8
  • …and 82 more.
Optional dependencies8
  • @anthropic-ai/claude-agent-sdk-darwin-arm640.3.146
  • @anthropic-ai/claude-agent-sdk-darwin-x640.3.146
  • @anthropic-ai/claude-agent-sdk-linux-arm640.3.146
  • @anthropic-ai/claude-agent-sdk-linux-arm64-musl0.3.146
  • @anthropic-ai/claude-agent-sdk-linux-x640.3.146
  • @anthropic-ai/claude-agent-sdk-linux-x64-musl0.3.146
  • @anthropic-ai/claude-agent-sdk-win32-arm640.3.146
  • @anthropic-ai/claude-agent-sdk-win32-x640.3.146