{"schemaVersion":2,"dataVersion":"20260822T105549Z-0a0b366f","generatedAt":"2026-08-22T10:55:49.138Z","source":{"id":"max-samson-dsh-usage-chart","slug":"max-samson-dsh-usage-chart","rank":272,"url":"https://github.com/Max-Samson/dsh-usage-chart","name":"Max-Samson/dsh-usage-chart","category":"usage","description":{"zh":"输入框下方的用量/成本/余额仪表盘：实时指标指示器 + 零依赖 SVG 用量图表，按轮次统计用量、估算成本并实时查询 DeepSeek 账户余额。","en":"Token, cost, and balance dashboard under the composer: live indicator plus zero-dependency SVG charts for per-turn usage, estimated cost, and DeepSeek account balance."},"stars":10,"starsCheckedAt":"2026-08-21","repository":{"owner":"Max-Samson","repo":"dsh-usage-chart","requestedRef":null,"subpath":""},"npm":"dsh-usage-chart","downloads":953,"installMode":"npm","upstreamInstall":"dsh plugin --profile web add dsh-usage-chart","tarball":null,"added":"2026-08-14","page":"https://awesome-dsh-plugin.com/p/Max-Samson/dsh-usage-chart/","screenshots":["https://github.com/Max-Samson/dsh-usage-chart/blob/main/docs/images/usage-panel-demo-en-lightv1.0.0.png","https://github.com/Max-Samson/dsh-usage-chart/blob/main/docs/images/usage-panel-demo-zh-darkv1.0.0.png"],"discovery":{"provider":"awesome-dsh-plugin","channel":"plugins.json","indexUrl":"https://github.com/awesome-dsh-plugin/awesome-dsh-plugin","selection":"all curated entries"}},"report":{"sourceId":"max-samson-dsh-usage-chart","slug":"max-samson-dsh-usage-chart","policyVersion":"HT-DSH-0.2.2","scannedAt":"2026-08-22T08:23:03.630Z","scanStatus":"static-complete","verdict":"caution","score":94,"commit":"8efd6ec4bd2f1662fd95b51e8a4bb9653e1ef84f","commitDate":"2026-08-17T23:02:15+08:00","artifactDigest":"sha256:a015c6e4bcf22a06b36ce91d72088588d81f939da3af9167758396f8e137648f","downloadUrl":"https://github.com/Max-Samson/dsh-usage-chart/archive/8efd6ec4bd2f1662fd95b51e8a4bb9653e1ef84f.tar.gz","installMode":"npm","installCommand":"dsh plugin --profile web add dsh-usage-chart","manifest":{"found":true,"path":"package.json","parseError":null,"packageName":"dsh-usage-chart","packageVersion":"1.0.1","bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-conversation","@deepseek-ai/dsh-client-ui-slots"],"platform":"web"},"lifecycleScripts":{"prepare":"node build.mjs"},"peerDependencies":["@deepseek-ai/cordis","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-conversation","@deepseek-ai/dsh-client-ui-slots"]},"identity":{"status":"found","installMode":"npm","upstreamNpm":"dsh-usage-chart","manifestName":"dsh-usage-chart","nameMatch":true,"npm":{"name":"dsh-usage-chart","latestVersion":"1.0.1","publishedAt":"2026-08-18T07:07:37.613Z","createdAt":"2026-08-14T10:04:33.751Z","versionCount":6,"maintainers":1,"repository":"git+https://github.com/Max-Samson/dsh-usage-chart.git","hasInstallScripts":false,"deprecated":false},"repositoryMatch":"match","provenance":"attested","tarballHost":null,"versionMatch":"match"},"permissions":{"bundlePatch":"cordis.patch.yml","inserts":[{"id":"dsh-usage-chart","name":"dsh-usage-chart","path":"cordis.patch.yml","disabled":false}],"overrides":[],"jsExpressions":0,"clientPlatform":"web","parseErrors":[]},"capabilities":["browser-ui","credentials","environment","filesystem","host-bundle","network","session","subprocess"],"outboundHosts":[{"host":"api.deepseek.com","count":2},{"host":"api-docs.deepseek.com","count":2},{"host":"open.er-api.com","count":1},{"host":"api.frankfurter.dev","count":1}],"findings":[{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"build.mjs","pathClass":"source","line":14,"evidence":"spawnSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"0a0f70bf260cbf60c2e84a00"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"build.mjs","pathClass":"source","line":14,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"b10cec21ffbcfa15144ca3c2"},{"id":"HT-INSTALL-002","title":"Git 安装会触发 prepare 构建脚本","severity":"medium","confidence":"low","layer":"supply-chain","path":"package.json","pathClass":"manifest","line":54,"evidence":"\"prepare\": \"node build.mjs\"","remediation":"发布预构建制品（npm 或 GitHub Release tarball），并记录源码与发布包的一致性证明。","note":"该插件以 npm/tarball 预构建方式分发，prepare 不在用户机器上执行","hash":"1960c8bb8637b95e5b3554d8"},{"id":"HT-RUNTIME-001","title":"动态代码执行","severity":"high","confidence":"low","layer":"static","path":"scripts/verify-render.mjs","pathClass":"source","line":41,"evidence":"eval(","remediation":"使用静态模块和受约束的配置解析器，避免在宿主权限下执行动态字符串。","note":"以方法或属性形式出现（如 x.eval），并非全局 eval","hash":"97d35fac797375283cc08743"},{"id":"HT-RUNTIME-001","title":"动态代码执行","severity":"high","confidence":"low","layer":"static","path":"scripts/verify-render.mjs","pathClass":"source","line":61,"evidence":"eval(","remediation":"使用静态模块和受约束的配置解析器，避免在宿主权限下执行动态字符串。","note":"以方法或属性形式出现（如 x.eval），并非全局 eval","hash":"97d35fac797375283cc08743"},{"id":"HT-DATA-001","title":"同一模块同时接触凭据与网络","severity":"medium","confidence":"medium","layer":"static","path":"src/index.ts","pathClass":"source","line":345,"evidence":"credential access at line 345 + outbound network at line 236","remediation":"拆分能力边界，限定目的域名，并提供不会发送凭据值的可验证证明。","hash":"ec09646ced2a4e3ebf525679","review":{"verdict":"functional","reason":"resolveApiKey 按配置/凭据服务/环境变量解析 DEEPSEEK_API_KEY，仅用于向用户配置的 config.baseUrl（官方 DeepSeek API）查询余额，属于插件声明的余额查询功能，凭据与网络访问未越权外发。","model":"sonnet@p2","reviewedAt":"2026-08-21T11:23:11.600Z"}}],"counts":{"critical":0,"high":0,"medium":1,"low":2},"rawCounts":{"critical":0,"high":2,"medium":2,"low":2},"vulnerabilities":[],"coverage":{"source":"complete","manifest":"complete","bundleConfig":"complete","dependencies":"lockfile-present","vulnerabilities":"complete","identity":"complete","artifact":"not-compared","llmReview":"complete","dynamicRuntime":"not-run","humanReview":"not-run"},"inventory":{"filesScanned":58,"bytesScanned":378076,"truncated":false,"lockfiles":["package-lock.json"],"pathClasses":{"test-example-docs":12,"markdown":11,"source":30,"cordis":1,"data":3,"manifest":1}},"limitations":["此结果为源码静态检测，不等同于无漏洞证明。","尚未比对 npm 发布包与源码的一致性，也未执行隔离运行和人工复核。","危险能力可能是插件功能所需，需结合用途与证据人工判断。"],"limitationKeys":["static-analysis-only","no-artifact-runtime-human-review","capability-needs-context"],"review":{"model":"sonnet","reviewedAt":"2026-08-22T08:23:03.630Z","summary":null,"intentMatch":null,"findingsReviewed":1,"findingsCandidates":1,"fromCache":1,"usage":null}},"timeline":[{"scannedAt":"2026-08-22T08:23:03.630Z","commit":"8efd6ec4bd2f1662fd95b51e8a4bb9653e1ef84f","policyVersion":"HT-DSH-0.2.2","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T11:23:11.600Z","commit":"8efd6ec4bd2f1662fd95b51e8a4bb9653e1ef84f","policyVersion":"HT-DSH-0.2.1","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T10:51:53.065Z","commit":"8efd6ec4bd2f1662fd95b51e8a4bb9653e1ef84f","policyVersion":"HT-DSH-0.2.0","verdict":"caution","status":"static-complete"}],"events":[{"kind":"policy-change","from":"HT-DSH-0.2.1","to":"HT-DSH-0.2.2","commit":"8efd6ec4bd2f1662fd95b51e8a4bb9653e1ef84f","policyVersion":"HT-DSH-0.2.2","at":"2026-08-22T08:23:03.630Z"},{"kind":"policy-change","from":"HT-DSH-0.2.0","to":"HT-DSH-0.2.1","commit":"8efd6ec4bd2f1662fd95b51e8a4bb9653e1ef84f","policyVersion":"HT-DSH-0.2.1","at":"2026-08-21T11:23:11.600Z"},{"kind":"first-scan","from":null,"to":"caution","commit":"8efd6ec4bd2f1662fd95b51e8a4bb9653e1ef84f","policyVersion":"HT-DSH-0.2.0","at":"2026-08-21T10:51:53.065Z"}]}