{"schemaVersion":2,"dataVersion":"20260822T105549Z-0a0b366f","generatedAt":"2026-08-22T10:55:49.138Z","source":{"id":"nonewind-dsh-spend","slug":"nonewind-dsh-spend","rank":372,"url":"https://github.com/nonewind/dsh-spend","name":"nonewind/dsh-spend","category":"usage","description":{"zh":"DSH Web 用量与费用统计插件：右下角悬浮窗，按模型/按天/按会话多维聚合与预计花费。","en":"Token usage and estimated spend for the dsh web UI: floating panel with per-model, per-day, and per-session stats."},"stars":7,"starsCheckedAt":"2026-08-21","repository":{"owner":"nonewind","repo":"dsh-spend","requestedRef":null,"subpath":""},"npm":"dsh-spend","downloads":2015,"installMode":"npm","upstreamInstall":"dsh plugin --profile web add dsh-spend","tarball":null,"added":"2026-08-14","page":"https://awesome-dsh-plugin.com/p/nonewind/dsh-spend/","screenshots":["https://raw.githubusercontent.com/nonewind/dsh-spend/main/docs/screenshots/dashboard.png","https://raw.githubusercontent.com/nonewind/dsh-spend/main/docs/screenshots/details-window.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":"nonewind-dsh-spend","slug":"nonewind-dsh-spend","policyVersion":"HT-DSH-0.2.2","scannedAt":"2026-08-22T08:24:16.452Z","scanStatus":"static-complete","verdict":"pass","score":100,"commit":"43fb7b08b2b38d3da9f09c0ac085720a4144e61f","commitDate":"2026-08-18T10:29:08+08:00","artifactDigest":"sha256:7c9005aefdd8ce367901c99edacc83921fe0ddc9ecff70c0683fe15f2b725e84","downloadUrl":"https://github.com/nonewind/dsh-spend/archive/43fb7b08b2b38d3da9f09c0ac085720a4144e61f.tar.gz","installMode":"npm","installCommand":"dsh plugin --profile web add dsh-spend","manifest":{"found":true,"path":"package.json","parseError":null,"packageName":"dsh-spend","packageVersion":"0.4.6","bundle":{"patch":"./cordis.patch.yml"},"client":{"platform":"web","inject":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-locale"]},"lifecycleScripts":{},"peerDependencies":["@deepseek-ai/cordis","@deepseek-ai/dsh-home-paths","@deepseek-ai/dsh-typert-protocol","@deepseek-ai/schemastery"]},"identity":{"status":"found","installMode":"npm","upstreamNpm":"dsh-spend","manifestName":"dsh-spend","nameMatch":true,"npm":{"name":"dsh-spend","latestVersion":"0.4.6","publishedAt":"2026-08-18T02:29:26.146Z","createdAt":"2026-08-14T04:31:05.275Z","versionCount":13,"maintainers":1,"repository":"git+https://github.com/nonewind/dsh-spend.git","hasInstallScripts":false,"deprecated":false},"repositoryMatch":"match","provenance":"none","tarballHost":null,"versionMatch":"match"},"permissions":{"bundlePatch":"cordis.patch.yml","inserts":[{"id":"usage-stats","name":"dsh-spend","path":"cordis.patch.yml","disabled":false}],"overrides":[],"jsExpressions":0,"clientPlatform":"web","parseErrors":[]},"capabilities":["browser-ui","filesystem","host-bundle","session"],"outboundHosts":[{"host":"api-docs.deepseek.com","count":2},{"host":"opencode.ai","count":1},{"host":"apidog.com","count":1}],"findings":[{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"low","layer":"static","path":"lib/client.js","pathClass":"source","line":1140,"evidence":"document.write(","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","note":"附近存在清洗/转义调用","hash":"194d543e58a7534c94341f91"}],"counts":{"critical":0,"high":0,"medium":0,"low":0},"rawCounts":{"critical":0,"high":0,"medium":1,"low":0},"vulnerabilities":[],"coverage":{"source":"complete","manifest":"complete","bundleConfig":"complete","dependencies":"lockfile-missing","vulnerabilities":"lockfile-missing","identity":"complete","artifact":"not-compared","llmReview":"not-needed","dynamicRuntime":"not-run","humanReview":"not-run"},"inventory":{"filesScanned":8,"bytesScanned":209964,"truncated":false,"lockfiles":[],"pathClasses":{"markdown":2,"cordis":1,"source":4,"manifest":1}},"limitations":["此结果为源码静态检测，不等同于无漏洞证明。","尚未比对 npm 发布包与源码的一致性，也未执行隔离运行和人工复核。","危险能力可能是插件功能所需，需结合用途与证据人工判断。"],"limitationKeys":["static-analysis-only","no-artifact-runtime-human-review","capability-needs-context"]},"timeline":[{"scannedAt":"2026-08-22T08:24:16.452Z","commit":"43fb7b08b2b38d3da9f09c0ac085720a4144e61f","policyVersion":"HT-DSH-0.2.2","verdict":"pass","status":"static-complete"},{"scannedAt":"2026-08-21T11:24:14.746Z","commit":"43fb7b08b2b38d3da9f09c0ac085720a4144e61f","policyVersion":"HT-DSH-0.2.1","verdict":"pass","status":"static-complete"},{"scannedAt":"2026-08-21T10:53:00.371Z","commit":"43fb7b08b2b38d3da9f09c0ac085720a4144e61f","policyVersion":"HT-DSH-0.2.0","verdict":"pass","status":"static-complete"}],"events":[{"kind":"policy-change","from":"HT-DSH-0.2.1","to":"HT-DSH-0.2.2","commit":"43fb7b08b2b38d3da9f09c0ac085720a4144e61f","policyVersion":"HT-DSH-0.2.2","at":"2026-08-22T08:24:16.452Z"},{"kind":"policy-change","from":"HT-DSH-0.2.0","to":"HT-DSH-0.2.1","commit":"43fb7b08b2b38d3da9f09c0ac085720a4144e61f","policyVersion":"HT-DSH-0.2.1","at":"2026-08-21T11:24:14.746Z"},{"kind":"first-scan","from":null,"to":"pass","commit":"43fb7b08b2b38d3da9f09c0ac085720a4144e61f","policyVersion":"HT-DSH-0.2.0","at":"2026-08-21T10:53:00.371Z"}]}