{"_id":"@alexanderfortin/pi-usage-lib","_rev":"24-82b3f0e3d13b46ab605372c2b1b12ff6","name":"@alexanderfortin/pi-usage-lib","dist-tags":{"latest":"0.3.1"},"versions":{"0.0.1":{"name":"@alexanderfortin/pi-usage-lib","version":"0.0.1","keywords":["pi-package","pi-extension","usage-monitoring","api-quota"],"author":{"name":"Alexander Fortin"},"license":"MIT","_id":"@alexanderfortin/pi-usage-lib@0.0.1","maintainers":[{"name":"alexanderfortin","email":"a@l3x.in"}],"dist":{"shasum":"60a46dc02a561d03665a5f8bd78ee8f1cc6e2f42","tarball":"https://registry.npmjs.org/@alexanderfortin/pi-usage-lib/-/pi-usage-lib-0.0.1.tgz","fileCount":27,"integrity":"sha512-In0JDw8mCsyl0Jb0wIwtWurmKdxifqiVIsbDm1Z6PbfEz6JnmR6m9AKSRWgtGCyaWgbOYwtfEPKSydoPRkYtPQ==","signatures":[{"sig":"MEQCIGlwWYkgBWfvyhnRtxACg3M4bwUJkBp+kf7HG1unEUcCAiAXpjhH0HZhx2KPfYcTbdJWP4PbeTSZIz50nyF/4D3fhg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32855},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./datetime":{"types":"./dist/datetime.d.ts","import":"./dist/datetime.js"}},"gitHead":"b3ce340a09604f2f58af7ec63946a343ce2e1a86","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check src/ tests/","test":"bun test","build":"bun run typecheck && bun run build:tsc","check":"bun run typecheck && bun run lint","format":"biome format --write src/","release":"semantic-release","lint:fix":"biome check --write src/ tests/","build:tsc":"tsc","typecheck":"tsc --noEmit --project tsconfig.test.json","test:coverage":"bun test --coverage --coverage-reporter=lcov","release:dry-run":"semantic-release --dry-run"},"_npmUser":{"name":"alexanderfortin","email":"a@l3x.in"},"_npmVersion":"11.12.1","description":"Shared library for Pi usage monitoring extensions","directories":{},"_nodeVersion":"26.0.0","dependencies":{"temporal-polyfill":"0.3.2","@earendil-works/pi-coding-agent":"0.77.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"1.3.14","typescript":"6.0.3","@biomejs/biome":"2.4.16","semantic-release":"25.0.3","@semantic-release/git":"10.0.1","@semantic-release/npm":"13.1.5","@semantic-release/exec":"7.1.0","@semantic-release/github":"12.0.8","@semantic-release/commit-analyzer":"13.0.1","@alexanderfortin/semantic-release-keep-a-changelog":"0.2.3"},"peerDependencies":{"@earendil-works/pi-tui":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-usage-lib_0.0.1_1780076387000_0.2417030280136221","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@alexanderfortin/pi-usage-lib","version":"0.0.2","keywords":["pi-package","pi-extension","usage-monitoring","api-quota"],"author":{"name":"Alexander Fortin"},"license":"MIT","_id":"@alexanderfortin/pi-usage-lib@0.0.2","maintainers":[{"name":"alexanderfortin","email":"a@l3x.in"}],"homepage":"https://github.com/shaftoe/pi-usage-lib#readme","bugs":{"url":"https://github.com/shaftoe/pi-usage-lib/issues"},"dist":{"shasum":"2b011687aaf9a37cb83b1aa734f170a477c4179b","tarball":"https://registry.npmjs.org/@alexanderfortin/pi-usage-lib/-/pi-usage-lib-0.0.2.tgz","fileCount":28,"integrity":"sha512-WKmxmZKrR3PO+YOBLVZsg0gsuaDkWYECR96zzElbqTQw7R6Oy0c7T4mAnn9r00LZJqNE2WJcEUZiw4nQtfh8pw==","signatures":[{"sig":"MEQCIAIJEz/TzxGlJQfVR7yJppn8nRUq7OP2r6knQghpUqHQAiBDNqnJVkQsONoxjSG7lk3y1wuydalYPhbZ+KFWlYbBXw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexanderfortin%2fpi-usage-lib@0.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":33264},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./datetime":{"types":"./dist/datetime.d.ts","import":"./dist/datetime.js"}},"gitHead":"618ef6dd1fd57846244a88f8974c3003657ece03","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check src/ tests/","test":"bun test","build":"bun run typecheck && bun run build:tsc","check":"bun run typecheck && bun run lint","format":"biome format --write src/","release":"semantic-release","lint:fix":"biome check --write src/ tests/","build:tsc":"tsc","typecheck":"tsc --noEmit --project tsconfig.test.json","test:coverage":"bun test --coverage --coverage-reporter=lcov","release:dry-run":"semantic-release --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:720e51f4-fe48-4126-80c3-2033ee323fbe"}},"repository":{"url":"git+https://github.com/shaftoe/pi-usage-lib.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared library for Pi usage monitoring extensions","directories":{},"_nodeVersion":"24.16.0","dependencies":{"temporal-polyfill":"^0.3.2","@earendil-works/pi-coding-agent":"^0.78.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^6.0.3","@biomejs/biome":"^2.4.16","semantic-release":"^25.0.3","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","@semantic-release/github":"^12.0.8","@semantic-release/commit-analyzer":"^13.0.1","@alexanderfortin/semantic-release-keep-a-changelog":"^0.3.0"},"peerDependencies":{"@earendil-works/pi-tui":"^0.78.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-usage-lib_0.0.2_1780328503271_0.1227898158338614","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@alexanderfortin/pi-usage-lib","version":"0.0.3","keywords":["pi-package","pi-extension","usage-monitoring","api-quota"],"author":{"name":"Alexander Fortin"},"license":"MIT","_id":"@alexanderfortin/pi-usage-lib@0.0.3","maintainers":[{"name":"alexanderfortin","email":"a@l3x.in"}],"homepage":"https://github.com/shaftoe/pi-usage-lib#readme","bugs":{"url":"https://github.com/shaftoe/pi-usage-lib/issues"},"dist":{"shasum":"5195ba0a36a401175d8dfb4b5443989895094e0a","tarball":"https://registry.npmjs.org/@alexanderfortin/pi-usage-lib/-/pi-usage-lib-0.0.3.tgz","fileCount":28,"integrity":"sha512-JFPSDUGxteFcwIgG0oHqf2UAphErdnlfou0A8BPm+oinaWZDNJ8QUjtlpLL71FXEtSfI52dDc6pb9PsIBYjbMA==","signatures":[{"sig":"MEUCIBAGqFwTpOxQophphLlxxgl5L7fsGOQ9thZLXi6rWHWbAiEAk9AiqfAusJZ6HojeUgYtj8AQ7omURoVbl4mENlbdnbE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexanderfortin%2fpi-usage-lib@0.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":33413},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./datetime":{"types":"./dist/datetime.d.ts","import":"./dist/datetime.js"}},"gitHead":"32e6554b7293626c05c2600aac858cb8dc7d3138","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check src/ tests/","test":"bun test","build":"bun run typecheck && bun run build:tsc","check":"bun run typecheck && bun run lint","format":"biome format --write src/","release":"semantic-release","lint:fix":"biome check --write src/ tests/","build:tsc":"tsc","typecheck":"tsc --noEmit --project tsconfig.test.json","test:coverage":"bun test --coverage --coverage-reporter=lcov","release:dry-run":"semantic-release --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:720e51f4-fe48-4126-80c3-2033ee323fbe"}},"repository":{"url":"git+https://github.com/shaftoe/pi-usage-lib.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared library for Pi usage monitoring extensions","directories":{},"_nodeVersion":"24.16.0","dependencies":{"temporal-polyfill":"^0.3.2","@earendil-works/pi-coding-agent":"^0.78.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^6.0.3","@biomejs/biome":"^2.4.16","semantic-release":"^25.0.3","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","@semantic-release/github":"^12.0.8","@semantic-release/commit-analyzer":"^13.0.1","@alexanderfortin/semantic-release-keep-a-changelog":"^0.3.0"},"peerDependencies":{"@earendil-works/pi-tui":"^0.78.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-usage-lib_0.0.3_1780656437685_0.36199225697219073","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@alexanderfortin/pi-usage-lib","version":"0.0.4","keywords":["pi-package","pi-extension","usage-monitoring","api-quota"],"author":{"name":"Alexander Fortin"},"license":"MIT","_id":"@alexanderfortin/pi-usage-lib@0.0.4","maintainers":[{"name":"alexanderfortin","email":"a@l3x.in"}],"homepage":"https://github.com/shaftoe/pi-usage-lib#readme","bugs":{"url":"https://github.com/shaftoe/pi-usage-lib/issues"},"dist":{"shasum":"00a2d53862fa84001b31d5e140320429b8ce3189","tarball":"https://registry.npmjs.org/@alexanderfortin/pi-usage-lib/-/pi-usage-lib-0.0.4.tgz","fileCount":28,"integrity":"sha512-NCgD87dhR+4/sOKitgMBaVmWb9FXtnba7EYN1rJ2tLu4E8zYtA0y3ZI7628KwzMvS2uGdO4m4IVn3XzKI+NRNA==","signatures":[{"sig":"MEYCIQD/XQwS2L2Ca5FPpSvJOiqKsIV2rhfnMYSd3ivzufsHawIhAKaujYMPO9918bSBLzwXv89LPUIvF1DX0LB8pOGiXgzM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexanderfortin%2fpi-usage-lib@0.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":33618},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./datetime":{"types":"./dist/datetime.d.ts","import":"./dist/datetime.js"}},"gitHead":"5663352984a93ae2f868b3663d5f30bf93f49e7d","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check src/ tests/","test":"bun test","build":"bun run typecheck && bun run build:tsc","check":"bun run typecheck && bun run lint","format":"biome format --write src/","release":"semantic-release","lint:fix":"biome check --write src/ tests/","build:tsc":"tsc","typecheck":"tsc --noEmit --project tsconfig.test.json","test:coverage":"bun test --coverage --coverage-reporter=lcov","release:dry-run":"semantic-release --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:720e51f4-fe48-4126-80c3-2033ee323fbe"}},"repository":{"url":"git+https://github.com/shaftoe/pi-usage-lib.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared library for Pi usage monitoring extensions","directories":{},"_nodeVersion":"24.16.0","dependencies":{"temporal-polyfill":"^0.3.2","@earendil-works/pi-coding-agent":"^0.79.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^6.0.3","@biomejs/biome":"^2.5.0","semantic-release":"^25.0.5","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","@semantic-release/github":"^12.0.8","@semantic-release/commit-analyzer":"^13.0.1","@alexanderfortin/semantic-release-keep-a-changelog":"^0.4.2"},"peerDependencies":{"@earendil-works/pi-tui":"^0.79.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-usage-lib_0.0.4_1781450392003_0.9680300560148913","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@alexanderfortin/pi-usage-lib","version":"0.0.5","keywords":["pi-package","pi-extension","usage-monitoring","api-quota"],"author":{"name":"Alexander Fortin"},"license":"MIT","_id":"@alexanderfortin/pi-usage-lib@0.0.5","maintainers":[{"name":"alexanderfortin","email":"a@l3x.in"}],"homepage":"https://github.com/shaftoe/pi-usage-lib#readme","bugs":{"url":"https://github.com/shaftoe/pi-usage-lib/issues"},"dist":{"shasum":"10316b890eaefa88e878286bd4a300d7fdbb0d80","tarball":"https://registry.npmjs.org/@alexanderfortin/pi-usage-lib/-/pi-usage-lib-0.0.5.tgz","fileCount":28,"integrity":"sha512-Bjtnvr9g+IgdWrdmLpjwacYy484aKCSbQDbEUs8s0nB7UYqQpD7iacRVcSvYB30vVTRfioTOUDvRu7qsSE1IFg==","signatures":[{"sig":"MEQCIDu6mBm8qOKQfSPLdGYhdM+C6rNJ9TgkoT0oVPf+8yftAiAQMV67NB/yWVeLae+jvH5vXiUM4Ds+aiUf+voflFq5+A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexanderfortin%2fpi-usage-lib@0.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":33767},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./datetime":{"types":"./dist/datetime.d.ts","import":"./dist/datetime.js"}},"gitHead":"9708380dee61420ce8a6846506bf43a55f499546","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check src/ tests/","test":"bun test","build":"bun run typecheck && bun run build:tsc","check":"bun run typecheck && bun run lint","format":"biome format --write src/","release":"semantic-release","lint:fix":"biome check --write src/ tests/","build:tsc":"tsc","typecheck":"tsc --noEmit --project tsconfig.test.json","test:coverage":"bun test --coverage --coverage-reporter=lcov","release:dry-run":"semantic-release --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:720e51f4-fe48-4126-80c3-2033ee323fbe"}},"repository":{"url":"git+https://github.com/shaftoe/pi-usage-lib.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared library for Pi usage monitoring extensions","directories":{},"_nodeVersion":"24.16.0","dependencies":{"temporal-polyfill":"^0.3.2","@earendil-works/pi-coding-agent":"^0.79.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^6.0.3","@biomejs/biome":"^2.5.0","semantic-release":"^25.0.5","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","@semantic-release/github":"^12.0.8","@semantic-release/commit-analyzer":"^13.0.1","@alexanderfortin/semantic-release-keep-a-changelog":"^0.4.2"},"peerDependencies":{"@earendil-works/pi-tui":"^0.79.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-usage-lib_0.0.5_1781526402464_0.43204013592520774","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@alexanderfortin/pi-usage-lib","version":"0.0.6","keywords":["pi-package","pi-extension","usage-monitoring","api-quota"],"author":{"name":"Alexander Fortin"},"license":"MIT","_id":"@alexanderfortin/pi-usage-lib@0.0.6","maintainers":[{"name":"alexanderfortin","email":"a@l3x.in"}],"homepage":"https://github.com/shaftoe/pi-usage-lib#readme","bugs":{"url":"https://github.com/shaftoe/pi-usage-lib/issues"},"dist":{"shasum":"5100b9dd026c18d878672725d4f3007a0c8b87f5","tarball":"https://registry.npmjs.org/@alexanderfortin/pi-usage-lib/-/pi-usage-lib-0.0.6.tgz","fileCount":28,"integrity":"sha512-nF7n3IkSuGbuEgY8KFBRZChQPvZyCQ1z4JOdCEAZgBqDpvoLVQdVukb1WvMn9645nmfyc9Ij9f6MKxQ4S1sfwQ==","signatures":[{"sig":"MEQCIGZrwPMyGwenWKOqFcoc9nN1CD1TewVJrXnwi+4SGz73AiAsNEU6tw1n9MSRr6cybc7D7uuVFveyYaJFWCx2FX9Qfw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexanderfortin%2fpi-usage-lib@0.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":33916},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./datetime":{"types":"./dist/datetime.d.ts","import":"./dist/datetime.js"}},"gitHead":"b591a6221db33e5a7267dad8ee45f2c83fd80add","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check src/ tests/","test":"bun test","build":"bun run typecheck && bun run build:tsc","check":"bun run typecheck && bun run lint","format":"biome format --write src/","release":"semantic-release","lint:fix":"biome check --write src/ tests/","build:tsc":"tsc","typecheck":"tsc --noEmit --project tsconfig.test.json","test:coverage":"bun test --coverage --coverage-reporter=lcov","release:dry-run":"semantic-release --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:720e51f4-fe48-4126-80c3-2033ee323fbe"}},"repository":{"url":"git+https://github.com/shaftoe/pi-usage-lib.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared library for Pi usage monitoring extensions","directories":{},"_nodeVersion":"24.16.0","dependencies":{"temporal-polyfill":"^0.3.2","@earendil-works/pi-coding-agent":"^0.79.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^6.0.3","@biomejs/biome":"^2.5.0","semantic-release":"^25.0.5","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","@semantic-release/github":"^12.0.8","@semantic-release/commit-analyzer":"^13.0.1","@alexanderfortin/semantic-release-keep-a-changelog":"^0.4.2"},"peerDependencies":{"@earendil-works/pi-tui":"^0.79.6"},"_npmOperationalInternal":{"tmp":"tmp/pi-usage-lib_0.0.6_1781689599490_0.7946581938725166","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@alexanderfortin/pi-usage-lib","version":"0.0.7","keywords":["pi-package","pi-extension","usage-monitoring","api-quota"],"author":{"name":"Alexander Fortin"},"license":"MIT","_id":"@alexanderfortin/pi-usage-lib@0.0.7","maintainers":[{"name":"alexanderfortin","email":"a@l3x.in"}],"homepage":"https://github.com/shaftoe/pi-usage-lib#readme","bugs":{"url":"https://github.com/shaftoe/pi-usage-lib/issues"},"dist":{"shasum":"bc79660a0d806986c64a7933e492f188a33658e1","tarball":"https://registry.npmjs.org/@alexanderfortin/pi-usage-lib/-/pi-usage-lib-0.0.7.tgz","fileCount":28,"integrity":"sha512-OTWc3Y46kD9BUm8D3Prc9xo2Hby8ozv6yjEkgbbay+cVSxUm4ll1ARKcbKYENXRdm3TejXR23G30aJIofxN+bA==","signatures":[{"sig":"MEYCIQDai0e/fmMg1qSHho3JsYk31N6TihlJi/df0hoNKUDSxAIhAJM/IIEG4unufcvEjKzBvhLirkoDABtn36LBpgvZGE8c","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexanderfortin%2fpi-usage-lib@0.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":34069},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./datetime":{"types":"./dist/datetime.d.ts","import":"./dist/datetime.js"}},"gitHead":"7fb4aa565195f6a9d4ec1fd5efad103f502c00e1","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check src/ tests/","test":"bun test","build":"bun run typecheck && bun run build:tsc","check":"bun run typecheck && bun run lint","format":"biome format --write src/","release":"semantic-release","lint:fix":"biome check --write src/ tests/","build:tsc":"tsc","typecheck":"tsc --noEmit --project tsconfig.test.json","test:coverage":"bun test --coverage --coverage-reporter=lcov","release:dry-run":"semantic-release --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:720e51f4-fe48-4126-80c3-2033ee323fbe"}},"repository":{"url":"git+https://github.com/shaftoe/pi-usage-lib.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared library for Pi usage monitoring extensions","directories":{},"_nodeVersion":"24.16.0","dependencies":{"temporal-polyfill":"^0.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^6.0.3","@biomejs/biome":"^2.5.0","semantic-release":"^25.0.5","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","@semantic-release/github":"^12.0.8","@semantic-release/commit-analyzer":"^13.0.1","@alexanderfortin/semantic-release-keep-a-changelog":"^0.4.2"},"peerDependencies":{"@earendil-works/pi-tui":"^0.79.6","@earendil-works/pi-coding-agent":"^0.79.6"},"_npmOperationalInternal":{"tmp":"tmp/pi-usage-lib_0.0.7_1781696897130_0.13226532983786976","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@alexanderfortin/pi-usage-lib","version":"0.1.0","keywords":["pi-package","pi-extension","usage-monitoring","api-quota"],"author":{"name":"Alexander Fortin"},"license":"MIT","_id":"@alexanderfortin/pi-usage-lib@0.1.0","maintainers":[{"name":"alexanderfortin","email":"a@l3x.in"}],"homepage":"https://github.com/shaftoe/pi-usage-lib#readme","bugs":{"url":"https://github.com/shaftoe/pi-usage-lib/issues"},"dist":{"shasum":"cd1bb2bd8a0ed8478d305372bd90f9cb7cb18f34","tarball":"https://registry.npmjs.org/@alexanderfortin/pi-usage-lib/-/pi-usage-lib-0.1.0.tgz","fileCount":32,"integrity":"sha512-1aofZYRT44av3UiRANbWryyQnn+rZntmr3xBq3zH7Qjz93ELsUZA7qsyac2lfHyVJydbSE59pcq4W8oNiRDXoA==","signatures":[{"sig":"MEQCIH5genFzWAC4zhSrgUP/Q8D8E5KAm/70Y4rVXFg4KxVzAiAc6wslkqAkNVs62BSKY8NM72cNfc3XoKSFzbWShtnp5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexanderfortin%2fpi-usage-lib@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38954},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./datetime":{"types":"./dist/datetime.d.ts","import":"./dist/datetime.js"}},"gitHead":"968063aaf58a66b203df4e6972fdbcc57446435e","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check src/ tests/","test":"bun test","build":"bun run typecheck && bun run build:tsc","check":"bun run typecheck && bun run lint","format":"biome format --write src/","release":"semantic-release","lint:fix":"biome check --write src/ tests/","build:tsc":"tsc","typecheck":"tsc --noEmit --project tsconfig.test.json","test:coverage":"bun test --coverage --coverage-reporter=lcov","release:dry-run":"semantic-release --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:720e51f4-fe48-4126-80c3-2033ee323fbe"}},"repository":{"url":"git+https://github.com/shaftoe/pi-usage-lib.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared library for Pi usage monitoring extensions","directories":{},"_nodeVersion":"24.16.0","dependencies":{"temporal-polyfill":"^0.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^6.0.3","@biomejs/biome":"^2.5.0","semantic-release":"^25.0.5","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","@semantic-release/github":"^12.0.8","@semantic-release/commit-analyzer":"^13.0.1","@alexanderfortin/semantic-release-keep-a-changelog":"^0.4.2"},"peerDependencies":{"@earendil-works/pi-tui":"^0.79.6","@earendil-works/pi-coding-agent":"^0.79.6"},"_npmOperationalInternal":{"tmp":"tmp/pi-usage-lib_0.1.0_1781715115580_0.8731134982581799","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@alexanderfortin/pi-usage-lib","version":"0.2.0","keywords":["pi-package","pi-extension","usage-monitoring","api-quota"],"author":{"name":"Alexander Fortin"},"license":"MIT","_id":"@alexanderfortin/pi-usage-lib@0.2.0","maintainers":[{"name":"alexanderfortin","email":"a@l3x.in"}],"homepage":"https://github.com/shaftoe/pi-usage-lib#readme","bugs":{"url":"https://github.com/shaftoe/pi-usage-lib/issues"},"dist":{"shasum":"a959dfd5ff8e28de977bb5cc626cd51b36f1fd81","tarball":"https://registry.npmjs.org/@alexanderfortin/pi-usage-lib/-/pi-usage-lib-0.2.0.tgz","fileCount":36,"integrity":"sha512-YCAIAWQs72oLkWZ7u7dJ6RIf3If1iZhNAM5pdRPb1YFHYZbTH1e/LtbOTUeWwa8EoMhDUpSX3KQFIqMn1Q342w==","signatures":[{"sig":"MEYCIQCLfcQ+uy4g3qfRm0dz6mqIv2vulPAjWDHXo1cmMZfT/wIhAMXzT6Ki9zik172AWhUySFtuupKenCH2VzUXeHCXoa6K","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexanderfortin%2fpi-usage-lib@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":52419},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./datetime":{"types":"./dist/datetime.d.ts","import":"./dist/datetime.js"}},"gitHead":"9607285fa80fb040395f06f9b65221d6cd7fcecf","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check src/ tests/","test":"bun test","build":"bun run typecheck && bun run build:tsc","check":"bun run typecheck && bun run lint","format":"biome format --write src/","release":"semantic-release","lint:fix":"biome check --write src/ tests/","build:tsc":"tsc","typecheck":"tsc --noEmit --project tsconfig.test.json","test:coverage":"bun test --coverage --coverage-reporter=lcov","release:dry-run":"semantic-release --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:720e51f4-fe48-4126-80c3-2033ee323fbe"}},"repository":{"url":"git+https://github.com/shaftoe/pi-usage-lib.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared library for Pi usage monitoring extensions","directories":{},"_nodeVersion":"24.16.0","dependencies":{"temporal-polyfill":"^0.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^6.0.3","@biomejs/biome":"^2.5.0","semantic-release":"^25.0.5","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","@semantic-release/github":"^12.0.8","@semantic-release/commit-analyzer":"^13.0.1","@alexanderfortin/semantic-release-keep-a-changelog":"^0.4.2"},"peerDependencies":{"@earendil-works/pi-tui":"^0.79.6","@earendil-works/pi-coding-agent":"^0.79.6"},"_npmOperationalInternal":{"tmp":"tmp/pi-usage-lib_0.2.0_1781768684738_0.5473703347495602","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@alexanderfortin/pi-usage-lib","version":"0.2.1","keywords":["pi-package","pi-extension","usage-monitoring","api-quota"],"author":{"name":"Alexander Fortin"},"license":"MIT","_id":"@alexanderfortin/pi-usage-lib@0.2.1","maintainers":[{"name":"alexanderfortin","email":"a@l3x.in"}],"homepage":"https://github.com/shaftoe/pi-usage-lib#readme","bugs":{"url":"https://github.com/shaftoe/pi-usage-lib/issues"},"dist":{"shasum":"4150ff411a9c4cda408e823241d8a208ca472b78","tarball":"https://registry.npmjs.org/@alexanderfortin/pi-usage-lib/-/pi-usage-lib-0.2.1.tgz","fileCount":36,"integrity":"sha512-Ex2sd8JiTUQ54A5XPkP9rwK9PCmINYM99ZhJ88BsoE8783l1Hyx7gR1/gNB1ZoG6t9Q7LIjSqDBc063BQIkWLw==","signatures":[{"sig":"MEUCIQDcUtGWyVUjSEuo/KBJdNTUYK0qVOCMqxbp3tMOjdWv/wIgf50zscv7zPn0z6Aw3/vwWoVB/kaxOCtexQoAOs/k248=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexanderfortin%2fpi-usage-lib@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":52569},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./datetime":{"types":"./dist/datetime.d.ts","import":"./dist/datetime.js"}},"gitHead":"f23303fbf0050019d60d3d6d2b8566a73e90beb8","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check src/ tests/","test":"bun test","build":"bun run typecheck && bun run build:tsc","check":"bun run typecheck && bun run lint","format":"biome format --write src/","release":"semantic-release","lint:fix":"biome check --write src/ tests/","build:tsc":"tsc","typecheck":"tsc --noEmit --project tsconfig.test.json","test:coverage":"bun test --coverage --coverage-reporter=lcov","release:dry-run":"semantic-release --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:720e51f4-fe48-4126-80c3-2033ee323fbe"}},"repository":{"url":"git+https://github.com/shaftoe/pi-usage-lib.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared library for Pi usage monitoring extensions","directories":{},"_nodeVersion":"24.16.0","dependencies":{"temporal-polyfill":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^6.0.3","@biomejs/biome":"^2.5.0","semantic-release":"^25.0.5","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","@semantic-release/github":"^12.0.8","@semantic-release/commit-analyzer":"^13.0.1","@alexanderfortin/semantic-release-keep-a-changelog":"^0.4.3"},"peerDependencies":{"@earendil-works/pi-tui":"^0.79.9","@earendil-works/pi-coding-agent":"^0.79.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-usage-lib_0.2.1_1782065245705_0.698529925467918","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@alexanderfortin/pi-usage-lib","version":"0.2.2","keywords":["pi-package","pi-extension","usage-monitoring","api-quota"],"author":{"name":"Alexander Fortin"},"license":"MIT","_id":"@alexanderfortin/pi-usage-lib@0.2.2","maintainers":[{"name":"alexanderfortin","email":"a@l3x.in"}],"homepage":"https://github.com/shaftoe/pi-usage-lib#readme","bugs":{"url":"https://github.com/shaftoe/pi-usage-lib/issues"},"dist":{"shasum":"c54dc2921b1cf4cc09f17deb6ea9fe474b91bc87","tarball":"https://registry.npmjs.org/@alexanderfortin/pi-usage-lib/-/pi-usage-lib-0.2.2.tgz","fileCount":36,"integrity":"sha512-Q1VFozwNvZvs7EqPgAcx3WxgV7KYtCQuJsCAII3lDqf2PXD3bjfOTwViJGwkDG/KU4+wh4a8RfhfUm6pZHpsQA==","signatures":[{"sig":"MEQCIE7mrFYl8CrKcAqJ6WiuLxIisiUYzDgpAzlkmbhReK//AiBb2rNStpNKbZJxDB7KzrFIfpbzyVOnLCJSbZP2x0ubvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexanderfortin%2fpi-usage-lib@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":52737},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./datetime":{"types":"./dist/datetime.d.ts","import":"./dist/datetime.js"}},"gitHead":"0c4ea901525158439ef367e0cc3cd44dcc6993c5","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check src/ tests/","test":"bun test","build":"bun run typecheck && bun run build:tsc","check":"bun run typecheck && bun run lint","format":"biome format --write src/","release":"semantic-release","lint:fix":"biome check --write src/ tests/","build:tsc":"tsc","typecheck":"tsc --noEmit --project tsconfig.test.json","test:coverage":"bun test --coverage --coverage-reporter=lcov","release:dry-run":"semantic-release --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:720e51f4-fe48-4126-80c3-2033ee323fbe"}},"repository":{"url":"git+https://github.com/shaftoe/pi-usage-lib.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared library for Pi usage monitoring extensions","directories":{},"_nodeVersion":"24.16.0","dependencies":{"temporal-polyfill":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^6.0.3","@biomejs/biome":"^2.5.0","semantic-release":"^25.0.5","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","@semantic-release/github":"^12.0.8","@semantic-release/commit-analyzer":"^13.0.1","@alexanderfortin/semantic-release-keep-a-changelog":"^0.4.3"},"peerDependencies":{"@earendil-works/pi-tui":"^0.79.10","@earendil-works/pi-coding-agent":"^0.79.10"},"_npmOperationalInternal":{"tmp":"tmp/pi-usage-lib_0.2.2_1782195403361_0.16306196278926888","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@alexanderfortin/pi-usage-lib","version":"0.2.3","keywords":["pi-package","pi-extension","usage-monitoring","api-quota"],"author":{"name":"Alexander Fortin"},"license":"MIT","_id":"@alexanderfortin/pi-usage-lib@0.2.3","maintainers":[{"name":"alexanderfortin","email":"a@l3x.in"}],"homepage":"https://github.com/shaftoe/pi-usage-lib#readme","bugs":{"url":"https://github.com/shaftoe/pi-usage-lib/issues"},"dist":{"shasum":"c77b89eb2ed0d33a1281c672da465c731f201231","tarball":"https://registry.npmjs.org/@alexanderfortin/pi-usage-lib/-/pi-usage-lib-0.2.3.tgz","fileCount":36,"integrity":"sha512-q34Cl1mjNesTUp2B35SIOUXbSzC/vJb92G9kABlhDNYmnHOvh9UGKtZxpwn25EET271YebruKIOWV7tvW9kgaw==","signatures":[{"sig":"MEUCIQCrqc5FQkaaa/GEN/l0U0dJ09QBdY/Y/ogD0eKN1eDLVAIgdQTnI8V9oDrb8sfxosHIiKzo36sZFaSA+2yNA8oXMDc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexanderfortin%2fpi-usage-lib@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":52885},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./datetime":{"types":"./dist/datetime.d.ts","import":"./dist/datetime.js"}},"gitHead":"1ed7f5b79225a5887eef97b4a1bb905b41f7bd89","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check src/ tests/","test":"bun test","build":"bun run typecheck && bun run build:tsc","check":"bun run typecheck && bun run lint","format":"biome format --write src/","release":"semantic-release","lint:fix":"biome check --write src/ tests/","build:tsc":"tsc","typecheck":"tsc --noEmit --project tsconfig.test.json","test:coverage":"bun test --coverage --coverage-reporter=lcov","release:dry-run":"semantic-release --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:720e51f4-fe48-4126-80c3-2033ee323fbe"}},"repository":{"url":"git+https://github.com/shaftoe/pi-usage-lib.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared library for Pi usage monitoring extensions","directories":{},"_nodeVersion":"24.17.0","dependencies":{"temporal-polyfill":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^6.0.3","@biomejs/biome":"^2.5.1","semantic-release":"^25.0.5","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","@semantic-release/github":"^12.0.8","@semantic-release/commit-analyzer":"^13.0.1","@alexanderfortin/semantic-release-keep-a-changelog":"^0.4.3"},"peerDependencies":{"@earendil-works/pi-tui":"^0.80.2","@earendil-works/pi-coding-agent":"^0.80.2"},"_npmOperationalInternal":{"tmp":"tmp/pi-usage-lib_0.2.3_1782363984860_0.9095736806910981","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@alexanderfortin/pi-usage-lib","version":"0.2.4","keywords":["pi-package","pi-extension","usage-monitoring","api-quota"],"author":{"name":"Alexander Fortin"},"license":"MIT","_id":"@alexanderfortin/pi-usage-lib@0.2.4","maintainers":[{"name":"alexanderfortin","email":"a@l3x.in"}],"homepage":"https://github.com/shaftoe/pi-usage-lib#readme","bugs":{"url":"https://github.com/shaftoe/pi-usage-lib/issues"},"dist":{"shasum":"d902155475285fc6b9236bf0b477cc4991091fb0","tarball":"https://registry.npmjs.org/@alexanderfortin/pi-usage-lib/-/pi-usage-lib-0.2.4.tgz","fileCount":36,"integrity":"sha512-TOJGlL9od/eBSBfefUqk2CnT4VH/oum9xvVeUp/iAFAa9M85m6GLykXkGzsWJ8Isc1LLgtAKZVi5+I0FkiAMXA==","signatures":[{"sig":"MEYCIQCSL8Fup2vXEPaKjzUp6FkTOLd1oMbQd9EolSjjbhVjuQIhANPvTvjdd1COx1oGRCOsLLgWRa+loQrsXd4x5oZlfzNZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexanderfortin%2fpi-usage-lib@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53056},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./datetime":{"types":"./dist/datetime.d.ts","import":"./dist/datetime.js"}},"gitHead":"08cead83c0d8dbbc4b127d26e64362c43815b4a1","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check src/ tests/","test":"bun test","build":"bun run typecheck && bun run build:tsc","check":"bun run typecheck && bun run lint","format":"biome format --write src/","release":"semantic-release","lint:fix":"biome check --write src/ tests/","build:tsc":"tsc","typecheck":"tsc --noEmit --project tsconfig.test.json","test:coverage":"bun test --coverage --coverage-reporter=lcov","release:dry-run":"semantic-release --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:720e51f4-fe48-4126-80c3-2033ee323fbe"}},"repository":{"url":"git+https://github.com/shaftoe/pi-usage-lib.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared library for Pi usage monitoring extensions","directories":{},"_nodeVersion":"24.18.0","dependencies":{"temporal-polyfill":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^7.0.2","@biomejs/biome":"^2.5.3","semantic-release":"^25.0.5","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","@semantic-release/github":"^12.0.9","@semantic-release/commit-analyzer":"^13.0.1","@alexanderfortin/semantic-release-keep-a-changelog":"^0.4.6"},"peerDependencies":{"@earendil-works/pi-tui":"^0.80.3","@earendil-works/pi-coding-agent":"^0.80.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-usage-lib_0.2.4_1783596382696_0.6762064462063675","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@alexanderfortin/pi-usage-lib","version":"0.2.5","keywords":["pi-package","pi-extension","usage-monitoring","api-quota"],"author":{"name":"Alexander Fortin"},"license":"MIT","_id":"@alexanderfortin/pi-usage-lib@0.2.5","maintainers":[{"name":"alexanderfortin","email":"a@l3x.in"}],"homepage":"https://github.com/shaftoe/pi-usage-lib#readme","bugs":{"url":"https://github.com/shaftoe/pi-usage-lib/issues"},"dist":{"shasum":"9fa470ebad6401c6bab214b80deda05a6ac5693e","tarball":"https://registry.npmjs.org/@alexanderfortin/pi-usage-lib/-/pi-usage-lib-0.2.5.tgz","fileCount":36,"integrity":"sha512-wkbPyXISiaeMY8nDEzXAz/+CIncwIVBHXlJt6GR4CmMMKVUypedqTdo9MI5MF0Eov63jmPSY76cMdm02lFA2bQ==","signatures":[{"sig":"MEUCIDLkZm67IU+HJq8cIICZ1agarzcwgdtu0MbeqA0cOrxlAiEAlcjE0n5+H/8nOJW39HedPRPQJsdjCBIuB6RnUhdi3Qs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexanderfortin%2fpi-usage-lib@0.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53264},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./datetime":{"types":"./dist/datetime.d.ts","import":"./dist/datetime.js"}},"gitHead":"62b8f98cef5c61ebcd6500634ed57b72692a6b40","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check src/ tests/","test":"bun test","build":"bun run typecheck && bun run build:tsc","check":"bun run typecheck && bun run lint","format":"biome format --write src/","release":"semantic-release","lint:fix":"biome check --write src/ tests/","build:tsc":"tsc","typecheck":"tsc --noEmit --project tsconfig.test.json","test:coverage":"bun test --coverage --coverage-reporter=lcov","release:dry-run":"semantic-release --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:720e51f4-fe48-4126-80c3-2033ee323fbe"}},"repository":{"url":"git+https://github.com/shaftoe/pi-usage-lib.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared library for Pi usage monitoring extensions","directories":{},"_nodeVersion":"24.18.0","dependencies":{"temporal-polyfill":"^1.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^7.0.2","@biomejs/biome":"^2.5.6","semantic-release":"^25.0.8","@semantic-release/git":"^11.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","@semantic-release/github":"^12.0.9","@semantic-release/commit-analyzer":"^13.0.1","@alexanderfortin/semantic-release-keep-a-changelog":"^0.4.10"},"peerDependencies":{"@earendil-works/pi-tui":"^0.83.0","@earendil-works/pi-coding-agent":"^0.83.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-usage-lib_0.2.5_1785856400343_0.6749361772461198","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@alexanderfortin/pi-usage-lib","version":"0.2.6","keywords":["pi-package","pi-extension","usage-monitoring","api-quota"],"author":{"name":"Alexander Fortin"},"license":"MIT","_id":"@alexanderfortin/pi-usage-lib@0.2.6","maintainers":[{"name":"alexanderfortin","email":"a@l3x.in"}],"homepage":"https://github.com/shaftoe/pi-usage-lib#readme","bugs":{"url":"https://github.com/shaftoe/pi-usage-lib/issues"},"dist":{"shasum":"a7f571ecbb9c82ec46005af5a43f40b4c87d9002","tarball":"https://registry.npmjs.org/@alexanderfortin/pi-usage-lib/-/pi-usage-lib-0.2.6.tgz","fileCount":36,"integrity":"sha512-sn4hquJtkk3nxf+gZlIvHik840RQiYEsIPU8+0QjEGG8Zn+w5uHrEEhJR3FMZQ12JU4mXeP0UyMstZqppkMTFw==","signatures":[{"sig":"MEQCIAOn3mKIWrjQajQIeCtx0uzvl7y1BXaILIn5HXZDCqMXAiBUSY2KTpfhhLT4X0YIGOMdroX0grfTvi8wSdSIENdrYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexanderfortin%2fpi-usage-lib@0.2.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53414},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./datetime":{"types":"./dist/datetime.d.ts","import":"./dist/datetime.js"}},"gitHead":"9461c5c729b2a73c40c5c2645689fb65bf22eac6","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check src/ tests/","test":"bun test","build":"bun run typecheck && bun run build:tsc","check":"bun run typecheck && bun run lint","format":"biome format --write src/","release":"semantic-release","lint:fix":"biome check --write src/ tests/","build:tsc":"tsc","typecheck":"tsc --noEmit --project tsconfig.test.json","test:coverage":"bun test --coverage --coverage-reporter=lcov","release:dry-run":"semantic-release --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:720e51f4-fe48-4126-80c3-2033ee323fbe"}},"repository":{"url":"git+https://github.com/shaftoe/pi-usage-lib.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared library for Pi usage monitoring extensions","directories":{},"_nodeVersion":"24.19.0","dependencies":{"temporal-polyfill":"^1.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.0","typescript":"^7.0.2","@biomejs/biome":"^2.5.10","semantic-release":"^25.0.9","@semantic-release/git":"^11.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","@semantic-release/github":"^12.0.9","@semantic-release/commit-analyzer":"^13.0.1","@alexanderfortin/semantic-release-keep-a-changelog":"^0.4.13"},"peerDependencies":{"@earendil-works/pi-tui":"^0.84.3","@earendil-works/pi-coding-agent":"^0.84.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-usage-lib_0.2.6_1787841215360_0.9255562109215885","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@alexanderfortin/pi-usage-lib","version":"0.2.7","keywords":["pi-package","pi-extension","usage-monitoring","api-quota"],"author":{"name":"Alexander Fortin"},"license":"MIT","_id":"@alexanderfortin/pi-usage-lib@0.2.7","maintainers":[{"name":"alexanderfortin","email":"a@l3x.in"}],"homepage":"https://github.com/shaftoe/pi-usage-lib#readme","bugs":{"url":"https://github.com/shaftoe/pi-usage-lib/issues"},"dist":{"shasum":"87d6c40777f1bf1250fa132b8f28d204f4b6cca5","tarball":"https://registry.npmjs.org/@alexanderfortin/pi-usage-lib/-/pi-usage-lib-0.2.7.tgz","fileCount":36,"integrity":"sha512-8KNIIEjH0qxjnaXsfK6s48qo0f1e1Xmnbcd9mQNJFTKdOCL9MuWpq4I2Wdqb4S4fHep85Uosn3iB09P2s4sO3w==","signatures":[{"sig":"MEQCIB/MBVGvMz6LxLOlitscIW03fffJ1U+BBnUbWkQkNqbyAiAp+9krWTYnP1utSsyiGlnMGOmQBUz/RI+ypkNnkdTQfg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexanderfortin%2fpi-usage-lib@0.2.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55680},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./datetime":{"types":"./dist/datetime.d.ts","import":"./dist/datetime.js"}},"gitHead":"231a6f02744f01315140a6f17f6a68df92e31978","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check src/ tests/","test":"bun test","build":"bun run typecheck && bun run build:tsc","check":"bun run typecheck && bun run lint","format":"biome format --write src/","release":"semantic-release","lint:fix":"biome check --write src/ tests/","build:tsc":"tsc","typecheck":"tsc --noEmit --project tsconfig.test.json","test:coverage":"bun test --coverage --coverage-reporter=lcov","release:dry-run":"semantic-release --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:720e51f4-fe48-4126-80c3-2033ee323fbe"}},"repository":{"url":"git+https://github.com/shaftoe/pi-usage-lib.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared library for Pi usage monitoring extensions","directories":{},"_nodeVersion":"24.19.0","dependencies":{"temporal-polyfill":"^1.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.0","typescript":"^7.0.2","@biomejs/biome":"^2.5.10","semantic-release":"^25.0.9","@semantic-release/git":"^11.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","@semantic-release/github":"^12.0.9","@semantic-release/commit-analyzer":"^13.0.1","@alexanderfortin/semantic-release-keep-a-changelog":"^0.4.13"},"peerDependencies":{"@earendil-works/pi-tui":"^0.84.3","@earendil-works/pi-coding-agent":"^0.84.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-usage-lib_0.2.7_1787878114578_0.7195192799222287","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@alexanderfortin/pi-usage-lib","version":"0.2.8","keywords":["pi-package","pi-extension","usage-monitoring","api-quota"],"author":{"name":"Alexander Fortin"},"license":"MIT","_id":"@alexanderfortin/pi-usage-lib@0.2.8","maintainers":[{"name":"alexanderfortin","email":"a@l3x.in"}],"homepage":"https://github.com/shaftoe/pi-usage-lib#readme","bugs":{"url":"https://github.com/shaftoe/pi-usage-lib/issues"},"dist":{"shasum":"23946c065459828cff8b2d758d499cfb761412a4","tarball":"https://registry.npmjs.org/@alexanderfortin/pi-usage-lib/-/pi-usage-lib-0.2.8.tgz","fileCount":36,"integrity":"sha512-qTdOuIq8nCcGkW311wm360Ufp/eYIqPxpIMfwW5BC7L8eHyi5XM0d1WccQB8PMiwE74QpoXBBOvw6VpQql2FZw==","signatures":[{"sig":"MEUCIQDeefq4kS4I3g7PlJBjxCTzd+Yfql+/Sk6piYL4yU51EgIgBgNHyMo8zBqT/eoCusMttcUBWYaj5G9k2aHpdOPDypI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexanderfortin%2fpi-usage-lib@0.2.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55830},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./datetime":{"types":"./dist/datetime.d.ts","import":"./dist/datetime.js"}},"gitHead":"648250f2d9f3470c0969f5738c07e51a8f8436d3","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check src/ tests/","test":"bun test","build":"bun run typecheck && bun run build:tsc","check":"bun run typecheck && bun run lint","format":"biome format --write src/","release":"semantic-release","lint:fix":"biome check --write src/ tests/","build:tsc":"tsc","typecheck":"tsc --noEmit --project tsconfig.test.json","test:coverage":"bun test --coverage --coverage-reporter=lcov","release:dry-run":"semantic-release --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:720e51f4-fe48-4126-80c3-2033ee323fbe"}},"repository":{"url":"git+https://github.com/shaftoe/pi-usage-lib.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared library for Pi usage monitoring extensions","directories":{},"_nodeVersion":"24.19.0","dependencies":{"temporal-polyfill":"^1.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.0","typescript":"^7.0.2","@biomejs/biome":"^2.5.11","semantic-release":"^25.0.9","@semantic-release/git":"^11.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","@semantic-release/github":"^12.0.9","@semantic-release/commit-analyzer":"^13.0.1","@alexanderfortin/semantic-release-keep-a-changelog":"^0.4.13"},"peerDependencies":{"@earendil-works/pi-tui":"^0.84.4","@earendil-works/pi-coding-agent":"^0.84.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-usage-lib_0.2.8_1788481798249_0.4847474494475501","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@alexanderfortin/pi-usage-lib","version":"0.2.9","keywords":["pi-package","pi-extension","usage-monitoring","api-quota"],"author":{"name":"Alexander Fortin"},"license":"MIT","_id":"@alexanderfortin/pi-usage-lib@0.2.9","maintainers":[{"name":"alexanderfortin","email":"a@l3x.in"}],"homepage":"https://github.com/shaftoe/pi-usage-lib#readme","bugs":{"url":"https://github.com/shaftoe/pi-usage-lib/issues"},"dist":{"shasum":"9832c2faaaa2c9e7dab54f9f207afe2a20221cee","tarball":"https://registry.npmjs.org/@alexanderfortin/pi-usage-lib/-/pi-usage-lib-0.2.9.tgz","fileCount":36,"integrity":"sha512-JYXadl7fcqIKBgtjwCPgK282hrsXSMZpQNlvk5eyGorRzhlgSxMEYaBgjZJLmnBAjJ1Airxmos4FCSeuN0x4OA==","signatures":[{"sig":"MEUCIQCmPN8C9vedTmzmMxS4DDZ9+8u42RtkmfYH40ByqSphYgIgKQFeqYiI1i23buA1Uhcv9t7G/Piyxp9vcboJg/d7Ykg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexanderfortin%2fpi-usage-lib@0.2.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55980},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./datetime":{"types":"./dist/datetime.d.ts","import":"./dist/datetime.js"}},"gitHead":"7878321ee2685354b709fb6c2eb4e1b6be5de10e","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check src/ tests/","test":"bun test","build":"bun run typecheck && bun run build:tsc","check":"bun run typecheck && bun run lint","format":"biome format --write src/","release":"semantic-release","lint:fix":"biome check --write src/ tests/","build:tsc":"tsc","typecheck":"tsc --noEmit --project tsconfig.test.json","test:coverage":"bun test --coverage --coverage-reporter=lcov","release:dry-run":"semantic-release --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:720e51f4-fe48-4126-80c3-2033ee323fbe"}},"repository":{"url":"git+https://github.com/shaftoe/pi-usage-lib.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared library for Pi usage monitoring extensions","directories":{},"_nodeVersion":"24.20.0","dependencies":{"temporal-polyfill":"^1.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.1","typescript":"^7.0.2","@biomejs/biome":"^2.5.12","semantic-release":"^25.0.9","@semantic-release/git":"^11.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","@semantic-release/github":"^12.0.9","@semantic-release/commit-analyzer":"^13.0.1","@alexanderfortin/semantic-release-keep-a-changelog":"^0.4.13"},"peerDependencies":{"@earendil-works/pi-tui":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-usage-lib_0.2.9_1788741469775_0.571696225221396","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"@alexanderfortin/pi-usage-lib","version":"0.2.10","keywords":["pi-package","pi-extension","usage-monitoring","api-quota"],"author":{"name":"Alexander Fortin"},"license":"MIT","_id":"@alexanderfortin/pi-usage-lib@0.2.10","maintainers":[{"name":"alexanderfortin","email":"a@l3x.in"}],"homepage":"https://github.com/shaftoe/pi-usage-lib#readme","bugs":{"url":"https://github.com/shaftoe/pi-usage-lib/issues"},"dist":{"shasum":"690558cd0d0b90e777a353ecf703c4694c95071a","tarball":"https://registry.npmjs.org/@alexanderfortin/pi-usage-lib/-/pi-usage-lib-0.2.10.tgz","fileCount":36,"integrity":"sha512-WS4fih46wsV41dBxzo2vIGS1+Hx1CkvLQT2hLce2ExigMKHSnjIp1KpjKm4+7BOfOQGMWKZRqe+cJGrss28M+w==","signatures":[{"sig":"MEYCIQD9NmFvkZT8McEl5Qri6OE8VVAyyjTwAAkFP+xTA2DrtQIhAIITCe3vq58hQ95MCAtEvfObHm+HT6EnNSxD99jpjpJ3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCHNg5gUGUw5kM1kKAfNir1+hHljEXiQhsY1Hnfg6sPBQIgbMdkZyA7vU89SfG9KAkKBxymBe/vJ4VG2ejlQxZ0IrQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexanderfortin%2fpi-usage-lib@0.2.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56279},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./datetime":{"types":"./dist/datetime.d.ts","import":"./dist/datetime.js"}},"gitHead":"716d59a2d29794d92d14efb9116f715d4ba3a00a","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check src/ tests/","test":"bun test","build":"bun run typecheck && bun run build:tsc","check":"bun run typecheck && bun run lint","format":"biome format --write src/","release":"semantic-release","lint:fix":"biome check --write src/ tests/","build:tsc":"tsc","typecheck":"tsc --noEmit --project tsconfig.test.json","test:coverage":"bun test --coverage --coverage-reporter=lcov","release:dry-run":"semantic-release --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:720e51f4-fe48-4126-80c3-2033ee323fbe"}},"repository":{"url":"git+https://github.com/shaftoe/pi-usage-lib.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared library for Pi usage monitoring extensions","directories":{},"_nodeVersion":"24.20.0","dependencies":{"temporal-polyfill":"^1.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.2","typescript":"^7.0.2","@biomejs/biome":"^2.5.14","semantic-release":"^25.0.9","@semantic-release/git":"^11.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","@semantic-release/github":"^12.0.9","@semantic-release/commit-analyzer":"^13.0.1","@alexanderfortin/semantic-release-keep-a-changelog":"^0.4.13"},"peerDependencies":{"@earendil-works/pi-tui":"^0.86.0","@earendil-works/pi-coding-agent":"^0.86.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-usage-lib_0.2.10_1789905251913_0.4346641301321159","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"@alexanderfortin/pi-usage-lib","version":"0.2.11","keywords":["pi-package","pi-extension","usage-monitoring","api-quota"],"author":{"name":"Alexander Fortin"},"license":"MIT","_id":"@alexanderfortin/pi-usage-lib@0.2.11","maintainers":[{"name":"alexanderfortin","email":"a@l3x.in"}],"homepage":"https://github.com/shaftoe/pi-usage-lib#readme","bugs":{"url":"https://github.com/shaftoe/pi-usage-lib/issues"},"dist":{"shasum":"db8732b4d5f9c17f0acf7523f54a627729178211","tarball":"https://registry.npmjs.org/@alexanderfortin/pi-usage-lib/-/pi-usage-lib-0.2.11.tgz","fileCount":36,"integrity":"sha512-Ppwwf7OqQWVd845gCLV5stWtQLFc7L4wUZHsRAesEmFd4VCGGu+5rAGsID0gg4NfGM33dFlJKluRxsUfcB0E2g==","signatures":[{"sig":"MEUCIQCnjQXz7CguX5r7EF7qAqIXs8FmYNeG3ADyD0YyRmJ8VAIgHZsw2L0wzlftJ3SgpLZNp2ru60ORSS1lF0bXSzNGpFk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEKfHXsZybdQ9sAuP8QaO83Jo/9xf4MyJq20k1SSLuS5AiEAh377dG4EaU0a/wwj+cC7X9nPb0GSEYMigkcJszGSqJo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexanderfortin%2fpi-usage-lib@0.2.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56452},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./datetime":{"types":"./dist/datetime.d.ts","import":"./dist/datetime.js"}},"gitHead":"a3f369d27ed2117bc122949314085fdcbc48ff98","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check src/ tests/","test":"bun test","build":"bun run typecheck && bun run build:tsc","check":"bun run typecheck && bun run lint","format":"biome format --write src/","release":"semantic-release","lint:fix":"biome check --write src/ tests/","build:tsc":"tsc","typecheck":"tsc --noEmit --project tsconfig.test.json","test:coverage":"bun test --coverage --coverage-reporter=lcov","release:dry-run":"semantic-release --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:720e51f4-fe48-4126-80c3-2033ee323fbe"}},"repository":{"url":"git+https://github.com/shaftoe/pi-usage-lib.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared library for Pi usage monitoring extensions","directories":{},"_nodeVersion":"24.20.0","dependencies":{"temporal-polyfill":"^1.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.2","typescript":"^7.0.2","@biomejs/biome":"^2.5.14","semantic-release":"^25.0.9","@semantic-release/git":"^11.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","@semantic-release/github":"^12.0.9","@semantic-release/commit-analyzer":"^13.0.1","@alexanderfortin/semantic-release-keep-a-changelog":"^0.4.13"},"peerDependencies":{"@earendil-works/pi-tui":"^0.86.1","@earendil-works/pi-coding-agent":"^0.86.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-usage-lib_0.2.11_1789997262877_0.872744571706825","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"@alexanderfortin/pi-usage-lib","version":"0.2.12","keywords":["pi-package","pi-extension","usage-monitoring","api-quota"],"author":{"name":"Alexander Fortin"},"license":"MIT","_id":"@alexanderfortin/pi-usage-lib@0.2.12","maintainers":[{"name":"alexanderfortin","email":"a@l3x.in"}],"homepage":"https://github.com/shaftoe/pi-usage-lib#readme","bugs":{"url":"https://github.com/shaftoe/pi-usage-lib/issues"},"dist":{"shasum":"81715a9529959cfa26d119ecc3871630ac224e08","tarball":"https://registry.npmjs.org/@alexanderfortin/pi-usage-lib/-/pi-usage-lib-0.2.12.tgz","fileCount":36,"integrity":"sha512-KHK4sKNzy2L/ZHu5dtX1qKdaCmFdy3E8hT09W1j9UfDrR7Tr1fjhiayKgYIFmaTDR3+jmaEwIRVzsG67hLc29g==","signatures":[{"sig":"MEQCICSJUTcnTLHUcZSIfXuyL6m0G3ysi2LHQhXLk/a775uaAiBp7j8kezom88QhwjKnagSZNQ9Ztx7ce/Cn2EHKqUobcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCOi8H70mZcHi0VIBmlNLuTKfTG6p0Ll+JGj7UE+oKP0wIgHBrwsWQtzODV0GFFRUllrIcOhn8kWu1rMU+HOJg8IZ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexanderfortin%2fpi-usage-lib@0.2.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56622},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./datetime":{"types":"./dist/datetime.d.ts","import":"./dist/datetime.js"}},"gitHead":"b81b8204c6c99bb05353cf01dcf4d7585c624ef7","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check src/ tests/","test":"bun test","build":"bun run typecheck && bun run build:tsc","check":"bun run typecheck && bun run lint","format":"biome format --write src/","release":"semantic-release","lint:fix":"biome check --write src/ tests/","build:tsc":"tsc","typecheck":"tsc --noEmit --project tsconfig.test.json","test:coverage":"bun test --coverage --coverage-reporter=lcov","release:dry-run":"semantic-release --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:720e51f4-fe48-4126-80c3-2033ee323fbe"}},"repository":{"url":"git+https://github.com/shaftoe/pi-usage-lib.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared library for Pi usage monitoring extensions","directories":{},"_nodeVersion":"24.20.0","dependencies":{"temporal-polyfill":"^1.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.2","typescript":"^7.0.2","@biomejs/biome":"^2.5.14","semantic-release":"^25.0.9","@semantic-release/git":"^11.0.1","@semantic-release/npm":"^13.2.0","@semantic-release/exec":"^7.1.0","@semantic-release/github":"^12.0.10","@semantic-release/commit-analyzer":"^13.0.1","@alexanderfortin/semantic-release-keep-a-changelog":"^0.4.13"},"peerDependencies":{"@earendil-works/pi-tui":"^0.87.0","@earendil-works/pi-coding-agent":"^0.87.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-usage-lib_0.2.12_1790124904198_0.02245460393815879","host":"s3://npm-registry-packages-npm-production"}},"0.2.13":{"name":"@alexanderfortin/pi-usage-lib","version":"0.2.13","keywords":["pi-package","pi-extension","usage-monitoring","api-quota"],"author":{"name":"Alexander Fortin"},"license":"MIT","_id":"@alexanderfortin/pi-usage-lib@0.2.13","maintainers":[{"name":"alexanderfortin","email":"a@l3x.in"}],"homepage":"https://github.com/shaftoe/pi-usage-lib#readme","bugs":{"url":"https://github.com/shaftoe/pi-usage-lib/issues"},"dist":{"shasum":"7a58e7b282713467403a789290bd6c6c5729a2e1","tarball":"https://registry.npmjs.org/@alexanderfortin/pi-usage-lib/-/pi-usage-lib-0.2.13.tgz","fileCount":36,"integrity":"sha512-0Fd2332IJaIltuEMdHMiT0y/or5xVbxcLCPHsu6TZ6ZhDJjFtaItFCN3pLlV7rohN4uiuh9+psZLQyw8zpoW1g==","signatures":[{"sig":"MEQCIFflG63h+gWe9Aa9zFFYxRpXWQT4ecqAcyEIkmsoZA+WAiAc6P+pNWn+VzX0uqEg0vEi2H9QEf8C9HwnTdkbyzsajg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDjbj2aT5Mlesf+Mo9C97gBiHCilXkE6+P9A/WY33XVjQIgC2uMSakRmkUXzQpqIL9b3AZBivmHTjW54BRCoMdwdVI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexanderfortin%2fpi-usage-lib@0.2.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56791},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./datetime":{"types":"./dist/datetime.d.ts","import":"./dist/datetime.js"}},"gitHead":"54ba5ee29142220806e210cd7c2ddbf0e8813066","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check src/ tests/","test":"bun test","build":"bun run typecheck && bun run build:tsc","check":"bun run typecheck && bun run lint","format":"biome format --write src/","release":"semantic-release","lint:fix":"biome check --write src/ tests/","build:tsc":"tsc","typecheck":"tsc --noEmit --project tsconfig.test.json","test:coverage":"bun test --coverage --coverage-reporter=lcov","release:dry-run":"semantic-release --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:720e51f4-fe48-4126-80c3-2033ee323fbe"}},"repository":{"url":"git+https://github.com/shaftoe/pi-usage-lib.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared library for Pi usage monitoring extensions","directories":{},"_nodeVersion":"24.20.0","dependencies":{"temporal-polyfill":"^1.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.2","typescript":"^7.0.2","@biomejs/biome":"^2.5.14","semantic-release":"^25.0.9","@semantic-release/git":"^11.0.1","@semantic-release/npm":"^13.2.0","@semantic-release/exec":"^7.1.0","@semantic-release/github":"^12.0.10","@semantic-release/commit-analyzer":"^13.0.1","@alexanderfortin/semantic-release-keep-a-changelog":"^0.4.14"},"peerDependencies":{"@earendil-works/pi-tui":"^0.87.1","@earendil-works/pi-coding-agent":"^0.87.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-usage-lib_0.2.13_1790162269172_0.35663500886197674","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@alexanderfortin/pi-usage-lib","version":"0.3.0","keywords":["pi-package","pi-extension","usage-monitoring","api-quota"],"author":{"name":"Alexander Fortin"},"license":"MIT","_id":"@alexanderfortin/pi-usage-lib@0.3.0","maintainers":[{"name":"alexanderfortin","email":"a@l3x.in"}],"homepage":"https://github.com/shaftoe/pi-usage-lib#readme","bugs":{"url":"https://github.com/shaftoe/pi-usage-lib/issues"},"dist":{"shasum":"a29882e7d1b41dc85808d7d0a92e622f56aa9319","tarball":"https://registry.npmjs.org/@alexanderfortin/pi-usage-lib/-/pi-usage-lib-0.3.0.tgz","fileCount":36,"integrity":"sha512-q6538bcmm6dXHYF6MGZ1XWd1lTPFU79rqkkGDObi5/5wi2yqsw4IzQ3CbRbMamgLnOn5hGuudLOU/q6CWESq+w==","signatures":[{"sig":"MEYCIQCJruuUjgL3w2euJXwJwJQnXH22m36pAwziZLJIVUjGwAIhANAxnA7oeK7atV3CkUzGTxoFZq/kwBM+Kx+w8TtSgJN/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHi1tedPBXNwfuHeuLstqPLjI3celoduOM50f10TGm7rAiA7h1ACLWjTgJ5PyFuxPrJiVHMFn9YVRbIRs+Qt9G+5GA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexanderfortin%2fpi-usage-lib@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57076},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./datetime":{"types":"./dist/datetime.d.ts","import":"./dist/datetime.js"}},"gitHead":"40409453258b8f7d6763792a05e9531084ff626c","scripts":{"dev":"node --watch --experimental-strip-types src/index.ts","lint":"biome check src/ tests/","test":"vitest run","build":"pnpm run typecheck && pnpm run build:tsc","check":"pnpm run typecheck && pnpm run lint","format":"biome format --write src/","release":"semantic-release","lint:fix":"biome check --write src/ tests/","build:tsc":"tsc","typecheck":"tsc --noEmit --project tsconfig.test.json","test:coverage":"vitest run --coverage","release:dry-run":"semantic-release --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:720e51f4-fe48-4126-80c3-2033ee323fbe"}},"repository":{"url":"git+https://github.com/shaftoe/pi-usage-lib.git","type":"git"},"_npmVersion":"11.19.0","description":"Shared library for Pi usage monitoring extensions","directories":{},"_nodeVersion":"24.21.0","dependencies":{"temporal-polyfill":"^1.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@12.6.0","devDependencies":{"vitest":"^4.0.16","typescript":"^7.0.2","@types/node":"^26.6.2","@biomejs/biome":"^2.5.14","semantic-release":"^25.0.9","@vitest/coverage-v8":"^4.0.16","@semantic-release/git":"^11.0.1","@semantic-release/npm":"^13.2.0","@semantic-release/exec":"^7.1.0","@semantic-release/github":"^12.0.10","@semantic-release/commit-analyzer":"^13.0.1","@alexanderfortin/semantic-release-keep-a-changelog":"^0.4.14"},"peerDependencies":{"@earendil-works/pi-tui":"^0.87.1","@earendil-works/pi-coding-agent":"^0.87.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-usage-lib_0.3.0_1790311534061_0.677882988220383","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"_id":"@alexanderfortin/pi-usage-lib@0.3.1","bugs":{"url":"https://github.com/shaftoe/pi-usage-lib/issues"},"dist":{"shasum":"3b313f2e5c59646b3b4420afa5715c5059a68e1d","tarball":"https://registry.npmjs.org/@alexanderfortin/pi-usage-lib/-/pi-usage-lib-0.3.1.tgz","fileCount":36,"integrity":"sha512-DCieYswdWF/WN6nXj+kLZCj3PSmK4qh/G0XeQwiXQanU5fU6XGpRq51HM69DbpdMVKUMmT1KNTw3ob1OLa5uug==","signatures":[{"sig":"MEUCIB+x8ubrMsZIybfeJ/pHisZiM8FHsE2NZjTEMSnR+YrRAiEA9aDz0dO+Im/4050eozHjq3QbSVY4DNqJvn1sL8ytpQ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDmLcpn075hU1HyCTJY0AHiW867OHZQcaJjsFjZRuixmwIhAPUNgv6clwQn86g8SywHNAp7LBbB/EbzITLaJ90Y9Prm"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexanderfortin%2fpi-usage-lib@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57331},"main":"./dist/index.js","name":"@alexanderfortin/pi-usage-lib","type":"module","types":"./dist/index.d.ts","author":{"name":"Alexander Fortin"},"engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./datetime":{"types":"./dist/datetime.d.ts","import":"./dist/datetime.js"}},"gitHead":"91620be1eda38b350f966e7c7911054e311325ca","license":"MIT","scripts":{"dev":"node --watch --experimental-strip-types src/index.ts","lint":"biome check src/ tests/","test":"vitest run","build":"pnpm run typecheck && pnpm run build:tsc","check":"pnpm run typecheck && pnpm run lint","format":"biome format --write src/","release":"semantic-release","lint:fix":"biome check --write src/ tests/","build:tsc":"tsc","typecheck":"tsc --noEmit --project tsconfig.test.json","test:coverage":"vitest run --coverage","release:dry-run":"semantic-release --dry-run"},"version":"0.3.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:720e51f4-fe48-4126-80c3-2033ee323fbe"}},"homepage":"https://github.com/shaftoe/pi-usage-lib#readme","keywords":["pi-package","pi-extension","usage-monitoring","api-quota"],"repository":{"url":"git+https://github.com/shaftoe/pi-usage-lib.git","type":"git"},"_npmVersion":"11.19.0","description":"Shared library for Pi usage monitoring extensions","directories":{},"maintainers":[{"name":"alexanderfortin","email":"a@l3x.in"}],"_nodeVersion":"24.21.0","dependencies":{"temporal-polyfill":"^1.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@12.6.0","devDependencies":{"vitest":"^4.0.16","typescript":"^7.0.2","@types/node":"^26.6.2","@biomejs/biome":"^2.5.14","semantic-release":"^25.0.9","@vitest/coverage-v8":"^4.0.16","@semantic-release/git":"^11.0.1","@semantic-release/npm":"^13.2.0","@semantic-release/exec":"^7.1.0","@semantic-release/github":"^12.0.10","@semantic-release/commit-analyzer":"^13.0.1","@alexanderfortin/semantic-release-keep-a-changelog":"^0.4.14"},"peerDependencies":{"@earendil-works/pi-tui":"^0.87.1","@earendil-works/pi-coding-agent":"^0.87.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-usage-lib_0.3.1_1790312300969_0.035082634141495816"}}},"time":{"created":"2026-05-29T17:39:46.751Z","modified":"2026-09-25T04:58:21.400Z","0.0.1":"2026-05-29T17:39:47.145Z","0.0.2":"2026-06-01T15:41:43.423Z","0.0.3":"2026-06-05T10:47:18.738Z","0.0.4":"2026-06-14T15:19:52.132Z","0.0.5":"2026-06-15T12:26:42.607Z","0.0.6":"2026-06-17T09:46:39.605Z","0.0.7":"2026-06-17T11:48:17.292Z","0.1.0":"2026-06-17T16:51:55.732Z","0.2.0":"2026-06-18T07:44:44.887Z","0.2.1":"2026-06-21T18:07:25.876Z","0.2.2":"2026-06-23T06:16:43.491Z","0.2.3":"2026-06-25T05:06:24.988Z","0.2.4":"2026-07-09T11:26:22.841Z","0.2.5":"2026-08-04T15:13:20.482Z","0.2.6":"2026-08-27T14:33:35.497Z","0.2.7":"2026-08-28T00:48:34.715Z","0.2.8":"2026-09-04T00:29:58.382Z","0.2.9":"2026-09-07T00:37:49.893Z","0.2.10":"2026-09-20T11:54:11.989Z","0.2.11":"2026-09-21T13:27:42.982Z","0.2.12":"2026-09-23T00:55:04.279Z","0.2.13":"2026-09-23T11:17:49.290Z","0.3.0":"2026-09-25T04:45:34.145Z","0.3.1":"2026-09-25T04:58:21.077Z"},"bugs":{"url":"https://github.com/shaftoe/pi-usage-lib/issues"},"author":{"name":"Alexander Fortin"},"license":"MIT","homepage":"https://github.com/shaftoe/pi-usage-lib#readme","keywords":["pi-package","pi-extension","usage-monitoring","api-quota"],"repository":{"url":"git+https://github.com/shaftoe/pi-usage-lib.git","type":"git"},"description":"Shared library for Pi usage monitoring extensions","maintainers":[{"name":"alexanderfortin","email":"a@l3x.in"}],"readme":"# pi-usage-lib\n\nShared library for building [Pi coding agent](https://pi.dev/) usage-monitoring extensions.\n\nIt absorbs all the boilerplate that most `*-usage` extension needs — Pi event registration, provider matching, API fetching with sandbox-aware auth, response caching, error handling, and themed footer rendering — so that each extension reduces to a single config object with two callbacks.\n\n## What's Included\n\n| Module | Exports | Purpose |\n|---|---|---|\n| `pi-usage-lib` | `createUsageExtension()`, `UsageCache`, `UsageError`, `buildAuthHeaders()`, `safeFetch()`, `safeParseJson()` | Factory + building blocks |\n| `pi-usage-lib/datetime` | `formatInstantFromEpochMs()`, `formatTimeRemainingFromEpochMs()` | Temporal date/time helpers |\n\n## Install\n\n```bash\npnpm add @alexanderfortin/pi-usage-lib\n```\n\n## Quick Start\n\n```ts\nimport { createUsageExtension, buildAuthHeaders, safeFetch, safeParseJson } from \"@alexanderfortin/pi-usage-lib\"\n\nexport default createUsageExtension({\n  providerPrefix: \"myprovider\",\n  statusKey: \"myprovider-usage\",\n  label: \"MyProvider\",\n\n  async fetchUsage(modelRegistry) {\n    const headers = await buildAuthHeaders(modelRegistry, \"myprovider\")\n    const response = await safeFetch(\"https://api.myprovider.com/usage\", { headers })\n    const data = await safeParseJson(response)\n    return { balance: data.balance }\n  },\n\n  renderStatus(data, theme) {\n    return theme.fg(\"muted\", \"MyProvider:\") + theme.fg(\"accent\", `$${data.balance.toFixed(2)}`)\n  },\n})\n```\n\nThat's it — one file, no other source files needed. The factory registers all Pi events, manages caching, handles errors, and shows a themed footer automatically.\n\n## API Reference\n\n### `createUsageExtension<TData>(config)`\n\nCreates a Pi extension function from a configuration object.\n\n```ts\ninterface UsageExtensionConfig<TData> {\n  providerPrefix: string      // e.g. \"zai\", \"deepseek\"\n  statusKey: string           // e.g. \"zai-usage\"\n  label: string               // e.g. \"MyProvider\"\n  cooldownMs?: number         // cache TTL (default: 30_000)\n  fetchUsage: FetchUsageFn<TData>\n  renderStatus: RenderStatusFn<TData>\n  renderError?: RenderErrorFn // optional, defaults to themed <err:code> display\n}\n```\n\nThe returned function is a valid Pi extension — pass it as the default export or register it via `pi.extensions`.\n\n### `buildAuthHeaders(modelRegistry, providerName, extra?)`\n\nBuilds authenticated fetch headers using a **3-way sandbox-aware** strategy:\n\n1. **Real key** → sends `Authorization: Bearer <key>`\n2. **`\"proxy-managed\"` sentinel** → skips auth header (Docker Sandbox proxy handles it)\n3. **No key** → skips auth header (API returns 401 → shown as `<err:http401>`)\n\nAlways sets `Accept-Encoding: identity` to work around Pi v0.75.0's undici gzip decompression issue.\n\n### `safeFetch(url, init?)`\n\nWraps `fetch()` with structured error handling:\n\n- Network errors (DNS, timeout, proxy) → throws `UsageError` with code `\"fetch\"`\n- HTTP errors (4xx, 5xx) → throws `UsageError` with code `\"http{status}\"`\n\n### `safeParseJson<T>(response)`\n\nParses `response.json()` with error handling:\n\n- Empty or malformed body → throws `UsageError` with code `\"badjson\"`\n\n### `UsageError`\n\n```ts\nclass UsageError extends Error {\n  readonly name = \"UsageError\"\n  readonly code: string  // e.g. \"fetch\", \"http401\", \"badjson\", custom codes\n}\n```\n\nUsed by `safeFetch`, `safeParseJson`, and the default error renderer. Extensions can throw `UsageError` from their `fetchUsage` with custom codes — the default `renderError` will display them as `<err:code>` in the footer.\n\n### `UsageCache<TData>`\n\nThe generic cache class used internally by `createUsageExtension`. Available for advanced use cases where you need direct control over the cache lifecycle.\n\n## Color Thresholds (Configurable)\n\nThe library highlights usage values with color when they approach or exceed limits:\n\n- **Percentage-based** (e.g. Z.ai usage): **warning** above 80%, **critical** at 90%+\n- **Credit-based** (e.g. DeepSeek balance): **warning** below $5, **critical** at $1 or less\n\n### Overriding thresholds via settings file\n\nYou can override any or all of the default thresholds by creating a JSON file at `~/.pi/agent/usage-lib.json`:\n\n```json\n{\n  \"thresholds\": {\n    \"percentage\": { \"warning\": 70, \"critical\": 85 },\n    \"credit\": { \"warning\": 5, \"critical\": 2 }\n  }\n}\n```\n\nAll keys are optional — only the ones you specify are overridden; the rest keep their defaults. Unknown keys and non-numeric values are silently ignored. The file is read once per session and cached.\n\n### Overriding thresholds programmatically\n\nThe `colorForPercentage()` and `colorForCredit()` helpers accept an optional `thresholds` parameter:\n\n```ts\nimport { colorForPercentage, type ColorThresholds } from \"@alexanderfortin/pi-usage-lib\"\n\nconst custom: ColorThresholds = {\n  percentage: { warning: 60, critical: 75 },\n  credit: { warning: 5, critical: 1 },\n}\n\n// In your renderStatus callback:\nconst color = colorForPercentage(data.percentage, theme, custom)\n```\n\nWhen no `thresholds` argument is passed, the functions fall back to the values loaded from the settings file (or the built-in defaults).\n\n### Color threshold API\n\n| Export | Description |\n|---|---|\n| `ColorThresholds` | Type describing the threshold structure |\n| `DEFAULT_COLOR_THRESHOLDS` | Built-in default thresholds |\n| `loadColorThresholds()` | Load & cache thresholds from the settings file |\n| `mergeThresholds(defaults, overrides)` | Merge partial overrides into defaults |\n| `getSettingsFilePath()` | Resolve the path to `~/.pi/agent/usage-lib.json` |\n\n### Error Display (Default Behavior)\n\nBy default, errors are shown in the footer using the following pattern:\n\n```\nMyProvider:<err:http401>\nMyProvider:<err:fetch>\nMyProvider:<err:badjson>\n```\n\nNo `console.error` is called — the footer is the error channel. To customize, provide a `renderError` callback. Return `undefined` to clear the footer instead.\n\n### Date/Time Utilities (`pi-usage-lib/datetime`)\n\n```ts\nimport { formatInstantFromEpochMs, formatTimeRemainingFromEpochMs } from \"@alexanderfortin/pi-usage-lib/datetime\"\n\nformatInstantFromEpochMs(1705318245000)    // \"Mon, 15 Jan 2024, 14:30:45 GMT\"\nformatTimeRemainingFromEpochMs(Date.now() + 3665000)  // \"1h 1m 5s\"\n```\n\n## License\n\nSee [LICENSE](./LICENSE)\n","readmeFilename":"README.md"}