{"schemaVersion":2,"dataVersion":"20260822T105549Z-0a0b366f","generatedAt":"2026-08-22T10:55:49.138Z","source":{"id":"ghost011118-dsh-balance-meter","slug":"ghost011118-dsh-balance-meter","rank":185,"url":"https://github.com/Ghost011118/dsh-balance-meter","name":"Ghost011118/dsh-balance-meter","category":"usage","description":{"zh":"输入框 dock 显示 DeepSeek 账户余额与会话花费，自动拉取官方定价，支持高峰/低谷计价。","en":"DeepSeek account balance and session cost in the composer dock, with auto-fetched official pricing and peak/off-peak support."},"stars":19,"starsCheckedAt":"2026-08-21","repository":{"owner":"Ghost011118","repo":"dsh-balance-meter","requestedRef":null,"subpath":""},"npm":null,"downloads":null,"installMode":"github-source","upstreamInstall":"dsh plugin --profile web add github:Ghost011118/dsh-balance-meter","tarball":null,"added":"2026-08-14","page":"https://awesome-dsh-plugin.com/p/Ghost011118/dsh-balance-meter/","screenshots":[],"discovery":{"provider":"awesome-dsh-plugin","channel":"plugins.json","indexUrl":"https://github.com/awesome-dsh-plugin/awesome-dsh-plugin","selection":"all curated entries"}},"report":{"sourceId":"ghost011118-dsh-balance-meter","slug":"ghost011118-dsh-balance-meter","policyVersion":"HT-DSH-0.2.2","scannedAt":"2026-08-22T08:21:58.021Z","scanStatus":"static-complete","verdict":"caution","score":89,"commit":"1a277e8eb9ee5ebbf8589e6bbb96bfe9ac282c11","commitDate":"2026-08-20T19:34:08+08:00","artifactDigest":"sha256:e867c88355bf409de203d1b1004f4ccc4475024e8f4bef2a40d779ff1c16045f","downloadUrl":"https://github.com/Ghost011118/dsh-balance-meter/archive/1a277e8eb9ee5ebbf8589e6bbb96bfe9ac282c11.tar.gz","installMode":"github-source","installCommand":"dsh plugin --profile web add github:Ghost011118/dsh-balance-meter","manifest":{"found":true,"path":"package.json","parseError":null,"packageName":"dsh-balance-meter","packageVersion":"0.1.0","bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-ui-slots","@deepseek-ai/dsh-client-ui-conversation"],"platform":"web"},"lifecycleScripts":{"prepare":"tsdown"},"peerDependencies":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-conversation","@deepseek-ai/dsh-client-ui-primitives","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-ui-slots","@deepseek-ai/dsh-credentials","@deepseek-ai/dsh-host-webserver","@deepseek-ai/dsh-invariants","@deepseek-ai/dsh-session","@deepseek-ai/dsh-settings","@deepseek-ai/dsh-token-meter","@deepseek-ai/dsh-llm","@deepseek-ai/schemastery"]},"identity":{"status":"found","installMode":"github-source","upstreamNpm":null,"manifestName":"dsh-balance-meter","nameMatch":null,"npm":{"name":"dsh-balance-meter","latestVersion":"0.1.0","publishedAt":"2026-08-13T19:16:54.107Z","createdAt":"2026-08-13T19:16:53.847Z","versionCount":1,"maintainers":1,"repository":"git+https://github.com/zhu1090093659/dsh-web-ui.git","hasInstallScripts":false,"deprecated":false},"repositoryMatch":"mismatch","provenance":"none","tarballHost":null,"versionMatch":"match"},"permissions":{"bundlePatch":"cordis.patch.yml","inserts":[{"id":"balance","name":"dsh-balance-meter","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":12},{"host":"api-docs.deepseek.com","count":4}],"findings":[{"id":"HT-INSTALL-002","title":"Git 安装会触发 prepare 构建脚本","severity":"medium","confidence":"medium","layer":"supply-chain","path":"package.json","pathClass":"manifest","line":14,"evidence":"\"prepare\": \"tsdown\"","remediation":"发布预构建制品（npm 或 GitHub Release tarball），并记录源码与发布包的一致性证明。","note":"源码安装需用户在 allowBuilds 中授权，此脚本会在安装期于用户机器执行","hash":"810168c20b99e01213acbe59"},{"id":"HT-DATA-001","title":"同一模块同时接触凭据与网络","severity":"medium","confidence":"medium","layer":"static","path":"lib/service-0HLcoHHI.js","pathClass":"source","line":773,"evidence":"credential access at line 773 + outbound network at line 736","remediation":"拆分能力边界，限定目的域名，并提供不会发送凭据值的可验证证明。","hash":"91e007a7651888624bcd7503","review":{"verdict":"functional","reason":"resolveApiKey通过credentials.resolve(this.apiKeyEnv)取得用户自己配置的API Key后立即用于Bearer头请求该Key所属服务商的余额接口，属于余额查询插件的核心功能。","model":"sonnet@p2","reviewedAt":"2026-08-21T11:21:23.528Z"}},{"id":"HT-DATA-001","title":"同一模块同时接触凭据与网络","severity":"medium","confidence":"medium","layer":"static","path":"lib/types/service.js","pathClass":"source","line":642,"evidence":"credential access at line 642 + outbound network at line 600","remediation":"拆分能力边界，限定目的域名，并提供不会发送凭据值的可验证证明。","hash":"b823e144eaf6c1ab02b0346d","review":{"verdict":"functional","reason":"与91e0相同的编译产物(lib/types/service.js)，credentials.resolve取用户已配置密钥仅用于向对应服务商拉取余额，未见外发到第三方地址。","model":"sonnet@p2","reviewedAt":"2026-08-21T11:21:23.528Z"}},{"id":"HT-DATA-001","title":"同一模块同时接触凭据与网络","severity":"medium","confidence":"medium","layer":"static","path":"src/service.ts","pathClass":"source","line":825,"evidence":"credential access at line 825 + outbound network at line 784","remediation":"拆分能力边界，限定目的域名，并提供不会发送凭据值的可验证证明。","hash":"4a65d5d814c3e6b51eb72060","review":{"verdict":"functional","reason":"该hash为对应的TypeScript源码(src/service.ts)，与前两条为同一逻辑的三种构建形态，凭据仅用于访问用户自身账户的余额API，符合插件宣称功能。","model":"sonnet@p2","reviewedAt":"2026-08-21T11:21:23.528Z"}},{"id":"HT-IDENTITY-001","title":"npm 上存在同名包但指向其他仓库","severity":"low","confidence":"medium","path":"package.json","pathClass":"manifest","line":1,"evidence":"npm repository=git+https://github.com/zhu1090093659/dsh-web-ui.git ≠ ghost011118/dsh-balance-meter","remediation":"npm 上存在同名包但指向其它仓库；从源码安装时请使用 github: 引用并锁定 commit。","layer":"identity","hash":"dbffe03125ef74ceab9602ff"}],"counts":{"critical":0,"high":0,"medium":4,"low":1},"rawCounts":{"critical":0,"high":0,"medium":4,"low":1},"vulnerabilities":[],"coverage":{"source":"complete","manifest":"complete","bundleConfig":"complete","dependencies":"lockfile-missing","vulnerabilities":"lockfile-missing","identity":"complete","artifact":"not-compared","llmReview":"complete","dynamicRuntime":"not-run","humanReview":"not-run"},"inventory":{"filesScanned":44,"bytesScanned":272159,"truncated":false,"lockfiles":[],"pathClasses":{"markdown":2,"cordis":1,"source":37,"manifest":1,"test-example-docs":1,"data":2}},"limitations":["此结果为源码静态检测，不等同于无漏洞证明。","尚未比对 npm 发布包与源码的一致性，也未执行隔离运行和人工复核。","危险能力可能是插件功能所需，需结合用途与证据人工判断。"],"limitationKeys":["static-analysis-only","no-artifact-runtime-human-review","capability-needs-context"],"review":{"model":"sonnet","reviewedAt":"2026-08-22T08:21:58.021Z","summary":null,"intentMatch":null,"findingsReviewed":3,"findingsCandidates":3,"fromCache":3,"usage":null}},"timeline":[{"scannedAt":"2026-08-22T08:21:58.021Z","commit":"1a277e8eb9ee5ebbf8589e6bbb96bfe9ac282c11","policyVersion":"HT-DSH-0.2.2","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T11:21:23.528Z","commit":"1a277e8eb9ee5ebbf8589e6bbb96bfe9ac282c11","policyVersion":"HT-DSH-0.2.1","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T10:49:26.258Z","commit":"1a277e8eb9ee5ebbf8589e6bbb96bfe9ac282c11","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":"1a277e8eb9ee5ebbf8589e6bbb96bfe9ac282c11","policyVersion":"HT-DSH-0.2.2","at":"2026-08-22T08:21:58.021Z"},{"kind":"policy-change","from":"HT-DSH-0.2.0","to":"HT-DSH-0.2.1","commit":"1a277e8eb9ee5ebbf8589e6bbb96bfe9ac282c11","policyVersion":"HT-DSH-0.2.1","at":"2026-08-21T11:21:23.528Z"},{"kind":"first-scan","from":null,"to":"caution","commit":"1a277e8eb9ee5ebbf8589e6bbb96bfe9ac282c11","policyVersion":"HT-DSH-0.2.0","at":"2026-08-21T10:49:26.258Z"}]}