{"schemaVersion":2,"dataVersion":"20260822T105549Z-0a0b366f","generatedAt":"2026-08-22T10:55:49.138Z","source":{"id":"tpmoonchefryan-dsh-joi-channel-theme","slug":"tpmoonchefryan-dsh-joi-channel-theme","rank":251,"url":"https://github.com/tpmoonchefryan/dsh-joi-channel-theme","name":"tpmoonchefryan/dsh-joi-channel-theme","category":"theme","description":{"zh":"轴伊 Joi 双衣装主题：Flowers 与 Library 是各自成套的明暗令牌体系，新会话页有立绘与趴在标题上的鲸鱼娘，输入框上方两只 Q 版角色随本回合状态换表情，侧栏字标换成二人合影，上下文占用由一颗渐熟的橘子表示；第三张卡可在保持插件安装的前提下切回 DeepSeek 原生外观。","en":"Two-suit VTuber theme for Joi: Flowers and Library are separate token systems for light and dark, with a standing portrait and a whale girl napping on the headline of the new-session page, two chibi companions above the composer that follow the turn state, a duo sidebar mark, and a context meter shaped as a ripening mandarin; a third card returns the stock DeepSeek look with the plugin still installed."},"stars":11,"starsCheckedAt":"2026-08-21","repository":{"owner":"tpmoonchefryan","repo":"dsh-joi-channel-theme","requestedRef":null,"subpath":""},"npm":"dsh-joi-channel-theme","downloads":1012,"installMode":"npm","upstreamInstall":"dsh plugin --profile web add dsh-joi-channel-theme","tarball":null,"added":"2026-08-17","page":"https://awesome-dsh-plugin.com/p/tpmoonchefryan/dsh-joi-channel-theme/","screenshots":["https://raw.githubusercontent.com/tpmoonchefryan/dsh-joi-channel-theme/main/docs/settings-wardrobe.png","https://raw.githubusercontent.com/tpmoonchefryan/dsh-joi-channel-theme/main/docs/settings-wardrobe-dark.png","https://raw.githubusercontent.com/tpmoonchefryan/dsh-joi-channel-theme/main/docs/new-chat-flowers.png","https://raw.githubusercontent.com/tpmoonchefryan/dsh-joi-channel-theme/main/docs/new-chat-library.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":"tpmoonchefryan-dsh-joi-channel-theme","slug":"tpmoonchefryan-dsh-joi-channel-theme","policyVersion":"HT-DSH-0.2.2","scannedAt":"2026-08-22T08:22:47.233Z","scanStatus":"static-complete","verdict":"caution","score":94,"commit":"3c12a2706759104a94b51013d19bb3e9c3f2bef1","commitDate":"2026-08-20T13:11:02+08:00","artifactDigest":"sha256:2952b4ff67329c1c966caa2f909dfbf4a01ce574467ef3469c808f5314a34fb1","downloadUrl":"https://github.com/tpmoonchefryan/dsh-joi-channel-theme/archive/3c12a2706759104a94b51013d19bb3e9c3f2bef1.tar.gz","installMode":"npm","installCommand":"dsh plugin --profile web add dsh-joi-channel-theme","manifest":{"found":true,"path":"package.json","parseError":null,"packageName":"dsh-joi-channel-theme","packageVersion":"0.1.10","bundle":{"patch":"./cordis.patch.yml"},"client":{"platform":"web","inject":["@deepseek-ai/dsh-client-ui-theme","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-locale"]},"lifecycleScripts":{},"peerDependencies":["@deepseek-ai/dsh-settings","@deepseek-ai/schemastery"]},"identity":{"status":"found","installMode":"npm","upstreamNpm":"dsh-joi-channel-theme","manifestName":"dsh-joi-channel-theme","nameMatch":true,"npm":{"name":"dsh-joi-channel-theme","latestVersion":"0.1.10","publishedAt":"2026-08-20T05:19:35.606Z","createdAt":"2026-08-16T06:56:54.392Z","versionCount":6,"maintainers":1,"repository":"git+https://github.com/tpmoonchefryan/dsh-joi-channel-theme.git","hasInstallScripts":false,"deprecated":false},"repositoryMatch":"match","provenance":"none","tarballHost":null,"versionMatch":"match"},"permissions":{"bundlePatch":"cordis.patch.yml","inserts":[{"id":"joi-channel-theme","name":"dsh-joi-channel-theme","path":"cordis.patch.yml","disabled":false}],"overrides":[],"jsExpressions":0,"clientPlatform":"web","parseErrors":[]},"capabilities":["agent-control","browser-ui","environment","filesystem","host-bundle","subprocess"],"outboundHosts":[],"findings":[{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/align-sprite.mjs","pathClass":"source","line":17,"evidence":"execFileSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"200729c6a3f5733b0c400b12"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/align-sprite.mjs","pathClass":"source","line":17,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"00253611864ab648afbc0323"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/gen-assets.mjs","pathClass":"source","line":17,"evidence":"execFileSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"173b76a629ecdee8ccff3bc6"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/gen-assets.mjs","pathClass":"source","line":17,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"7b8e8ebb3fe475a374098f5c"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"medium","layer":"static","path":"src/client/meter.ts","pathClass":"source","line":96,"evidence":".innerHTML =","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","hash":"9ee70e5cafe7679ee864523f"}],"counts":{"critical":0,"high":0,"medium":1,"low":4},"rawCounts":{"critical":0,"high":0,"medium":1,"low":4},"vulnerabilities":[],"coverage":{"source":"complete","manifest":"complete","bundleConfig":"complete","dependencies":"lockfile-present","vulnerabilities":"complete","identity":"complete","artifact":"not-compared","llmReview":"not-needed","dynamicRuntime":"not-run","humanReview":"not-run"},"inventory":{"filesScanned":42,"bytesScanned":397866,"truncated":false,"lockfiles":["package-lock.json"],"pathClasses":{"markdown":8,"data":12,"cordis":1,"manifest":1,"source":20}},"limitations":["此结果为源码静态检测，不等同于无漏洞证明。","尚未比对 npm 发布包与源码的一致性，也未执行隔离运行和人工复核。","危险能力可能是插件功能所需，需结合用途与证据人工判断。"],"limitationKeys":["static-analysis-only","no-artifact-runtime-human-review","capability-needs-context"]},"timeline":[{"scannedAt":"2026-08-22T08:22:47.233Z","commit":"3c12a2706759104a94b51013d19bb3e9c3f2bef1","policyVersion":"HT-DSH-0.2.2","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T11:22:47.387Z","commit":"3c12a2706759104a94b51013d19bb3e9c3f2bef1","policyVersion":"HT-DSH-0.2.1","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T10:51:29.726Z","commit":"3c12a2706759104a94b51013d19bb3e9c3f2bef1","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":"3c12a2706759104a94b51013d19bb3e9c3f2bef1","policyVersion":"HT-DSH-0.2.2","at":"2026-08-22T08:22:47.233Z"},{"kind":"policy-change","from":"HT-DSH-0.2.0","to":"HT-DSH-0.2.1","commit":"3c12a2706759104a94b51013d19bb3e9c3f2bef1","policyVersion":"HT-DSH-0.2.1","at":"2026-08-21T11:22:47.387Z"},{"kind":"first-scan","from":null,"to":"caution","commit":"3c12a2706759104a94b51013d19bb3e9c3f2bef1","policyVersion":"HT-DSH-0.2.0","at":"2026-08-21T10:51:29.726Z"}]}