{"_id":"@aiwayds/dsh-llm-stats","_rev":"10-bb050e2bb162c98564893a06f785d188","name":"@aiwayds/dsh-llm-stats","dist-tags":{"latest":"0.8.0"},"versions":{"0.1.0":{"name":"@aiwayds/dsh-llm-stats","version":"0.1.0","keywords":["dsh","dsh-plugin","stats","usage","tokens","deepseek-harness","llm"],"author":{"name":"fliu56"},"license":"MIT","_id":"@aiwayds/dsh-llm-stats@0.1.0","maintainers":[{"name":"aiwayds","email":"aiway.ds@qq.com"}],"homepage":"https://github.com/fan56/dsh-llm-stats","bugs":{"url":"https://github.com/fan56/dsh-llm-stats/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"a6bbc696b8841c43e0a4007621c4cc69a61ce5ec","tarball":"https://registry.npmjs.org/@aiwayds/dsh-llm-stats/-/dsh-llm-stats-0.1.0.tgz","fileCount":29,"integrity":"sha512-oMaVjTyEgxnDHuf3w6/CgW1kNhFSWd4QFA0OjQTEHFE2G4RqVNapuvU5AoRSU4Evyu80Sm1qSUtpHD5IDbmkAA==","signatures":[{"sig":"MEUCIQD+unAeVao8m0AX4t3EnRj2JB2EBZBXYi3p+ng0KllIQAIgM0bxpbe/aSg+8XTUDvDf7M0+aVxyE5zXStLKngD82xw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aiwayds%2fdsh-llm-stats@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":162623},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.19.0"},"gitHead":"d07f9669f57106eb53a42178f9f5bd028eacc1b7","scripts":{"test":"node --test test/fold.test.mjs test/aggregate.test.mjs test/render.test.mjs test/store.test.mjs test/plugin.test.mjs","build":"tsc -p tsconfig.json","check":"tsc --noEmit -p tsconfig.json","pretest":"npm run build"},"_npmUser":{"name":"aiwayds","email":"aiway.ds@qq.com"},"repository":{"url":"git+https://github.com/fan56/dsh-llm-stats.git","type":"git"},"_npmVersion":"10.9.8","description":"dsh plugin: persistent whole-machine LLM usage ledger with a pure-text /llm-stats command (tokens, cache hit, model/tool time, per-day bars)","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.0","@types/node":"^24.0.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":"0.1.1-rc.2","@deepseek-ai/dsh-session":"0.1.1-rc.2","@deepseek-ai/schemastery":"3.18.1","@deepseek-ai/dsh-commands":"0.1.1-rc.2"},"peerDependencies":{"@deepseek-ai/dsh-llm":"0.1.1-rc.2","@deepseek-ai/schemastery":"3.18.1"},"peerDependenciesMeta":{"@deepseek-ai/dsh-llm":{"optional":true},"@deepseek-ai/schemastery":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-llm-stats_0.1.0_1788236191695_0.9874077478077588","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@aiwayds/dsh-llm-stats","version":"0.2.0","keywords":["dsh","dsh-plugin","stats","usage","tokens","deepseek-harness","llm"],"author":{"name":"fliu56"},"license":"MIT","_id":"@aiwayds/dsh-llm-stats@0.2.0","maintainers":[{"name":"aiwayds","email":"aiway.ds@qq.com"}],"homepage":"https://github.com/fan56/dsh-llm-stats","bugs":{"url":"https://github.com/fan56/dsh-llm-stats/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"1e46a2acf0a936988508fad02d6aa41b76e711a3","tarball":"https://registry.npmjs.org/@aiwayds/dsh-llm-stats/-/dsh-llm-stats-0.2.0.tgz","fileCount":33,"integrity":"sha512-MDRVtmW3HyCBoB5sYrWfXbc8Wt95oR50UbyaAhvgS7dSYXvhZsws/yjJmFvb9qvwBhfq+kBoowSYfmqDG7kDWg==","signatures":[{"sig":"MEUCIQDRxXdgtpWkQijRpdnW1/G4x2IeVkU/VsZYonw45fgwugIgAlG/EA3hipvO0VkiZA1dzhDKcZMuZ/5GO3NZ+LsoXI8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aiwayds%2fdsh-llm-stats@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":210488},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.19.0"},"gitHead":"aae66ffcad97c6d319b13089c972e135dc39c2a1","scripts":{"test":"node --test test/fold.test.mjs test/aggregate.test.mjs test/render.test.mjs test/store.test.mjs test/plugin.test.mjs test/backfill.test.mjs","build":"tsc -p tsconfig.json","check":"tsc --noEmit -p tsconfig.json","pretest":"npm run build"},"_npmUser":{"name":"aiwayds","email":"aiway.ds@qq.com"},"repository":{"url":"git+https://github.com/fan56/dsh-llm-stats.git","type":"git"},"_npmVersion":"10.9.8","description":"dsh plugin: persistent whole-machine LLM usage ledger with a pure-text /llm-stats command (tokens, cache hit, model/tool time, per-day bars)","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.0","@types/node":"^24.0.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":"0.1.1-rc.2","@deepseek-ai/dsh-session":"0.1.1-rc.2","@deepseek-ai/schemastery":"3.18.1","@deepseek-ai/dsh-commands":"0.1.1-rc.2"},"peerDependencies":{"@deepseek-ai/dsh-llm":"0.1.1-rc.2","@deepseek-ai/schemastery":"3.18.1"},"peerDependenciesMeta":{"@deepseek-ai/dsh-llm":{"optional":true},"@deepseek-ai/schemastery":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-llm-stats_0.2.0_1788238432239_0.8245783877542867","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@aiwayds/dsh-llm-stats","version":"0.3.0","keywords":["dsh","dsh-plugin","stats","usage","tokens","deepseek-harness","llm"],"author":{"name":"fliu56"},"license":"MIT","_id":"@aiwayds/dsh-llm-stats@0.3.0","maintainers":[{"name":"aiwayds","email":"aiway.ds@qq.com"}],"homepage":"https://github.com/fan56/dsh-llm-stats","bugs":{"url":"https://github.com/fan56/dsh-llm-stats/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"83d1a59fefaf453af5b9a64bb1acf0062ef76aff","tarball":"https://registry.npmjs.org/@aiwayds/dsh-llm-stats/-/dsh-llm-stats-0.3.0.tgz","fileCount":33,"integrity":"sha512-PmV/WBNh1vaxESTvbtXBoS9TJd2mvNOQiX0PAD6jdvOmbKeyVB9fpfBYh2Pg9x2/PJTE5cetleJoCGrEYZmduQ==","signatures":[{"sig":"MEQCIE1USuu47mwZKB0QuEfCyIEpLD76G0D9IzgRJJFWZsMeAiBZkhwD7Rx/40F37cgYF9jHsfsCgQJ+iAXZMGoiXIug2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aiwayds%2fdsh-llm-stats@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":216288},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.19.0"},"gitHead":"f3c175b88a9e8fcc75b7e9120d793cda52263c87","scripts":{"test":"node --test test/fold.test.mjs test/aggregate.test.mjs test/render.test.mjs test/store.test.mjs test/plugin.test.mjs test/backfill.test.mjs","build":"tsc -p tsconfig.json","check":"tsc --noEmit -p tsconfig.json","pretest":"npm run build"},"_npmUser":{"name":"aiwayds","email":"aiway.ds@qq.com"},"repository":{"url":"git+https://github.com/fan56/dsh-llm-stats.git","type":"git"},"_npmVersion":"10.9.8","description":"dsh plugin: persistent whole-machine LLM usage ledger with a markdown /llm-stats report (GFM tables + emoji: tokens, cache hit, model/tool time, per-day bars)","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.0","@types/node":"^24.0.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":"0.1.1-rc.2","@deepseek-ai/dsh-session":"0.1.1-rc.2","@deepseek-ai/schemastery":"3.18.1","@deepseek-ai/dsh-commands":"0.1.1-rc.2"},"peerDependencies":{"@deepseek-ai/dsh-llm":"0.1.1-rc.2","@deepseek-ai/schemastery":"3.18.1"},"peerDependenciesMeta":{"@deepseek-ai/dsh-llm":{"optional":true},"@deepseek-ai/schemastery":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-llm-stats_0.3.0_1788251934717_0.6043487458756536","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@aiwayds/dsh-llm-stats","version":"0.4.0","keywords":["dsh","dsh-plugin","stats","usage","tokens","deepseek-harness","llm"],"author":{"name":"fliu56"},"license":"MIT","_id":"@aiwayds/dsh-llm-stats@0.4.0","maintainers":[{"name":"aiwayds","email":"aiway.ds@qq.com"}],"homepage":"https://github.com/fan56/dsh-llm-stats","bugs":{"url":"https://github.com/fan56/dsh-llm-stats/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"bf0d92ed9dad6096f928742d74a9f592be374636","tarball":"https://registry.npmjs.org/@aiwayds/dsh-llm-stats/-/dsh-llm-stats-0.4.0.tgz","fileCount":33,"integrity":"sha512-Jgw9Cjpv4ZWrr9RLN98zgr9AnMpYZAVXP1+cp4619YkhZcUnLK24FyXpD/OZSx2i+BUPcDhug+/WvlayfqxYLA==","signatures":[{"sig":"MEQCIBvxodldl5C0ZyUYg/ug7ueVZwRSnSlVYCnSiCuMSf7lAiBx1qXK9mgwNMV1WIcrNaxMSWkMlkRxvOSZqgnIwvanYQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aiwayds%2fdsh-llm-stats@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":218240},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.19.0"},"gitHead":"0fc2acc37e3c77951e1803d15971adf2add35474","scripts":{"test":"node --test test/fold.test.mjs test/aggregate.test.mjs test/render.test.mjs test/store.test.mjs test/plugin.test.mjs test/backfill.test.mjs","build":"tsc -p tsconfig.json","check":"tsc --noEmit -p tsconfig.json","smoke":"node scripts/smoke-boot.mjs","pretest":"npm run build"},"_npmUser":{"name":"aiwayds","email":"aiway.ds@qq.com"},"repository":{"url":"git+https://github.com/fan56/dsh-llm-stats.git","type":"git"},"_npmVersion":"10.9.8","description":"dsh plugin: persistent whole-machine LLM usage ledger with a markdown /llm-stats report (GFM tables + emoji: tokens, cache hit, model/tool time, per-day bars)","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.0","@types/node":"^24.0.0","@deepseek-ai/cordis":"4.0.2","@deepseek-ai/dsh-llm":"0.1.2-alpha.3","@deepseek-ai/dsh-session":"0.1.2-alpha.3","@deepseek-ai/schemastery":"3.18.2","@deepseek-ai/dsh-commands":"0.1.2-alpha.3"},"peerDependencies":{"@deepseek-ai/dsh-llm":">=0.1.2-alpha.3","@deepseek-ai/schemastery":"^3.18.2"},"peerDependenciesMeta":{"@deepseek-ai/dsh-llm":{"optional":true},"@deepseek-ai/schemastery":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-llm-stats_0.4.0_1788281485159_0.10117602242813861","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@aiwayds/dsh-llm-stats","version":"0.4.1","keywords":["dsh","dsh-plugin","stats","usage","tokens","deepseek-harness","llm"],"author":{"name":"fliu56"},"license":"MIT","_id":"@aiwayds/dsh-llm-stats@0.4.1","maintainers":[{"name":"aiwayds","email":"aiway.ds@qq.com"}],"homepage":"https://github.com/fan56/dsh-llm-stats","bugs":{"url":"https://github.com/fan56/dsh-llm-stats/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"e02a307a62b12f6abccb9ddf7e181511fda5542f","tarball":"https://registry.npmjs.org/@aiwayds/dsh-llm-stats/-/dsh-llm-stats-0.4.1.tgz","fileCount":33,"integrity":"sha512-v2y5yEC3Ml856vuAZz1UCGrQkqL8LpVupNY4mCLLVjpfhhSHYUcjJU8942UFuP4ZHg5NY5WwKLA+weeag6rzeQ==","signatures":[{"sig":"MEQCIFP3HDO+WRp749Tfy1afPlVKkLFu30uE7vUeisq1gMGmAiBU08pV80HyVFMXKQuGCOpMi5UcynH/bFFxT9Rcma46pw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aiwayds%2fdsh-llm-stats@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":218240},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.19.0"},"gitHead":"cdb50379be57803e46da1064147b8e149fe36bfd","scripts":{"test":"node --test test/fold.test.mjs test/aggregate.test.mjs test/render.test.mjs test/store.test.mjs test/plugin.test.mjs test/backfill.test.mjs","build":"tsc -p tsconfig.json","check":"tsc --noEmit -p tsconfig.json","smoke":"node scripts/smoke-boot.mjs","pretest":"npm run build"},"_npmUser":{"name":"aiwayds","email":"aiway.ds@qq.com"},"repository":{"url":"git+https://github.com/fan56/dsh-llm-stats.git","type":"git"},"_npmVersion":"10.9.8","description":"dsh plugin: persistent whole-machine LLM usage ledger with a markdown /llm-stats report (GFM tables + emoji: tokens, cache hit, model/tool time, per-day bars)","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.0","@types/node":"^24.0.0","@deepseek-ai/cordis":"4.0.2","@deepseek-ai/dsh-llm":"0.1.2-alpha.4","@deepseek-ai/dsh-session":"0.1.2-alpha.4","@deepseek-ai/schemastery":"3.18.2","@deepseek-ai/dsh-commands":"0.1.2-alpha.4"},"peerDependencies":{"@deepseek-ai/dsh-llm":">=0.1.2-alpha.4","@deepseek-ai/schemastery":"^3.18.2"},"peerDependenciesMeta":{"@deepseek-ai/dsh-llm":{"optional":true},"@deepseek-ai/schemastery":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-llm-stats_0.4.1_1788338647707_0.6386505459762148","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@aiwayds/dsh-llm-stats","version":"0.5.0","keywords":["dsh","dsh-plugin","stats","usage","tokens","deepseek-harness","llm"],"author":{"name":"fliu56"},"license":"MIT","_id":"@aiwayds/dsh-llm-stats@0.5.0","maintainers":[{"name":"aiwayds","email":"aiway.ds@qq.com"}],"homepage":"https://github.com/fan56/dsh-llm-stats","bugs":{"url":"https://github.com/fan56/dsh-llm-stats/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"e51342e558a5021caefc050b15471ab32d3aa443","tarball":"https://registry.npmjs.org/@aiwayds/dsh-llm-stats/-/dsh-llm-stats-0.5.0.tgz","fileCount":33,"integrity":"sha512-zHnOsU288xnwgSCA/AHEjJR28M2+ek6YzBum2Gt9/AzZ1mxxv1EqUI8JZkpUgz+dhFbyFAG2dSYjXz6Y/nWP+g==","signatures":[{"sig":"MEUCID61DkOg5XytYZLdGPdJeMijwdTxWkeIFQGWw4Bl1MjaAiEA8JzGpATF6+8vU1Oc+TuCOWtzoaytfOSr2lmGZ8A+oUo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aiwayds%2fdsh-llm-stats@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":218610},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.19.0"},"gitHead":"f6ce1090bcabc97cb96750c77f72aa5efed5db7d","scripts":{"test":"node --test test/fold.test.mjs test/aggregate.test.mjs test/render.test.mjs test/store.test.mjs test/plugin.test.mjs test/backfill.test.mjs","build":"tsc -p tsconfig.json","check":"tsc --noEmit -p tsconfig.json","smoke":"node scripts/smoke-boot.mjs","pretest":"npm run build"},"_npmUser":{"name":"aiwayds","email":"aiway.ds@qq.com"},"repository":{"url":"git+https://github.com/fan56/dsh-llm-stats.git","type":"git"},"_npmVersion":"10.9.8","description":"dsh plugin: persistent whole-machine LLM usage ledger with a markdown /llm-stats report (GFM tables + emoji: tokens, cache hit, model/tool time, per-day bars)","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.0","@types/node":"^24.0.0","@deepseek-ai/cordis":"4.0.2","@deepseek-ai/dsh-llm":"0.1.2-rc.1","@deepseek-ai/dsh-session":"0.1.2-rc.1","@deepseek-ai/schemastery":"3.18.2","@deepseek-ai/dsh-commands":"0.1.2-rc.1"},"peerDependencies":{"@deepseek-ai/dsh-llm":">=0.1.2-rc.1","@deepseek-ai/schemastery":"^3.18.2"},"peerDependenciesMeta":{"@deepseek-ai/dsh-llm":{"optional":true},"@deepseek-ai/schemastery":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-llm-stats_0.5.0_1788442318802_0.9288089952268712","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@aiwayds/dsh-llm-stats","version":"0.5.1","keywords":["dsh","dsh-plugin","stats","usage","tokens","deepseek-harness","llm"],"author":{"name":"fliu56"},"license":"MIT","_id":"@aiwayds/dsh-llm-stats@0.5.1","maintainers":[{"name":"aiwayds","email":"aiway.ds@qq.com"}],"homepage":"https://github.com/fan56/dsh-llm-stats","bugs":{"url":"https://github.com/fan56/dsh-llm-stats/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"9b3fc4acc598235ffb4a1aa606a655d023d68223","tarball":"https://registry.npmjs.org/@aiwayds/dsh-llm-stats/-/dsh-llm-stats-0.5.1.tgz","fileCount":33,"integrity":"sha512-P3GvUtsGJMTQ9JFmboXxGGZvw554tE9Mg212IX36g+HdPi4xs/olHGHJONLFg8iud5UXU34AHfVpzvqEdRmQYw==","signatures":[{"sig":"MEQCIEm1vQCQkI4TQjpCkHLjD1Dw8CGNpn5Gq2JMxZ6Dcc7FAiAeS4noK+uMWX6UPwupU8kehNZUoZVimKY7Ofzy7v7nOw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aiwayds%2fdsh-llm-stats@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":224130},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.19.0"},"gitHead":"3fa82a842d7aa6e79855f05ea9f7d248a73db90b","scripts":{"test":"node --test test/fold.test.mjs test/aggregate.test.mjs test/render.test.mjs test/store.test.mjs test/plugin.test.mjs test/backfill.test.mjs","build":"tsc -p tsconfig.json","check":"tsc --noEmit -p tsconfig.json","smoke":"node scripts/smoke-boot.mjs","pretest":"npm run build"},"_npmUser":{"name":"aiwayds","email":"aiway.ds@qq.com"},"repository":{"url":"git+https://github.com/fan56/dsh-llm-stats.git","type":"git"},"_npmVersion":"10.9.8","description":"dsh plugin: persistent whole-machine LLM usage ledger with a markdown /llm-stats report (GFM tables + emoji: tokens, cache hit, model/tool time, per-day bars)","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.0","@types/node":"^24.0.0","@deepseek-ai/cordis":"4.0.2","@deepseek-ai/dsh-llm":"0.1.2-rc.1","@deepseek-ai/dsh-session":"0.1.2-rc.1","@deepseek-ai/schemastery":"3.18.2","@deepseek-ai/dsh-commands":"0.1.2-rc.1"},"peerDependencies":{"@deepseek-ai/dsh-llm":">=0.1.2-rc.1","@deepseek-ai/schemastery":"^3.18.2"},"peerDependenciesMeta":{"@deepseek-ai/dsh-llm":{"optional":true},"@deepseek-ai/schemastery":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-llm-stats_0.5.1_1788603373078_0.07152377785905784","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@aiwayds/dsh-llm-stats","version":"0.6.0","keywords":["dsh","dsh-plugin","stats","usage","tokens","deepseek-harness","llm"],"author":{"name":"fliu56"},"license":"MIT","_id":"@aiwayds/dsh-llm-stats@0.6.0","maintainers":[{"name":"aiwayds","email":"aiway.ds@qq.com"}],"homepage":"https://github.com/fan56/dsh-llm-stats","bugs":{"url":"https://github.com/fan56/dsh-llm-stats/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"41872b487680a7840c38e8fcee5529730ace0ae2","tarball":"https://registry.npmjs.org/@aiwayds/dsh-llm-stats/-/dsh-llm-stats-0.6.0.tgz","fileCount":33,"integrity":"sha512-0IqXt5VyRMr2vaNPitS6FvQ1t+JJsvjJOPnxX+awGxuEBe82L8bSGpEY4DOLgTrTfYp/xy9SYF2rcPCNTjJTBQ==","signatures":[{"sig":"MEYCIQDj82C60MPZ6PwixIFVYezP9m+MCw+SMo8L8vMaVcr0aQIhAOLa12CMiEct6T1LF9qWMpAbe2aAYehflxytvtDYc8+n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHwaJz/Ju48iGavhe54tS6/r/HVu6Ut3BpirNaW0t5nTAiEAjWMo4XFA/ZAF0tflUq3Y5WRCzmBEu8c/Gw2+vLV5UrE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aiwayds%2fdsh-llm-stats@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":231816},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.19.0"},"gitHead":"1b99769f799f7fca007c32e346f265587a7c7737","scripts":{"test":"node --test test/fold.test.mjs test/aggregate.test.mjs test/render.test.mjs test/store.test.mjs test/plugin.test.mjs test/backfill.test.mjs","build":"tsc -p tsconfig.json","check":"tsc --noEmit -p tsconfig.json","smoke":"node scripts/smoke-boot.mjs","pretest":"npm run build"},"_npmUser":{"name":"aiwayds","email":"aiway.ds@qq.com"},"repository":{"url":"git+https://github.com/fan56/dsh-llm-stats.git","type":"git"},"_npmVersion":"10.9.8","description":"dsh plugin: persistent whole-machine LLM usage ledger with a markdown /llm-stats report (GFM tables + emoji: tokens, cache hit, model/tool time, per-day bars)","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.0","@types/node":"^24.0.0","@deepseek-ai/cordis":"4.0.2","@deepseek-ai/dsh-llm":"0.1.5-rc.2","@deepseek-ai/dsh-session":"0.1.5-rc.2","@deepseek-ai/schemastery":"3.18.2","@deepseek-ai/dsh-commands":"0.1.5-rc.2"},"peerDependencies":{"@deepseek-ai/dsh-llm":">=0.1.5-rc.2","@deepseek-ai/schemastery":"^3.18.2"},"peerDependenciesMeta":{"@deepseek-ai/dsh-llm":{"optional":true},"@deepseek-ai/schemastery":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-llm-stats_0.6.0_1789099358035_0.09607957260904265","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@aiwayds/dsh-llm-stats","version":"0.7.0","keywords":["dsh","dsh-plugin","stats","usage","tokens","deepseek-harness","llm"],"author":{"name":"fliu56"},"license":"MIT","_id":"@aiwayds/dsh-llm-stats@0.7.0","maintainers":[{"name":"aiwayds","email":"aiway.ds@qq.com"}],"homepage":"https://github.com/fan56/dsh-llm-stats","bugs":{"url":"https://github.com/fan56/dsh-llm-stats/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"cf1534f85588d22098b421ecca6453da1f84f2c4","tarball":"https://registry.npmjs.org/@aiwayds/dsh-llm-stats/-/dsh-llm-stats-0.7.0.tgz","fileCount":36,"integrity":"sha512-/KIQ/LWGtIL160HxaSo/9JWjAy1PXS6Ld6fyFTDK2eLnPKS0HwKGLeb02+ozB6/95ZhOVYJO9u8+6iSLc9U3JQ==","signatures":[{"sig":"MEUCIQD7gYwKvWb8GhWfC/ellldwdh8UxhidBK2Vz1R7VhGBDAIgc7Pgvi+gsQDQUWaX7ObDzfetvlHVR5385KJnEJUU7qI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICUjGgGz3rfaDlG2VhhE5IV/qZOP8bdMKG/6Ta0j2QpHAiBu72Q5BFZ6Kjdev5aq1Pz2PqBSgM3avdNbscBocudFew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aiwayds%2fdsh-llm-stats@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":232504},"icon":"./icon.svg","main":"lib/index.js","type":"module","types":"lib/index.d.ts","engines":{"node":">=22.19.0"},"gitHead":"941a9be470f1d067ded4b8dfb6338a3679489e61","scripts":{"test":"node --test test/fold.test.mjs test/aggregate.test.mjs test/render.test.mjs test/store.test.mjs test/plugin.test.mjs test/backfill.test.mjs","build":"tsc -p tsconfig.json","check":"tsc --noEmit -p tsconfig.json","smoke":"node scripts/smoke-boot.mjs","pretest":"npm run build"},"_npmUser":{"name":"aiwayds","email":"aiway.ds@qq.com"},"repository":{"url":"git+https://github.com/fan56/dsh-llm-stats.git","type":"git"},"_npmVersion":"10.9.8","description":"dsh plugin: persistent whole-machine LLM usage ledger with a markdown /llm-stats report (GFM tables + emoji: tokens, cache hit, model/tool time, per-day bars)","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.0","@types/node":"^24.0.0","@deepseek-ai/cordis":"4.0.4","@deepseek-ai/dsh-llm":"0.1.7-rc.1","@deepseek-ai/dsh-session":"0.1.7-rc.1","@deepseek-ai/schemastery":"3.18.4","@deepseek-ai/dsh-commands":"0.1.7-rc.1"},"peerDependencies":{"@deepseek-ai/dsh-llm":">=0.1.7-rc.1","@deepseek-ai/schemastery":"^3.18.2"},"peerDependenciesMeta":{"@deepseek-ai/dsh-llm":{"optional":true},"@deepseek-ai/schemastery":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-llm-stats_0.7.0_1790229773847_0.6406101832403288","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"_id":"@aiwayds/dsh-llm-stats@0.8.0","dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"bugs":{"url":"https://github.com/fan56/dsh-llm-stats/issues"},"dist":{"shasum":"d6e9338fc5b927d379d1ce7ce6b11dc234d9a489","tarball":"https://registry.npmjs.org/@aiwayds/dsh-llm-stats/-/dsh-llm-stats-0.8.0.tgz","fileCount":36,"integrity":"sha512-4xErUuzht9EWxz5rONLnyBGJgVw83w4nh2KLuOKZZM2FffnMf3ClDXdHm62CsH/2GDfs0/n2Nrfs20vI6MF3bg==","signatures":[{"sig":"MEYCIQCEabau7m9dp1oo6Z8a/qK3WUvmstpt2aIPCCOo0/t0SwIhAIABQM9lX6foy7GdLcw3kcPQEDi4NzqYonDHvUKXBz8G","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEGukHIOSN2dimqQQwbAzKbQGt+FYUejyeDbSOhbIltSAiBdylX9+oUMD7X6xs8eglD1Rn4dxBLKy9f3s9MIRY+kTQ=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aiwayds%2fdsh-llm-stats@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":232504},"icon":"./icon.svg","main":"lib/index.js","name":"@aiwayds/dsh-llm-stats","type":"module","types":"lib/index.d.ts","author":{"name":"fliu56"},"engines":{"node":">=22.19.0"},"gitHead":"21450c8cec5156943561a8984b30d1acef5926c7","license":"MIT","scripts":{"test":"node --test test/fold.test.mjs test/aggregate.test.mjs test/render.test.mjs test/store.test.mjs test/plugin.test.mjs test/backfill.test.mjs","build":"tsc -p tsconfig.json","check":"tsc --noEmit -p tsconfig.json","smoke":"node scripts/smoke-boot.mjs","pretest":"npm run build"},"version":"0.8.0","_npmUser":{"name":"aiwayds","email":"aiway.ds@qq.com"},"homepage":"https://github.com/fan56/dsh-llm-stats","keywords":["dsh","dsh-plugin","stats","usage","tokens","deepseek-harness","llm"],"repository":{"url":"git+https://github.com/fan56/dsh-llm-stats.git","type":"git"},"_npmVersion":"10.9.8","description":"dsh plugin: persistent whole-machine LLM usage ledger with a markdown /llm-stats report (GFM tables + emoji: tokens, cache hit, model/tool time, per-day bars)","directories":{},"maintainers":[{"name":"aiwayds","email":"aiway.ds@qq.com"}],"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.0","@types/node":"^24.0.0","@deepseek-ai/cordis":"4.0.4","@deepseek-ai/dsh-llm":"0.2.0-rc.2","@deepseek-ai/dsh-session":"0.2.0-rc.2","@deepseek-ai/schemastery":"3.18.4","@deepseek-ai/dsh-commands":"0.2.0-rc.2"},"peerDependencies":{"@deepseek-ai/dsh-llm":">=0.2.0-rc.2","@deepseek-ai/schemastery":"^3.18.2"},"peerDependenciesMeta":{"@deepseek-ai/dsh-llm":{"optional":true},"@deepseek-ai/schemastery":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-llm-stats_0.8.0_1790685512940_0.5156341654565966"}}},"time":{"created":"2026-09-01T04:16:31.529Z","modified":"2026-09-29T12:38:33.389Z","0.1.0":"2026-09-01T04:16:31.845Z","0.2.0":"2026-09-01T04:53:52.399Z","0.3.0":"2026-09-01T08:38:54.841Z","0.4.0":"2026-09-01T16:51:25.300Z","0.4.1":"2026-09-02T08:44:07.834Z","0.5.0":"2026-09-03T13:31:58.951Z","0.5.1":"2026-09-05T10:16:13.219Z","0.6.0":"2026-09-11T04:02:38.117Z","0.7.0":"2026-09-24T06:02:53.934Z","0.8.0":"2026-09-29T12:38:33.046Z"},"bugs":{"url":"https://github.com/fan56/dsh-llm-stats/issues"},"author":{"name":"fliu56"},"license":"MIT","homepage":"https://github.com/fan56/dsh-llm-stats","keywords":["dsh","dsh-plugin","stats","usage","tokens","deepseek-harness","llm"],"repository":{"url":"git+https://github.com/fan56/dsh-llm-stats.git","type":"git"},"description":"dsh plugin: persistent whole-machine LLM usage ledger with a markdown /llm-stats report (GFM tables + emoji: tokens, cache hit, model/tool time, per-day bars)","maintainers":[{"name":"aiwayds","email":"aiway.ds@qq.com"}],"readme":"# @aiwayds/dsh-llm-stats\n\n[English](README.md) | 中文\n\n[DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 的持久化 LLM 用量账本插件，提供 `/llm-stats` 斜杠命令，以 markdown 报告（GFM 表格 + emoji）呈现用量。插件把每个结束的 agent step 折叠成一行持久化记录——token 四桶（provider 报告）、模型耗时、首 token 延迟、解码吞吐、工具耗时——追加写入 `$DSH_HOME/llm-stats/` 下本进程私有的分片文件。本机所有挂载了本插件的 dsh 进程共用这份整机账本，`/llm-stats` 在任意 surface 上按滚动日历窗口渲染：\n\n**要求 dsh >= 0.2.0-rc.2** — 本插件只跟随 dsh RC/stable 线（CI 与发版在运行时解析 latest/next 中更新的 dist-tag）。**不再支持 alpha 线。**\n\n**📊 LLM stats · last 30 days (Aug 3 – Sep 1)**\n\n| ⚡ Sessions | 💬 Turns | 📡 Requests | 👣 Steps |\n| --- | --- | --- | --- |\n| 132 | 196 | 2710 | 2742 |\n\n| 📥 In | 🔥 Cache hit | 📤 Out | 🧮 Total |\n| --- | --- | --- | --- |\n| 141M | 93% | 2.5M | 144M |\n\n⏱ Model 13h15m · 🔧 Tools 18h35m · 🚀 TTFT 4.5s · ⚡ 69.2 tok/s\n\n**🤖 By model**\n\n| Model | 📥 In | 📤 Out | 🔥 Cache | 📡 Req |\n| --- | --- | --- | --- | --- |\n| glm-5.3-flash | 46.8M | 930K | 90% | 1053 |\n| deepseek-flash | 78.1M | 1.1M | 94% | 1304 |\n| glm-5.3 | 14.6M | 369K | 93% | 301 |\n| MiniMax-M3 | 186K | 15.3K | 45% | 7 |\n| kimi | 393K | 6.8K | 79% | 10 |\n| minimax/minimax-m3:free | 1.2M | 14.2K | 96% | 35 |\n\n**📈 Activity**\n\n| 📅 Date | 📊 Tokens | 📈 |\n| --- | --- | --- |\n| Aug 28 | 168K | ▇ |\n| Aug 31 | 4.6M | ▇▇▇▇▇▇▇▇▇▇▇▇▇▇ |\n| Sep 1 | 8M | ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ |\n\ndsh-tui-pi 会识别表格分隔行，把报告经 markdown 组件渲染成框线表格；其他 surface（如 headless）显示原始 markdown。\n\n## 安装\n\n```bash\ndsh plugin add @aiwayds/dsh-llm-stats\n```\n\n然后重启 dsh。想让哪些 profile 的用量计入，就把插件装进哪些 profile（账本整机一份，但只有挂载了插件的进程才会记账）。\n\n## 卸载\n\n```sh\ndsh plugin --profile <name> remove @aiwayds/dsh-llm-stats\n```\n\n宿主会自动收敛（bundles 条目移除、patch 层随包消失）。`~/.dsh/llm-stats/` 的账本（`baseline.jsonl`、`records.*.jsonl` 分片、回填文件）有意保留 —— 这是用量历史，重装后继续累计。0.5.1 起插件启动时会清扫遗留的 `compact.lock.stale-*` 接管目录和已死进程的 `.baseline.jsonl.tmp-*` 暂存文件。彻底清除：先备份，再 `rm -rf ~/.dsh/llm-stats`。\n\n## 用法\n\n| 命令 | 含义 |\n| --- | --- |\n| `/llm-stats` | 帮助：用法、当前配置、账本覆盖情况 |\n| `/llm-stats day\\|week\\|month\\|3m\\|6m\\|12m` | 以现在为终点的滚动日历窗口 |\n| `/llm-stats d\\|w\\|m` | day / week / month 的短别名 |\n| `/llm-stats backfill` | 从落盘会话日志回填历史用量 |\n\n范围是滚动语义：`week` = 最近 7 个本地日历日（含今天），输出标注的实际日期区间与口语「最近七天」一致。3 个月及以上的长档，逐日条形自动折叠为周一取齐的逐周条形。\n\n## 配置\n\n```yaml\n- id: dsh-llm-stats\n  config:\n    mode: on              # off 停止记账；/llm-stats 与清理照常工作\n    retentionDays: 365    # 超过该天数的记录在 compaction 时清除（最小 7）\n```\n\n## 工作原理\n\n- **一个 step 一条记录。** 折叠以 `step/end` 为锚点（step 生命周期的权威事件：完成、失败、取消、max-tokens 的步都恰好落一个），语义对齐上游 `@deepseek-ai/dsh-session-stats` projection——即 dsh web 聊天统计条背后的那份折叠。token 字段可空：没有 provider usage 的步照样计入 Steps 与 Turns，只是不计入 Requests。\n- **分片 append-only 账本。** 每个 dsh 进程只追加自己的 `records.<boot-id>.jsonl` 分片，活着的进程绝不重写共享文件——TUI + headless + bot 并发互不践踏。死进程的分片在锁保护下于 compaction 时并入 `baseline.jsonl`，`retentionDays` 的过期清理也在同一时机执行。记录是计费旁路事实而非会话真相：写入尽力而为，失败的行直接丢弃，绝不影响会话。\n- **重叠安全的聚合。** 聚合按 `(sid, turn, step)` 去重（last-wins），日志重放或（将来的）历史回填都不会重复计数。\n- **不记内容。** 账本里只有数字、模型 id 和会话 id——没有 prompt、没有工具名、没有结果。\n\n## 回填\n\n账本从插件启动才开始记；之前的历史跑一次：\n\n```text\n/llm-stats backfill\n```\n\n它会扫描 `$DSH_HOME/sessions/`（全部项目），解码每个落盘日志（拼接 zstd 帧的生产格式，含打包 chunk 行），用与实时记账完全相同的 step 语义折叠，然后把记录并入账本。全程遵守 `retentionDays`（最后写入早于窗口的会话整体跳过）；fork/subagent 的种子历史按 header `seedLength` 跳过，父会话的用量绝不会被重复计入；已处理的会话记入 done-ledger，重复执行很快；中途被打断也可以续跑。\n\n## 已知局限\n\n- 进程在 `step/end` 前崩溃的步实时记账不会记录；下一次 backfill 会从会话日志补回。\n- 子代理子会话只有在其事件冒泡到 host 监听时才被实时计入；漏掉的由 backfill 兜底。\n\n## 开发\n\n```bash\nnpm install                          # devDependencies 解析 @deepseek-ai/* 类型闭包\nnode scripts/link-dsh-closure.mjs    # 把本地 @deepseek-ai/* 重新指向全局闭包（每次 install 后重跑）\nnpm run check                        # tsc --noEmit\nnpm test                             # 构建 + node --test（fold / aggregate / render / store / 插件接线）\n```\n\n`@deepseek-ai/*` 只进 peerDependencies（devDependencies 仅供本地构建）；把第二份闭包打进 dsh profile 会破坏 cordis 服务同一性。仓库以 link 挂进 live profile 时，正是上面这步 link 保证插件与 profile 解析到同一份闭包——不要跳过。\n\n## 许可\n\n[MIT](./LICENSE)\n","readmeFilename":"README.zh.md"}