{"_id":"@bananiceee/dsh-status-bar","_rev":"7-7b82b09be08ed921be38708935e643e6","name":"@bananiceee/dsh-status-bar","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.7":{"name":"@bananiceee/dsh-status-bar","version":"0.1.7","keywords":["deepseek","deepseek-harness","dsh","status-bar","stats-line","composer-dock","cost-estimate","context-usage","agent-status"],"license":"MIT","_id":"@bananiceee/dsh-status-bar@0.1.7","maintainers":[{"name":"bananiceee","email":"xujiangtao644@gmail.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-conversation","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-ui-slots","@deepseek-ai/dsh-client-locale"],"platform":"web"}},"dist":{"shasum":"b869a04d05f55f5e84856571f562778075ad30a7","tarball":"https://registry.npmjs.org/@bananiceee/dsh-status-bar/-/dsh-status-bar-0.1.7.tgz","fileCount":41,"integrity":"sha512-Bgzldv2mj/3GniLCNWvl7IhPNZZ5qjP1Ebee6XFEjTeEnLon3QWqfv8OQcvTuBX4JNZXYc4y7N4sCPEXSVwhiQ==","signatures":[{"sig":"MEUCIQC+x/orLSB+leWP5fgnHSY9GMqvOZBuhsbZa+GpXH16DQIgMXwTY8APWrh8ZSLp8dTO2zpaWG9OVnkDtTZJiSs0VN8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":547997},"main":"./lib/index.js","type":"module","types":"./lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./package.json":"./package.json"},"gitHead":"d0f4994c077448ad067ef2a571b28b8d3a0b81dc","scripts":{"build":"bash scripts/build.sh","verify":"bash scripts/verify.sh","build:client":"tsdown","typecheck:client":"bash scripts/build.sh --client-only"},"_npmUser":{"name":"bananiceee","email":"xujiangtao644@gmail.com"},"_npmVersion":"11.19.0","description":"DSH 底栏管理插件：原生底部状态栏超长、内容易被截断；本插件提供接近原生体验的可配置状态栏——17 个信息段任意开关/排序，并带换行、实时 TPS、费用估算等多项实用选项。The native DSH bottom status bar is too long and parts get truncated; this plugin delivers a near-native, fully configurable status bar — 17 toggleable/reorderable segm","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.4.0"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","typescript":"^6.0.3","@types/node":"^24.13.3","@types/react":"~18.3.1","@types/react-dom":"~18.3.0"},"_npmOperationalInternal":{"tmp":"tmp/dsh-status-bar_0.1.7_1787147836374_0.45442287935229464","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@bananiceee/dsh-status-bar","version":"0.1.8","keywords":["deepseek","deepseek-harness","dsh","status-bar","stats-line","composer-dock","cost-estimate","context-usage","agent-status"],"license":"MIT","_id":"@bananiceee/dsh-status-bar@0.1.8","maintainers":[{"name":"bananiceee","email":"xujiangtao644@gmail.com"}],"homepage":"https://github.com/Starlight-bananice/dsh-status-bar#readme","bugs":{"url":"https://github.com/Starlight-bananice/dsh-status-bar/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-conversation","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-ui-slots","@deepseek-ai/dsh-client-locale"],"platform":"web"}},"dist":{"shasum":"bf7e29f0d4a2a9cc5d211211550a2308fa5baae3","tarball":"https://registry.npmjs.org/@bananiceee/dsh-status-bar/-/dsh-status-bar-0.1.8.tgz","fileCount":41,"integrity":"sha512-QCDbc1+ATfisgfQfXTJClMZpQ9uqG/pDv4hsxMjV2ZizlsYyzNBJVeBrrbzRwC4GYzzLmaXyOoDpv/3lorabSQ==","signatures":[{"sig":"MEUCIFnzsjsMnKsRaB0z+W8NhZdBSmO0V/vGZ2NmbiAZAtqoAiEA4opWWkIvGiaC+TGv6G0nek4SHRboISeOLMvypS5Y1Kg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":548654},"main":"./lib/index.js","type":"module","types":"./lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./package.json":"./package.json"},"gitHead":"e6788bbc9d2242de6ab01e7c456ccf5e5ccb0919","scripts":{"build":"bash scripts/build.sh","verify":"bash scripts/verify.sh","build:client":"tsdown","typecheck:client":"bash scripts/build.sh --client-only"},"_npmUser":{"name":"bananiceee","email":"xujiangtao644@gmail.com"},"repository":{"url":"git+https://github.com/Starlight-bananice/dsh-status-bar.git","type":"git"},"_npmVersion":"11.19.0","description":"DSH 底栏管理插件：原生底部状态栏超长、内容易被截断；本插件提供接近原生体验的可配置状态栏——17 个信息段任意开关/排序，并带换行、实时 TPS、费用估算等多项实用选项。The native DSH bottom status bar is too long and parts get truncated; this plugin delivers a near-native, fully configurable status bar — 17 toggleable/reorderable segm","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.4.0"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","typescript":"^6.0.3","@types/node":"^24.13.3","@types/react":"~18.3.1","@types/react-dom":"~18.3.0"},"_npmOperationalInternal":{"tmp":"tmp/dsh-status-bar_0.1.8_1787149293648_0.9456884144403164","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@bananiceee/dsh-status-bar","version":"0.1.9","keywords":["deepseek","deepseek-harness","dsh","status-bar","stats-line","composer-dock","cost-estimate","context-usage","agent-status"],"license":"MIT","_id":"@bananiceee/dsh-status-bar@0.1.9","maintainers":[{"name":"bananiceee","email":"xujiangtao644@gmail.com"}],"homepage":"https://github.com/Starlight-bananice/dsh-status-bar#readme","bugs":{"url":"https://github.com/Starlight-bananice/dsh-status-bar/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-conversation","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-ui-slots","@deepseek-ai/dsh-client-locale"],"platform":"web"}},"dist":{"shasum":"5d964ebc31f88a6f017a15a343fb4b6200c43f33","tarball":"https://registry.npmjs.org/@bananiceee/dsh-status-bar/-/dsh-status-bar-0.1.9.tgz","fileCount":41,"integrity":"sha512-dME7jZ8slCHlJzj3s8VmSUZQYuw8g8Dg1RG97RTFsk35hVOJzAOkzZaJil5RDMjCkQNOAtNAhiel4D716rpY8g==","signatures":[{"sig":"MEUCIAXhpkrKU7Zin+Lby+N4k3vGO2YFjSCL96jHLSehldFGAiEAkOIzvbMpM2tsdOH0RhAIGFUVMnMdI5jXw85XRuu3big=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":557188},"main":"./lib/index.js","type":"module","types":"./lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./package.json":"./package.json"},"gitHead":"bd31e6d58867ebdfb77f8beae215c774ab28a354","scripts":{"build":"bash scripts/build.sh","verify":"bash scripts/verify.sh","build:client":"tsdown","typecheck:client":"bash scripts/build.sh --client-only"},"_npmUser":{"name":"bananiceee","email":"xujiangtao644@gmail.com"},"repository":{"url":"git+https://github.com/Starlight-bananice/dsh-status-bar.git","type":"git"},"_npmVersion":"11.19.0","description":"DSH 底栏管理插件：原生底部状态栏超长、内容易被截断；本插件提供接近原生体验的可配置状态栏——17 个信息段任意开关/排序，并带换行、实时 TPS、费用估算等多项实用选项。The native DSH bottom status bar is too long and parts get truncated; this plugin delivers a near-native, fully configurable status bar — 17 toggleable/reorderable segm","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.4.0"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","typescript":"^6.0.3","@types/node":"^24.13.3","@types/react":"~18.3.1","@types/react-dom":"~18.3.0"},"_npmOperationalInternal":{"tmp":"tmp/dsh-status-bar_0.1.9_1787511188511_0.32102395791417115","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@bananiceee/dsh-status-bar","version":"0.1.10","keywords":["deepseek","deepseek-harness","dsh","status-bar","stats-line","composer-dock","cost-estimate","context-usage","agent-status"],"license":"MIT","_id":"@bananiceee/dsh-status-bar@0.1.10","maintainers":[{"name":"bananiceee","email":"xujiangtao644@gmail.com"}],"homepage":"https://github.com/Starlight-bananice/dsh-status-bar#readme","bugs":{"url":"https://github.com/Starlight-bananice/dsh-status-bar/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-conversation","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-ui-slots","@deepseek-ai/dsh-client-locale"],"platform":"web"}},"dist":{"shasum":"a777a09c6a0c6e35897e64a983ae6c31bd88242b","tarball":"https://registry.npmjs.org/@bananiceee/dsh-status-bar/-/dsh-status-bar-0.1.10.tgz","fileCount":41,"integrity":"sha512-sI1sk/HD/QyMP+0WAy8UPY5p45pgUdcZIVSXFX55bsP+gvPovMRTxIeA0srVi1wEwMZhG1uZD+nuFGJfVO4qDw==","signatures":[{"sig":"MEUCIQDYZLfii4Fyubu4X/E2ZbyORC7TiutZr8UQBKMNkU5NUgIgDnOsUOCD1qGhYpPDrhb3rEljybZShRrgm8oN4HwYPtw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":558376},"main":"./lib/index.js","type":"module","types":"./lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./package.json":"./package.json"},"gitHead":"128a7f3d1256a003989d5bafc8422829424be662","scripts":{"build":"bash scripts/build.sh","verify":"bash scripts/verify.sh","build:client":"tsdown","typecheck:client":"bash scripts/build.sh --client-only"},"_npmUser":{"name":"bananiceee","email":"xujiangtao644@gmail.com"},"repository":{"url":"git+https://github.com/Starlight-bananice/dsh-status-bar.git","type":"git"},"_npmVersion":"11.19.0","description":"DSH 底栏管理插件：原生底部状态栏超长、内容易被截断；本插件提供接近原生体验的可配置状态栏——17 个信息段任意开关/排序，并带换行、实时 TPS、费用估算等多项实用选项。The native DSH bottom status bar is too long and parts get truncated; this plugin delivers a near-native, fully configurable status bar — 17 toggleable/reorderable segm","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.4.0"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","typescript":"^6.0.3","@types/node":"^24.13.3","@types/react":"~18.3.1","@types/react-dom":"~18.3.0"},"_npmOperationalInternal":{"tmp":"tmp/dsh-status-bar_0.1.10_1787512905815_0.2099854720318024","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@bananiceee/dsh-status-bar","version":"0.2.1","keywords":["deepseek","deepseek-harness","dsh","status-bar","stats-line","composer-dock","cost-estimate","context-usage","agent-status"],"license":"MIT","_id":"@bananiceee/dsh-status-bar@0.2.1","maintainers":[{"name":"bananiceee","email":"xujiangtao644@gmail.com"}],"homepage":"https://github.com/Starlight-bananice/dsh-status-bar#readme","bugs":{"url":"https://github.com/Starlight-bananice/dsh-status-bar/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-api-job-controller","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-conversation","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"dist":{"shasum":"b9dcb2b0c01c9365ef610778e4e459366b32213f","tarball":"https://registry.npmjs.org/@bananiceee/dsh-status-bar/-/dsh-status-bar-0.2.1.tgz","fileCount":69,"integrity":"sha512-4Ef70ir8TIFVHuEZGXBO6LpA2XHa8sbxGfHOT08K156e/kSNlBJd7B+QNCbSTnWmvYEL5zpGhTZDJOnASAPCig==","signatures":[{"sig":"MEUCIAXymyyvtPubT0Sw1CvBAjt93Ner3HX+Zj1uPfaQJGffAiEA7tKt7jRPTQqWme3ZafOu/+LQ53/KrDM06vFl2ZqgyjI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHOrYgj/7HSAlVSF1oSLMe/UjtBRkZtgIMdMb7ONAAmwAiB72fQWdI6OxV5Xdj1tRolN9p6tCxGDlnDySTdSH/z7TQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":607300},"main":"./lib/index.js","type":"module","types":"./lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./package.json":"./package.json"},"gitHead":"39fe34ac8eb85c4988ece9d5b2a58bcfa569a5fc","scripts":{"build":"bash scripts/build.sh","verify":"bash scripts/verify.sh","build:client":"tsdown","typecheck:client":"bash scripts/build.sh --client-only"},"_npmUser":{"name":"bananiceee","email":"xujiangtao644@gmail.com"},"repository":{"url":"git+https://github.com/Starlight-bananice/dsh-status-bar.git","type":"git"},"_npmVersion":"11.19.0","description":"DSH 底栏管理插件：原生底部状态栏超长、内容易被截断；本插件提供接近原生体验的可配置状态栏——16 个信息段任意开关/排序，并带换行、实时 TPS、费用估算等多项实用选项（适配 DSH 0.2.0）。The native DSH bottom status bar is too long and parts get truncated; this plugin delivers a near-native, fully configurable status bar — 16 toggleable/re","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.4.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"18.3.1","tsdown":"^0.22.14","react-dom":"18.3.1","typescript":"^6.0.3","@types/node":"^24.13.3","@types/react":"~18.3.1","@types/react-dom":"~18.3.0","@deepseek-ai/cordis":"4.0.4","@deepseek-ai/dsh-llm":"0.2.0-rc.2","@deepseek-ai/dsh-jobs":"0.2.0-rc.2","@deepseek-ai/dsh-session":"0.2.0-rc.2","@deepseek-ai/dsh-token-meter":"0.2.0-rc.2","@deepseek-ai/dsh-client-store":"0.2.0-rc.2","@deepseek-ai/dsh-client-locale":"0.2.0-rc.2","@deepseek-ai/dsh-session-stats":"0.2.0-rc.2","@deepseek-ai/dsh-client-ui-chat":"0.2.0-rc.2","@deepseek-ai/dsh-host-webserver":"0.2.0-rc.2","@deepseek-ai/dsh-client-ui-slots":"0.2.0-rc.2","@deepseek-ai/dsh-client-connection":"0.2.0-rc.2","@deepseek-ai/dsh-client-ui-session":"0.2.0-rc.2","@deepseek-ai/dsh-api-job-controller":"0.2.0-rc.2","@deepseek-ai/dsh-client-ui-settings":"0.2.0-rc.2","@deepseek-ai/dsh-session-projection":"0.2.0-rc.2","@deepseek-ai/dsh-client-ui-primitives":"0.2.0-rc.2","@deepseek-ai/dsh-api-session-controller":"0.2.0-rc.2","@deepseek-ai/dsh-client-ui-conversation":"0.2.0-rc.2"},"_npmOperationalInternal":{"tmp":"tmp/dsh-status-bar_0.2.1_1790847033864_0.244310955793265","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@bananiceee/dsh-status-bar","version":"0.2.2","keywords":["deepseek","deepseek-harness","dsh","status-bar","stats-line","composer-dock","cost-estimate","context-usage","agent-status"],"license":"MIT","_id":"@bananiceee/dsh-status-bar@0.2.2","maintainers":[{"name":"bananiceee","email":"xujiangtao644@gmail.com"}],"homepage":"https://github.com/Starlight-bananice/dsh-status-bar#readme","bugs":{"url":"https://github.com/Starlight-bananice/dsh-status-bar/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-api-job-controller","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-conversation","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"dist":{"shasum":"d07b9ca105b040b5d67922ada986c1c33db61c31","tarball":"https://registry.npmjs.org/@bananiceee/dsh-status-bar/-/dsh-status-bar-0.2.2.tgz","fileCount":69,"integrity":"sha512-pU2XMHJhTb3Y+rF+Z9M/rA/DefbQTx5V5ZupFFWPyIWNw9lQwhixgJrRg/xLeqYdSJD17r/JCKhGCQEtebu8wQ==","signatures":[{"sig":"MEUCIFvblS5MBjk5tKWdiVaGXsL197p7eiArCn1V6B3qhEAPAiEArmn9s11r/hFv7toABif0ykfO05AYRuDjfQChlZ9YMZw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICVKWuup6bianPFR07bttNhVdedbpcfgEqESKD0mHsS5AiBBm3yDSTCwnu+u4ZcWxDOmA+oZfvNraS3XcrtymGNTPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":609972},"main":"./lib/index.js","type":"module","types":"./lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./package.json":"./package.json"},"gitHead":"8e35f37c78dc327f39890a1669c77f4e542c938b","scripts":{"build":"bash scripts/build.sh","verify":"bash scripts/verify.sh","build:client":"tsdown","typecheck:client":"bash scripts/build.sh --client-only"},"_npmUser":{"name":"bananiceee","email":"xujiangtao644@gmail.com"},"repository":{"url":"git+https://github.com/Starlight-bananice/dsh-status-bar.git","type":"git"},"_npmVersion":"11.19.0","description":"DSH 底栏管理插件：原生底部状态栏超长、内容易被截断；本插件提供接近原生体验的可配置状态栏——16 个信息段任意开关/排序，并带换行、实时 TPS、费用估算等多项实用选项（适配 DSH 0.2.0）。The native DSH bottom status bar is too long and parts get truncated; this plugin delivers a near-native, fully configurable status bar — 16 toggleable/re","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.4.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"18.3.1","tsdown":"^0.22.14","react-dom":"18.3.1","typescript":"^6.0.3","@types/node":"^24.13.3","@types/react":"~18.3.1","@types/react-dom":"~18.3.0","@deepseek-ai/cordis":"4.0.4","@deepseek-ai/dsh-llm":"0.2.0-rc.2","@deepseek-ai/dsh-jobs":"0.2.0-rc.2","@deepseek-ai/dsh-session":"0.2.0-rc.2","@deepseek-ai/dsh-token-meter":"0.2.0-rc.2","@deepseek-ai/dsh-client-store":"0.2.0-rc.2","@deepseek-ai/dsh-client-locale":"0.2.0-rc.2","@deepseek-ai/dsh-session-stats":"0.2.0-rc.2","@deepseek-ai/dsh-client-ui-chat":"0.2.0-rc.2","@deepseek-ai/dsh-host-webserver":"0.2.0-rc.2","@deepseek-ai/dsh-client-ui-slots":"0.2.0-rc.2","@deepseek-ai/dsh-client-connection":"0.2.0-rc.2","@deepseek-ai/dsh-client-ui-session":"0.2.0-rc.2","@deepseek-ai/dsh-api-job-controller":"0.2.0-rc.2","@deepseek-ai/dsh-client-ui-settings":"0.2.0-rc.2","@deepseek-ai/dsh-session-projection":"0.2.0-rc.2","@deepseek-ai/dsh-client-ui-primitives":"0.2.0-rc.2","@deepseek-ai/dsh-api-session-controller":"0.2.0-rc.2","@deepseek-ai/dsh-client-ui-conversation":"0.2.0-rc.2"},"_npmOperationalInternal":{"tmp":"tmp/dsh-status-bar_0.2.2_1790849983011_0.6579897714074487","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"_id":"@bananiceee/dsh-status-bar@0.3.0","dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-api-job-controller","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-conversation","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"bugs":{"url":"https://github.com/Starlight-bananice/dsh-status-bar/issues"},"dist":{"shasum":"3e9158681f78fa4e7a205da2fa456fcd97e86afd","tarball":"https://registry.npmjs.org/@bananiceee/dsh-status-bar/-/dsh-status-bar-0.3.0.tgz","fileCount":82,"integrity":"sha512-n6OjlLA2kwppMOwxBPqT5PVeWfCak+8QIPLfI2Rr3d0r3XuFj7uRjbAV0lLSNAa5XVg//fikX0FTtLILCuq+Bg==","signatures":[{"sig":"MEQCIGs2YWZY7JnorMq18zzix39f+iQGRPFMJSFfENflnMOhAiACi8YewgfFCoI5zuzJJS1kHPI74L3mX7NByAtLV2523w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCZXHc1TYlzGA9WZl+kGXooWGUr/SNj73kRp6oAGftY2gIgWCp0HosgpYf9NmaPoF3ViqkmPWZtLUOlAXBMg5+0+Yc="}],"unpackedSize":831703},"main":"./lib/index.js","name":"@bananiceee/dsh-status-bar","type":"module","types":"./lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./package.json":"./package.json"},"gitHead":"f6c866a29606206417faebc7ff26685abd17d141","license":"MIT","scripts":{"build":"bash scripts/build.sh","verify":"bash scripts/verify.sh","build:client":"tsdown","typecheck:client":"bash scripts/build.sh --client-only"},"version":"0.3.0","_npmUser":{"name":"bananiceee","email":"xujiangtao644@gmail.com"},"homepage":"https://github.com/Starlight-bananice/dsh-status-bar#readme","keywords":["deepseek","deepseek-harness","dsh","status-bar","stats-line","composer-dock","cost-estimate","context-usage","agent-status"],"repository":{"url":"git+https://github.com/Starlight-bananice/dsh-status-bar.git","type":"git"},"_npmVersion":"11.19.0","description":"DSH 底栏管理插件：原生底部状态栏超长、内容易被截断；本插件提供接近原生体验的可配置状态栏——16 个信息段任意开关/排序，并带换行、实时 TPS、费用估算等多项实用选项（适配 DSH 0.2.0）。The native DSH bottom status bar is too long and parts get truncated; this plugin delivers a near-native, fully configurable status bar — 16 toggleable/re","directories":{},"maintainers":[{"name":"bananiceee","email":"xujiangtao644@gmail.com"}],"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.4.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"18.3.1","tsdown":"^0.22.14","react-dom":"18.3.1","typescript":"^6.0.3","@types/node":"^24.13.3","@types/react":"~18.3.1","@types/react-dom":"~18.3.0","@deepseek-ai/cordis":"4.0.4","@deepseek-ai/dsh-llm":"0.2.0-rc.2","@deepseek-ai/dsh-jobs":"0.2.0-rc.2","@deepseek-ai/dsh-session":"0.2.0-rc.2","@deepseek-ai/dsh-token-meter":"0.2.0-rc.2","@deepseek-ai/dsh-client-store":"0.2.0-rc.2","@deepseek-ai/dsh-client-locale":"0.2.0-rc.2","@deepseek-ai/dsh-session-stats":"0.2.0-rc.2","@deepseek-ai/dsh-client-ui-chat":"0.2.0-rc.2","@deepseek-ai/dsh-host-webserver":"0.2.0-rc.2","@deepseek-ai/dsh-client-ui-slots":"0.2.0-rc.2","@deepseek-ai/dsh-client-connection":"0.2.0-rc.2","@deepseek-ai/dsh-client-ui-session":"0.2.0-rc.2","@deepseek-ai/dsh-api-job-controller":"0.2.0-rc.2","@deepseek-ai/dsh-client-ui-settings":"0.2.0-rc.2","@deepseek-ai/dsh-session-projection":"0.2.0-rc.2","@deepseek-ai/dsh-client-ui-primitives":"0.2.0-rc.2","@deepseek-ai/dsh-api-session-controller":"0.2.0-rc.2","@deepseek-ai/dsh-client-ui-conversation":"0.2.0-rc.2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-status-bar_0.3.0_1790854272094_0.6867993037929303"}}},"time":{"created":"2026-08-19T13:57:16.191Z","modified":"2026-10-01T11:31:12.361Z","0.1.7":"2026-08-19T13:57:16.529Z","0.1.8":"2026-08-19T14:21:33.799Z","0.1.9":"2026-08-23T18:53:08.659Z","0.1.10":"2026-08-23T19:21:45.980Z","0.2.1":"2026-10-01T09:30:33.991Z","0.2.2":"2026-10-01T10:19:43.121Z","0.3.0":"2026-10-01T11:31:12.213Z"},"bugs":{"url":"https://github.com/Starlight-bananice/dsh-status-bar/issues"},"license":"MIT","homepage":"https://github.com/Starlight-bananice/dsh-status-bar#readme","keywords":["deepseek","deepseek-harness","dsh","status-bar","stats-line","composer-dock","cost-estimate","context-usage","agent-status"],"repository":{"url":"git+https://github.com/Starlight-bananice/dsh-status-bar.git","type":"git"},"description":"DSH 底栏管理插件：原生底部状态栏超长、内容易被截断；本插件提供接近原生体验的可配置状态栏——16 个信息段任意开关/排序，并带换行、实时 TPS、费用估算等多项实用选项（适配 DSH 0.2.0）。The native DSH bottom status bar is too long and parts get truncated; this plugin delivers a near-native, fully configurable status bar — 16 toggleable/re","maintainers":[{"name":"bananiceee","email":"xujiangtao644@gmail.com"}],"readme":"# dsh-status-bar · 一眼看清你的 agent 正在做什么\n\n> **✅ 已适配 DSH 桌面版 —— DSH `0.2.0-rc.2`。**\n> **`0.2.x` 版本线面向桌面版运行时：请把它安装到 `desktop` profile（应用内「插件」页，或 `dsh plugin --profile desktop add …`）。**\n> **已停止维护的 `0.1.x` 版本线面向旧的 `0.1.x` 运行时，无法在 0.2.0 桌面版上加载。**\n\n[![DSH](https://img.shields.io/badge/DSH-0.2.0--rc.2-blue)](https://github.com/deepseek-ai/deepseek-harness) [![version](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.github.com%2Frepos%2FStarlight-bananice%2Fdsh-status-bar%2Ftags&query=%24%5B0%5D.name&label=version&color=green)](https://github.com/Starlight-bananice/dsh-status-bar/releases) [![npm](https://img.shields.io/npm/v/@bananiceee/dsh-status-bar)](https://www.npmjs.com/package/@bananiceee/dsh-status-bar) [![license](https://img.shields.io/badge/license-MIT-blue)](LICENSE) [![topic](https://img.shields.io/badge/topic-dsh--plugin-orange)](https://github.com/topics/dsh-plugin) [![Awesome DSH Plugin](https://awesome-dsh-plugin.com/badge.svg)](https://awesome-dsh-plugin.com)\n\n[English](README.md) · [中文](README.zh.md)\n\n---\n\n## Overview（概览）\n\n**问题所在：** DSH 原生底部状态栏是一条超长的固定统计行——内容一多就会溢出，窗口一窄还会有部分内容被**截断**。你看不到当前模型、上下文窗口占用多少、Token 流式生成有多快、这个会话花了多少钱，也没法按自己的工作习惯排列这些信息。\n\n**适合谁：** 每天使用 DSH 桌面版的用户——希望不离开输入栏就能掌握会话实时状态，又不想额外开一个监视器的重度用户与团队。\n\n**核心能力：**\n\n- **桌面版原生，而非外挂** —— **针对 DSH 0.2.0 桌面版运行时重建**（`@deepseek-ai/dsh-*@0.2.0-rc.2`）：会话事实来自桌面版自身的 Chat / 会话 / 输入框服务，后台任务来自其任务服务，实时吞吐数字来自其自身的流式事件窗口。没有兼容垫片，也不保留旧版兼容路径。\n- **接近原生体验，且完全由你掌控** —— 16 个可开关、可排序的信息段：状态点、模型、标题、工作区、轮次与步数、模型/工具耗时、TTFT 与解码速度、缓存命中率、Token、上下文占用、实时 TPS、会话时长、费用估算、任务、队列、错误\n- **实时吞吐（TPS）** —— 底栏在浏览器内直接折叠本会话自己的实时流，流式生成期间速度随分块逐块刷新，无论流以多细的粒度送达都能反映真实生成速率；无需轮询、无需 host 往返，也无需外部 live-stats 插件\n- **费用估算 + 用户维护的模型价格手册** —— 每个模型独立的价格与峰/谷时段，**每条消息/每一步都按实际产出它的模型计价**（输入、缓存命中、缓存写入、输出四类分别按该步发生时刻取价）；「用量与费用」弹窗内置堆叠费用趋势图（日 / 周 / 月）、分页的逐步用量历史（含独立的缓存命中列）与总成本展示\n- **跟得上 DeepSeek 反复调整的峰谷规则** —— 不再是把时段写死成一组 `HH:MM`：改为「工作日 / 周末 / 法定节假日」三类日判定，节假日与调休日历一键拉取并缓存在本地、可手动增删例外日期；DeepSeek 之后无论是改时段、改周末规则、还是新增节假日与调休安排，你只需刷新一次日历或改一个时段，不必重配整个价格表\n- **零配置开箱即用** —— 13 个信息段默认开启，其余勾选即得\n- **多项实用选项** —— 多行换行显示（内容再多也不会被截断省略）、逐模型费用估算（支持峰谷计价）、币种切换（CNY / USD）、齿轮快捷开关菜单，以及带一键重置的专属设置页\n- **24 小时制时段输入** —— 峰谷时段用 24 小时制文本框（`09:00`），不再受浏览器区域设置影响显示成 AM/PM\n- **干净的接管机制** —— 插件底栏以低优先级遮蔽内置 `stats` 单元格：加载期间由其渲染，卸载后内置统计行原样恢复\n- **双语界面** —— 客户端文案内置英文与中文，遵循 DSH locale 体系\n\n## Screenshots（界面预览）\n\n以接近原生的底栏替换内置统计行，实时呈现会话状态（状态 · 模型 · 轮次 · 上下文 · 缓存 · TPS · 会话时长 · 任务 · 队列 · 错误），并由专属设置页统一管理——含逐模型价格手册与节假日日历（支持峰谷计价）：\n\n![状态栏实时显示](assets/screenshot-status-bar-zh.png)\n\n![设置页与模型价格手册](assets/screenshot-settings-page-zh.png)\n\n| 随时开关与排序（信息段列表） | 用量与费用弹窗（趋势图 · 统计卡 · 历史） |\n|---|---|\n| ![信息段列表](assets/screenshot-settings-segments.png) | ![用量与费用弹窗](assets/screenshot-usage-cost-dialog.png) |\n\n## Compatibility（兼容性）\n\n| 项目 | 说明 |\n|---|---|\n| **DSH 桌面版** | **`0.2.0-rc.2`——本版本线适配的目标；最后验证于 2026-10-01** |\n| **插件版本线** | **`0.2.x` 面向桌面版运行时。`0.1.x` 面向已停止维护的 `0.1.x` 运行时，无法在 0.2.0 桌面版上加载。** |\n| DSH profile | 打包桌面应用使用 `desktop` · 自建 `dsh web` 使用 `web` · CLI 运行时使用 `headless` |\n| 运行环境 | Node ≥ 22（host）+ 现代浏览器（client）；无外部服务依赖 |\n| 共存关系 | 与任何其他状态栏/TPS 插件互不干扰：实时速率在客户端折叠本会话自己的事件窗口，因此本插件**不注册任何共享投影键**——任何对等插件的键名、`stateVersion` 或注册先后都无法顶掉底栏的 TPS |\n\n### 桌面版移植改了什么（0.2.0）\n\nDSH 0.2.0 移除了 `@deepseek-ai/dsh-client-runtime`，并把旧 Conversation 快照承载的数据拆到了不同位置。本版本线即针对该结构完成移植：\n\n- **会话数据搬家。** 消息节点、轮次时间、流式 partial 与运行中的工具调用现在来自 Chat 目标（`useChat`），生命周期事实（`running`、`lastAgentError`）来自会话快照（`useSession`），排队消息数来自输入框收件箱（`useInput`）。\n- **后台任务来自一个已被移除的字段。** `SessionListState.jobsBySession` 已不存在；任务段现在读取客户端任务花名册（`ctx.jobs`），与桌面版自身的会话头部任务列表同源。\n- **实时 TPS 移入浏览器。** 0.2.0 不再有持久化的 `assistant/chunk` 事件，原先提供速率的 host 投影不再收到输入。底栏改为在客户端折叠本会话自己的实时流——估算器不变，测速改用滑动窗口，不再依赖流的送达粒度。\n- **`agent preset` 段已下线**（`SessionSummary.agentPreset` 不再存在；0.2.0 仅把预设暴露给新会话的 Hero 芯片）。该段本来就是默认关闭；已保存的配置中若仍列有它，会在加载时被过滤掉。\n- **构建不再需要 DSH 源码检出。** 插件编译所依赖的 DSH 包以 `0.2.0-rc.2` 精确钉为 devDependencies；`pnpm install && pnpm run build` 就是全部。\n\n## Install（安装）\n\n下面每条安装路径都作用于一个 DSH profile。打包的桌面版应用运行名为 **`desktop`** 的 profile；自建的 `dsh web` 通常运行 `web`。\n\n### 桌面版应用 —— 应用内安装（最简单）\n\n1. 打开左侧边栏的 **「插件」** 页面。\n2. 点击 **「添加插件」**，填入包名 `@bananiceee/dsh-status-bar`，然后点 **「安装」** 确认。\n3. 安装完成后点击 **「立即启用」**。\n4. 若对话框提示「更改将在下次启动生效」，重启应用即可。\n\n在应用内安装与用终端命令安装写入的是同一个 profile，因此下面两条路径可以互换。\n\n### 桌面版应用 —— 终端安装\n\n```sh\n# 桌面版线的最新发布版\ndsh plugin --profile desktop add @bananiceee/dsh-status-bar\n\n# 或钉住确切版本\ndsh plugin --profile desktop add @bananiceee/dsh-status-bar@0.3.0\n```\n\n### 自建 Web / CLI\n\n```sh\ndsh plugin --profile web add @bananiceee/dsh-status-bar@0.3.0\n```\n\n### 其他来源\n\n```sh\n# 从本地目录装配（profile 级）\ndsh plugin --profile desktop add ../dsh-status-bar\n\n# 从 GitHub 仓库安装\ndsh plugin --profile desktop add github:Starlight-bananice/dsh-status-bar\n\n# 或安装固定版本的 release tgz —— 不可变且带版本号（随每个 GitHub\n# release 附带；适合不便直连 git 仓库的场景）\ndsh plugin --profile desktop add https://github.com/Starlight-bananice/dsh-status-bar/releases/download/v0.3.0/bananiceee-dsh-status-bar-0.3.0.tgz\n```\n\n> **提示：** pnpm 11 对刚发布的包强制 24 小时 `minimumReleaseAge`——若某个当天发布的版本被拒绝，在 `dsh plugin add` 命令后追加 `--config.minimumReleaseAge=0`。\n\n> **提示：** pnpm 从 `codeload.github.com` 获取 GitHub 上的包，且不读取你的 git 代理配置。若安装卡住或因网络错误失败（如 `error (23)`），请先导出 HTTP(S) 代理再重试：`export HTTPS_PROXY=http://127.0.0.1:7890 HTTP_PROXY=http://127.0.0.1:7890`。\n\n> **自 v0.1.5 起：** 构建产物 `lib/` 已随仓库提交——git 安装后开箱即用，**无需任何构建步骤**。添加插件、重启应用，即可使用。\n\n### 升级\n\n```sh\n# npm 安装：直接更新到 registry 上的最新版本\ndsh plugin --profile desktop update @bananiceee/dsh-status-bar\n\n# 或重新 add 钉住的版本（应用内页面暂不支持自动更新：\n# 请先卸载，再安装新版本）\ndsh plugin --profile desktop add @bananiceee/dsh-status-bar@0.3.0\n\n# github: 安装——pnpm 会把不带 ref 的 github: 依赖钉在首次安装时解析到\n# 的 commit，`dsh plugin update github:...` 只会提示 \"Already up to date\"\n# 并保留旧构建。升级请用重新 add：\ndsh plugin --profile desktop remove @bananiceee/dsh-status-bar\ndsh plugin --profile desktop add github:Starlight-bananice/dsh-status-bar#v0.3.0\n```\n\n### 禁用\n\n- **只隐藏底栏** —— 客户端总开关（设置 → 状态栏，或输入栏的齿轮菜单）可立即关闭底栏；host 侧投影与用量账本仍在继续运行。\n- **完全停止插件** —— 在应用内「插件」页面禁用它（或从 profile 的 `bundles` 列表中移除）；重新启用即可恢复。\n\n### 卸载\n\n```sh\ndsh plugin --profile desktop remove @bananiceee/dsh-status-bar\n```\n\n卸载后内置统计行自动恢复（遮蔽单元格被释放）。**数据残留说明：** 浏览器 `localStorage`（`dsh.statusBar.v1`）与 host 侧用量文件（见 [权限与数据](#permissions--data权限与数据)）不会自动删除——需要彻底清除时请手动删除。\n\n## Quick start（快速上手）\n\n1. 先按上文安装；若安装程序要求，重启应用。\n2. 开始一个会话——底栏默认显示：状态 · 模型 · 轮次 · 耗时 · 速度 · 缓存命中 · Token · 上下文 · TPS · 会话时长 · 任务 · 队列 · 错误。\n3. 打开 **设置 → 状态栏**（设置导航中独立的分区，名称为 `Status Bar`），开关/排序信息段、开启换行，或一键重置。\n4. 想要费用估算？把你在用的模型加入**模型价格手册**：\n\n   ```sh\n   # 在 设置 → 状态栏 → 模型价格手册 中：\n   # 模型 \"deepseek-flash\" → 输入 2 / 缓存命中 0.04 / 缓存写入 0 / 输出 8（每 1M tokens，CNY）\n   # 一键「套用 DeepSeek 官方规则」：北京时间工作日 09:00–12:00、14:00–18:00 为峰时，\n   # 其余时段（含周末、法定节假日、调休休息日全天）为谷时，谷时价为峰时价的一半\n   ```\n\n   底栏随即显示如 `≈¥0.0123` 的当前会话费用；该数字是各模型用量 × 该模型自身价格之和（会话中途切换模型时，每一部分都按各自的费率计价）。点击齿轮旁的图表按钮可打开「用量与费用」弹窗（统计卡、费率卡、分页的用量历史——每页 20 条、最多 10 页——含输入 / 缓存命中 / 输出 / 费用列，以及带 ‹ › 周期翻页的逐模型费用趋势图）。\n\n## Configuration（配置）\n\n全部配置都在客户端，存于浏览器 `localStorage` 的 **`dsh.statusBar.v1`** 键下，通过设置页或输入栏齿轮菜单修改。\n\n| 配置项 | 默认值 | 含义 |\n|---|---|---|\n| `enabled` | `true` | 总开关；`false` 时整条底栏隐藏 |\n| `wrap` | `true` | 允许底栏在输入卡片宽度内换行多行显示，而非截断省略（两种模式下底栏都不会超出输入框边界） |\n| `segments` | 13 开 / 3 关（见下） | 已启用的信息段有序列表 |\n| `cost.currency` | `CNY` | 费用显示币种（`CNY` / `USD`） |\n| `cost.models` | `{}` | 用户维护的模型价格手册（模型 id → 价格 + 时段） |\n| `calendar.dayRules` | `true` | 按工作日/节假日区分峰谷；关闭后仅按时钟时段判断（旧版行为） |\n| `calendar.autoFetch` | `true` | 自动向 host 路由拉取并缓存节假日日历 |\n| `calendar.overrides` | `[]` | 手动例外日期（`{date, kind: off/work/auto, label}`），优先级高于已发布的日历 |\n\n**默认信息段状态：** 开启——状态、模型、轮次、耗时、速度、缓存命中、Token、上下文、TPS、会话时长、任务、队列、错误；关闭——标题、工作区、费用。\n\n**模型价格手册条目**（新增模型时填入的默认值，即 DeepSeek 官方现价，每 1M tokens）：峰时输入 `2` / 缓存命中 `0.04` / 输出 `8`，谷时输入 `1` / 缓存命中 `0.02` / 输出 `4`，缓存写入 `0`；峰谷计价默认开启，时区默认 `Asia/Shanghai`（DeepSeek 的规则以北京时间为准），峰时时段为工作日 `09:00–12:00`、`14:00–18:00`，周末与法定节假日/调休休息日全天按谷时。已有配置不会被覆盖，但旧版（v1）配置会被补齐为新字段：原时段保留原有「所有日期都生效」的行为，周末与节假日全天谷时开关默认打开——如需完全保持旧行为，把「按工作日/节假日区分峰谷」关掉即可。\n\n**节假日日历**：DeepSeek 按中国法定节假日与国务院调休安排判定工作日，这些日期每年重新公布，因此插件不写死日期。点击「刷新日历」会请求插件自身的 host 路由 `/status-bar/api/holidays`，由 host 拉取公开数据源（holiday-cn，转录自国务院通知）并缓存到 `<DSH_HOME>/dsh-status-bar/holidays.json`；日历或某一年不可用时自动回退为「仅按星期判断」，设置页会显示原因，也可在下方手动添加例外日期。\n\n**环境变量：** `DSH_HOME`（host 侧）——插件本地数据的基准目录（默认 `~/.dsh`）。无其他环境变量，无密钥，无 Token。\n\n**信息段速查**（全部 16 个，均可开关、排序）：\n\n| 段 | 内容 | 数据源 |\n|---|---|---|\n| 状态 | ● 运行中 / 空闲 / 出错状态点 | 会话快照 `running` / `lastAgentError` + chat `partial` / `runningCalls` |\n| 模型 | 最近一次响应的模型 | `sessionModel` 投影（host 折叠 assistant/message 事件） |\n| 标题 | 会话标题（超长截断） | `SessionSummary.displayTitle` |\n| 工作区 | 工作区目录名 | `SessionSummary.cwd` |\n| 轮次与步数 | N 轮 · M 步 | `sessionStats` 投影（无投影时窗口折叠回退） |\n| 模型与工具耗时 | LLM 耗时 · 工具调用耗时 | `sessionStats` |\n| TTFT 与解码 | 平均首 Token · tok/s | `sessionStats` |\n| 缓存命中 | 提示词缓存命中占比（两位小数，上限 99.99%） | `tokenUsage` |\n| Token | 计费输入/输出总量 | `tokenUsage` |\n| 上下文 | 上下文窗口占用 % | `contextPressure` |\n| 实时 TPS | 当前生成速率（默认开启） | 客户端折叠会话事件窗口（`assistant/live-chunk`）；分块感知的 token 估算（约 4 字符/token + 块/角色框架开销，`block-end` 时按整块重新计价），在 1.5 秒滑动窗口内测速，因此该数值不受流的送达粒度影响；provider 上报的精确用量到达后切换为上报速率，会话未在生成时显示 0 |\n| 会话时长 | 挂钟时间，运行时走动 | chat `turnTimings` |\n| 费用估算 | ≈¥0.0123（默认关闭） | `sessionUsage` 投影——每个模型的用量 × 其自身生效价格；峰谷由「工作日/周末/节假日 + 时段」规则在该步发生时刻判定，跨模型求和 |\n| 后台任务 | 运行中的后台任务 | `ctx.jobs` 花名册（与桌面版自身的会话头部任务列表同源） |\n| 队列 | 排队中的消息 | 输入框收件箱（`useInput` → `queue`） |\n| 错误 | 失败/重试/超限计数（仅 >0 时显示） | chat node 折叠 |\n\n## Permissions & data（权限与数据）\n\n| 类别 | 插件会触及什么 |\n|---|---|\n| 文件 | host 侧把用量账本写入 `<DSH_HOME>/dsh-status-bar/usage.jsonl`（默认 `~/.dsh/dsh-status-bar/usage.jsonl`；每条 assistant 消息一条记录：时间戳、模型、input/cacheRead/cacheWrite/output token 数）。内存中的历史为 120 天滚动窗口。 |\n| 网络 | 客户端只访问插件自身的本地 webserver 路由（与 DSH Web UI 同源，`127.0.0.1`）：`/status-bar/api/usage` 提供图表分桶数据，`/status-bar/api/holidays` 提供节假日日历。仅在你点击「刷新日历」或缓存过期（12 小时）时，host 才会向公开数据源 `cdn.jsdelivr.net`（holiday-cn 数据集）发起一次 GET 以更新日历——关掉「自动获取」即完全不出站。 |\n| 凭据 | **无。** 插件从不读取、存储或传输 API 密钥、Token 或 Cookie。 |\n| 用户数据 | 客户端：`localStorage[\"dsh.statusBar.v1\"]`（底栏配置 + 价格手册 + 节假日例外）、`localStorage[\"dsh.statusBar.holidays.v1\"]`（节假日日历缓存）——不含任何对话内容。host 侧：用量账本（仅 token 计数）与 `holidays.json` 日历缓存；均不含提示词、消息、文件内容。 |\n\n## Troubleshooting（故障排查）\n\n| 现象 | 原因与处理 |\n|---|---|\n| 底栏不显示 | 总开关被关闭 → 在 设置 → 状态栏 或齿轮菜单中开启。`localStorage` 被清空？配置会重置为默认值。全新安装后请重启一次应用。 |\n| 从 0.1.x 升级后什么都加载不出来 | 属于预期现象——`0.1.x` 版本线无法在 0.2.0 桌面版上运行。先卸载它，再把 `0.2.x` 安装到 `desktop` profile。 |\n| TPS 段为 0 / 空白 | 本会话尚未开始流式输出，或流已经结束（没有活跃生成时按设计显示 0）。每次重试都会重启测量窗口。 |\n| TPS 与其他插件冲突 | 设计上不存在——本插件**不注册任何共享投影键**。实时速率在客户端折叠本会话自己的事件窗口，因此其他状态栏/TPS 插件无法顶掉或遮蔽它。 |\n| 费用估算缺失 | 会话所用的模型都不在价格手册中（或价格全为 0）→ 在 设置 → 状态栏 → 模型价格手册 中添加。费用按手册费率估算（逐模型、平峰或峰谷），并非 provider 账单。 |\n| 费用比账单偏高/偏低 | 先看价格手册里该模型的时段徽标（峰时/谷时及其原因）：若是「非峰时时段」但实际应为峰时，检查时段是否填成了 24 小时制 `09:00`（本插件按 24 小时制解析）；若是周末/节假日判错，点「刷新日历」更新节假日日历，或手动添加例外日期。 |\n| 节假日日历获取失败 | 设置页会显示失败原因并回退为「仅按星期判断」（周末仍按谷时，调休上班日会判成谷时）。可稍后重试，或手动添加例外日期；也可关闭「自动获取」以避免任何出站请求。 |\n| 用量图表为空 | 该时段内还没有带 provider 用量上报的 assistant 消息，或 `DSH_HOME` 指向了别处（核对上面 `usage.jsonl` 的位置）。 |\n| 升级后界面异常 | 硬刷新窗口（客户端 bundle 可能过期），并在应用内「插件」页面核对插件版本。 |\n| 不确定当前装的是哪个版本 | 在终端（macOS/Linux）执行：`node -p \"require(process.env.HOME + '/.dsh/profiles/desktop/node_modules/@bananiceee/dsh-status-bar/package.json').version\"`——自建 web profile 时把 `desktop` 换成 `web`。 |\n\n**日志：** 插件自身不写任何日志文件——host 侧诊断信息出现在 DSH host 进程输出中，客户端问题见浏览器 devtools 控制台。\n\n**回滚：** 设置页提供一键**重置**（恢复全部默认值）。插件本体：卸载 → 用 `dsh plugin --profile desktop add <pkg>@<version>` 重新添加旧版本；移除插件后内置统计行始终自动恢复。\n\n## Development（开发）\n\n```sh\npnpm install            # devDependencies：typescript / tsdown / react / @types，以及本插件编译所依赖的 DSH 包（精确钉在 @deepseek-ai/*@0.2.0-rc.2）\npnpm run build          # host tsc → lib/，客户端声明 → lib/types/client，tsdown → lib/client.js\npnpm run typecheck:client   # 仅做客户端类型检查\npnpm run verify         # 重新构建，并在提交的 lib/ 与 src/ 不一致时报错\n```\n\n`lib/` 下的构建产物**已提交入库**（自 v0.1.5 起），因此普通 git 安装无需任何构建步骤；上面的命令用于在发版前刷新产物。如今这里的任何一步都不再需要 DeepSeek Harness 源码检出：插件编译所依赖的每一个 `@deepseek-ai/*` 包都是精确钉住的 devDependency，从本包自己的 `node_modules` 解析。host 侧源码为纯 TypeScript（Cordis 插件），客户端源码为 React + DSH client UI slots。\n\n**保持 `lib/` 与源码同步：** 执行 `pnpm install --frozen-lockfile`（可复现的重建使用 `pnpm-lock.yaml` 钉住的精确工具链），推送前执行 `pnpm run verify`（`scripts/verify.sh` 会重建 host + client，并在提交的 `lib/` 与 `src/` 出现漂移时报错）。仓库还附带一个 pre-push hook，只要 push 触及 `src/` 或构建配置就会自动运行它——启用一次即可：\n\n```sh\ngit config core.hooksPath .githooks\n```\n\n`lib-sync` GitHub Actions 工作流在 CI 中强制同一约束：每次 push/PR 跑一次快速的产物完整性检查，触及 `src/` 的 PR 与手动触发时再跑一次完整的「重建 vs `lib/`」漂移检查。\n\n**贡献方式：** fork 本仓库，从 `main` 开分支并提交 PR——欢迎小而聚焦、描述清晰的改动。Bug 请通过 Issues 反馈，附上 DSH 版本（含桌面版应用版本）、浏览器与最小复现步骤。\n\n## License & security（许可证与安全）\n\n- **许可证：** [MIT](LICENSE)（© 2026 Starlight-bananice）。\n- **安全：** 本插件不持有任何凭据、不发起任何网络调用，攻击面就是 DSH host 进程本身。如需私下报告安全问题，请使用本仓库的 GitHub **Security Advisories**（https://github.com/Starlight-bananice/dsh-status-bar/security/advisories/new）——漏洞请勿提公开 Issue。\n","readmeFilename":"README.zh.md"}