{"_id":"@bernierllc/ai-cost-tracker","_rev":"14-e1f44377b6c4e561f5962061dd17a095","name":"@bernierllc/ai-cost-tracker","dist-tags":{"latest":"1.6.1"},"versions":{"1.0.0":{"name":"@bernierllc/ai-cost-tracker","version":"1.0.0","keywords":["ai","cost","tracking","tokens","openai","anthropic","budget","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"MIT","_id":"@bernierllc/ai-cost-tracker@1.0.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"163b0f416e170182fa948c5ac4a9ded727e04efb","tarball":"https://registry.npmjs.org/@bernierllc/ai-cost-tracker/-/ai-cost-tracker-1.0.0.tgz","fileCount":27,"integrity":"sha512-TJdRkgsNIH/+8QnB5nr5XCaerIEE8hFRsXDTfchok27gYDlxlD7RbVLWN/s9722AgIledeqPc7wKuZSDrsaBgA==","signatures":[{"sig":"MEQCIDeElhCglCj4UXVfVHmc0dCdxR5TY/pM3Mq2gbP780eIAiAOV7Ft1j25DDdqWaI57E8rMC8JXVNmPAWRQLS/K+UCJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55718},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"23cb70629713b68790295f47e906b67b423084ea","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts __tests__/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.6.0","description":"Token usage and cost tracking for AI providers (OpenAI, Anthropic) with per-model pricing, usage reports, and budget alerts","directories":{},"_nodeVersion":"24.10.0","dependencies":{"@bernierllc/logger":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-cost-tracker_1.0.0_1762367131095_0.8334952254342185","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@bernierllc/ai-cost-tracker","version":"1.0.2","keywords":["ai","cost","tracking","tokens","openai","anthropic","budget","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"MIT","_id":"@bernierllc/ai-cost-tracker@1.0.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"f86ed430809018a42c3ffc609c49851482e238b1","tarball":"https://registry.npmjs.org/@bernierllc/ai-cost-tracker/-/ai-cost-tracker-1.0.2.tgz","fileCount":27,"integrity":"sha512-HTSgyV92IZ+z7BfOIDgKusx2aGZKHjmLkntTtLyLf3C0ITo3o8kswLMECjJt0XFlxnbXuKsqLee371aRAyk7LQ==","signatures":[{"sig":"MEYCIQDfmorqOWLVBavuaATGFjhzTuDpARd6rWifPXMrnyhL8QIhANwzOScR6Fqr4Hhn5aMF1ajE05znusJy0MQkKUrDewr4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56493},"main":"dist/index.js","_from":"file:bernierllc-ai-cost-tracker-1.0.2.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts __tests__/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_resolved":"/private/var/folders/r0/wspnzd1s18sfjy10ffyv2qxw0000gn/T/145d2ffc999103b102f8d3192a752466/bernierllc-ai-cost-tracker-1.0.2.tgz","_integrity":"sha512-HTSgyV92IZ+z7BfOIDgKusx2aGZKHjmLkntTtLyLf3C0ITo3o8kswLMECjJt0XFlxnbXuKsqLee371aRAyk7LQ==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.6.2","description":"Token usage and cost tracking for AI providers (OpenAI, Anthropic) with per-model pricing, usage reports, and budget alerts","directories":{},"_nodeVersion":"25.2.1","dependencies":{"@bernierllc/logger":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-cost-tracker_1.0.2_1764637144234_0.04484978803084627","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@bernierllc/ai-cost-tracker","version":"1.0.3","keywords":["ai","cost","tracking","tokens","openai","anthropic","budget","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"MIT","_id":"@bernierllc/ai-cost-tracker@1.0.3","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"fe69275362cf928d1919a2077acac4f87514969d","tarball":"https://registry.npmjs.org/@bernierllc/ai-cost-tracker/-/ai-cost-tracker-1.0.3.tgz","fileCount":27,"integrity":"sha512-RN5ap3VvlxXsdT3Q0jjJ/6h7C4yXWwSpwqMm4m0Yf+ODYEzN9ZW062D4CClQH6WMS2ekS+WxMPcEgvRRLsNTmg==","signatures":[{"sig":"MEQCICXkkhswCmmb6jsq1fyfqVWG2hjAyPHjQnNJpaWJH1ohAiAcNCIskAzo5z8Z+HPdhqULApV+TXuGTlR92kmDCL8whw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56588},"main":"dist/index.js","_from":"file:bernierllc-ai-cost-tracker-1.0.3.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts __tests__/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cfe9cb5b-33c6-4d2a-9b28-bbc5310ad273"}},"_resolved":"/tmp/7581fe14356bbcf3c637ab6a6232db55/bernierllc-ai-cost-tracker-1.0.3.tgz","_integrity":"sha512-RN5ap3VvlxXsdT3Q0jjJ/6h7C4yXWwSpwqMm4m0Yf+ODYEzN9ZW062D4CClQH6WMS2ekS+WxMPcEgvRRLsNTmg==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.7.0","description":"Token usage and cost tracking for AI providers (OpenAI, Anthropic) with per-model pricing, usage reports, and budget alerts","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/logger":"1.0.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-cost-tracker_1.0.3_1766437719819_0.1470732849986962","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@bernierllc/ai-cost-tracker","version":"1.0.4","keywords":["ai","cost","tracking","tokens","openai","anthropic","budget","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"MIT","_id":"@bernierllc/ai-cost-tracker@1.0.4","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"1ac61d967204fee734a11b1b158d5b51fad35f82","tarball":"https://registry.npmjs.org/@bernierllc/ai-cost-tracker/-/ai-cost-tracker-1.0.4.tgz","fileCount":27,"integrity":"sha512-wPG4P6NaEnrd0TGTeOwMC6u/Jbps7zlk61IVzlbeD0YSRBDgbTdi15yUUoIOsbVe/AQsOw+pqrfRRvNMKkVtpg==","signatures":[{"sig":"MEUCIA4ARHzhTGr+P7NkUEDxkKj2ikNax8WxE3duRrL0n/jXAiEA193ByJUR+NXtoyNsFV3esxL331DLjZXMprTcNuY1Myw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56588},"main":"dist/index.js","_from":"file:bernierllc-ai-cost-tracker-1.0.4.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts __tests__/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cfe9cb5b-33c6-4d2a-9b28-bbc5310ad273"}},"_resolved":"/tmp/d4e6fb7e2bb70950845f544b5d5b0e08/bernierllc-ai-cost-tracker-1.0.4.tgz","_integrity":"sha512-wPG4P6NaEnrd0TGTeOwMC6u/Jbps7zlk61IVzlbeD0YSRBDgbTdi15yUUoIOsbVe/AQsOw+pqrfRRvNMKkVtpg==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.7.0","description":"Token usage and cost tracking for AI providers (OpenAI, Anthropic) with per-model pricing, usage reports, and budget alerts","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/logger":"1.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-cost-tracker_1.0.4_1766454377103_0.6925628467889899","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@bernierllc/ai-cost-tracker","version":"1.2.0","keywords":["ai","cost","tracking","tokens","openai","anthropic","budget","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"MIT","_id":"@bernierllc/ai-cost-tracker@1.2.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"6392af230e52b06edf25c3f8d9c8f5a11eed3089","tarball":"https://registry.npmjs.org/@bernierllc/ai-cost-tracker/-/ai-cost-tracker-1.2.0.tgz","fileCount":27,"integrity":"sha512-grUPAHlixnGeXhRTKBMh2dHQWjPJ6bSjwPLhvHq/WFpXQfk1JRCK8hmg1VCrXt9C57S3HyPEffilWQmlpERytQ==","signatures":[{"sig":"MEYCIQDsYEpgPG1eosHsFsGZRFVoopfcQ/OGL80BIbnvy1LPMwIhAJHm9JD3NsGsY/kO8/BPblaE2da+XqNJfS3qy9Mv1jeb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56646},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"af7e74b3715d56d3a193e1bb6743b337c2b0df6d","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts __tests__/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cfe9cb5b-33c6-4d2a-9b28-bbc5310ad273"}},"repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"lerna/9.0.3/node@v20.19.6+x64 (linux)","description":"Token usage and cost tracking for AI providers (OpenAI, Anthropic) with per-model pricing, usage reports, and budget alerts","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/logger":"1.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-cost-tracker_1.2.0_1767642426463_0.16408067960233508","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@bernierllc/ai-cost-tracker","version":"1.2.1","keywords":["ai","cost","tracking","tokens","openai","anthropic","budget","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"MIT","_id":"@bernierllc/ai-cost-tracker@1.2.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"e362565a2a76c97a9d231270a9150d495afc474d","tarball":"https://registry.npmjs.org/@bernierllc/ai-cost-tracker/-/ai-cost-tracker-1.2.1.tgz","fileCount":27,"integrity":"sha512-4ixNIbuimsjEWCNe36Mo3JGKGueD9p+AcntFwz4O2xFRidE/VjTmESm0Dh1Vu6Vqle8P3a8WQ4IOKFF0uCfqYA==","signatures":[{"sig":"MEUCIF689WhndioZGu6GhvMVqgO8xhwIehYNN4CnnOK3FgXzAiEAvkGXWKflgCtPKTGbUsnR/G4JHd/+ojC0NNSzY8CYESw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56588},"main":"dist/index.js","_from":"file:bernierllc-ai-cost-tracker-1.2.1.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts __tests__/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cfe9cb5b-33c6-4d2a-9b28-bbc5310ad273"}},"_resolved":"/tmp/256363511c07690c5a11f32e4410e90f/bernierllc-ai-cost-tracker-1.2.1.tgz","_integrity":"sha512-4ixNIbuimsjEWCNe36Mo3JGKGueD9p+AcntFwz4O2xFRidE/VjTmESm0Dh1Vu6Vqle8P3a8WQ4IOKFF0uCfqYA==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.11.0","description":"Token usage and cost tracking for AI providers (OpenAI, Anthropic) with per-model pricing, usage reports, and budget alerts","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@bernierllc/logger":"1.3.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-cost-tracker_1.2.1_1773078345581_0.277974904085595","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@bernierllc/ai-cost-tracker","version":"1.2.2","keywords":["ai","cost","tracking","tokens","openai","anthropic","budget","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"MIT","_id":"@bernierllc/ai-cost-tracker@1.2.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"72ba6e74f99a83f05f66c59ffb3b903a0cc427c8","tarball":"https://registry.npmjs.org/@bernierllc/ai-cost-tracker/-/ai-cost-tracker-1.2.2.tgz","fileCount":27,"integrity":"sha512-tFKvHh15iSeErk9lQabv+qgHtqtNQWI02dX7fN+n+wV+RWS0ZTa04lM97WO5S/XxwH4kHgsL/2vIY32mt3zU0A==","signatures":[{"sig":"MEYCIQCtJm6S4ovzY4ubzaa2XcxD8QemeFSHd+9TEussvwRhuwIhAM1Kizl1qTFgTNhFui+WDEuZlDglwCS42uK4C7f0m0As","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56588},"main":"dist/index.js","_from":"file:bernierllc-ai-cost-tracker-1.2.2.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts __tests__/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cfe9cb5b-33c6-4d2a-9b28-bbc5310ad273"}},"_resolved":"/home/runner/work/tools/tools/packages/core/ai-cost-tracker/bernierllc-ai-cost-tracker-1.2.2.tgz","_integrity":"sha512-tFKvHh15iSeErk9lQabv+qgHtqtNQWI02dX7fN+n+wV+RWS0ZTa04lM97WO5S/XxwH4kHgsL/2vIY32mt3zU0A==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.11.0","description":"Token usage and cost tracking for AI providers (OpenAI, Anthropic) with per-model pricing, usage reports, and budget alerts","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@bernierllc/logger":"1.3.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-cost-tracker_1.2.2_1773162992480_0.1011644748156586","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@bernierllc/ai-cost-tracker","version":"1.2.3","keywords":["ai","cost","tracking","tokens","openai","anthropic","budget","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"MIT","_id":"@bernierllc/ai-cost-tracker@1.2.3","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"2572ee5ba77a92cd12485bb5b09a2a31c56b3201","tarball":"https://registry.npmjs.org/@bernierllc/ai-cost-tracker/-/ai-cost-tracker-1.2.3.tgz","fileCount":27,"integrity":"sha512-O5CLGaAooazOUt5LMW0sD2jeCQ9/uINlnU2+x15GI8uzY75hewNqGhEQ153yOo/MdwjQWBt+nQROaLTJ3R49NA==","signatures":[{"sig":"MEYCIQC5b5mxnNMKPhmHDaotsmblAJ0EAHItG0cVYmqUDPH5ygIhAOTCicyH91r5U32SPMPjrxd0iL/Nwa28ZoV5Q5PZ5tIa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56588},"main":"dist/index.js","_from":"file:bernierllc-ai-cost-tracker-1.2.3.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts __tests__/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cfe9cb5b-33c6-4d2a-9b28-bbc5310ad273"}},"_resolved":"/home/runner/work/tools/tools/packages/core/ai-cost-tracker/bernierllc-ai-cost-tracker-1.2.3.tgz","_integrity":"sha512-O5CLGaAooazOUt5LMW0sD2jeCQ9/uINlnU2+x15GI8uzY75hewNqGhEQ153yOo/MdwjQWBt+nQROaLTJ3R49NA==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.14.1","description":"Token usage and cost tracking for AI providers (OpenAI, Anthropic) with per-model pricing, usage reports, and budget alerts","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-cost-tracker_1.2.3_1779133311917_0.000409817241703081","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"@bernierllc/ai-cost-tracker","version":"1.2.4","keywords":["ai","cost","tracking","tokens","openai","anthropic","budget","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"MIT","_id":"@bernierllc/ai-cost-tracker@1.2.4","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"072cc9cd9f2c78c3e322ff84c8ae2b5377a64890","tarball":"https://registry.npmjs.org/@bernierllc/ai-cost-tracker/-/ai-cost-tracker-1.2.4.tgz","fileCount":27,"integrity":"sha512-C8M+hBCYj9N3AXecl+aJ1KMPCfsKzEHI2eHhVlT9K0JDGvNtEWXrocHAffHtPr9uaevzElNQEHhOJDx6FVYV2w==","signatures":[{"sig":"MEQCIEavkPf/vY2sBBbcdpAPXrG2KcLU7B7BJlnjpXm4cUpeAiBHnPybNotFEeu0r5Dx46iPg6dFA6PXAQyN/4ebviw0hA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56588},"main":"dist/index.js","_from":"file:bernierllc-ai-cost-tracker-1.2.4.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts __tests__/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cfe9cb5b-33c6-4d2a-9b28-bbc5310ad273"}},"_resolved":"/home/runner/work/tools/tools/packages/core/ai-cost-tracker/bernierllc-ai-cost-tracker-1.2.4.tgz","_integrity":"sha512-C8M+hBCYj9N3AXecl+aJ1KMPCfsKzEHI2eHhVlT9K0JDGvNtEWXrocHAffHtPr9uaevzElNQEHhOJDx6FVYV2w==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.14.1","description":"Token usage and cost tracking for AI providers (OpenAI, Anthropic) with per-model pricing, usage reports, and budget alerts","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.4.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-cost-tracker_1.2.4_1779157069714_0.36230433370512416","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"@bernierllc/ai-cost-tracker","version":"1.2.5","keywords":["ai","cost","tracking","tokens","openai","anthropic","budget","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"MIT","_id":"@bernierllc/ai-cost-tracker@1.2.5","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"8020cdcade9a0da9d6e880e52fdb24e47aaa2af0","tarball":"https://registry.npmjs.org/@bernierllc/ai-cost-tracker/-/ai-cost-tracker-1.2.5.tgz","fileCount":27,"integrity":"sha512-8UYMBeYm9P3+5nBEGhhfb9OCIRfTO0avvngOVM/w3/vLScrPPukKKskb4bmgpkAe4s/UWUoBjCYSYpQCnNQORQ==","signatures":[{"sig":"MEQCIDsA3Y/WdTFvKB47v8OwOEJM5qaJ0TWRTZ8GznR/k5bUAiAkmx9QVx8NTILhAjTihO97J+jwqO21xo1wFzLVg5O+ng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56588},"main":"dist/index.js","_from":"file:bernierllc-ai-cost-tracker-1.2.5.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts __tests__/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cfe9cb5b-33c6-4d2a-9b28-bbc5310ad273"}},"_resolved":"/home/runner/work/tools/tools/packages/core/ai-cost-tracker/bernierllc-ai-cost-tracker-1.2.5.tgz","_integrity":"sha512-8UYMBeYm9P3+5nBEGhhfb9OCIRfTO0avvngOVM/w3/vLScrPPukKKskb4bmgpkAe4s/UWUoBjCYSYpQCnNQORQ==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.14.1","description":"Token usage and cost tracking for AI providers (OpenAI, Anthropic) with per-model pricing, usage reports, and budget alerts","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.4.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-cost-tracker_1.2.5_1779221165501_0.12706415229705836","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@bernierllc/ai-cost-tracker","version":"1.4.0","keywords":["ai","cost","tracking","tokens","openai","anthropic","budget","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"MIT","_id":"@bernierllc/ai-cost-tracker@1.4.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"9b053b3987ab34dcc87c45e4cd85a8ff723c6c7f","tarball":"https://registry.npmjs.org/@bernierllc/ai-cost-tracker/-/ai-cost-tracker-1.4.0.tgz","fileCount":31,"integrity":"sha512-aFwonVrTioDFJ6M1GVPMi5I2VAh+9aSedcBJeXsppIOoH2Xo6N3MSyVVofIpftAx7flH+4Rwb+IdXRoCD+UcfA==","signatures":[{"sig":"MEQCIBM5b7Uvcu78PGlKgKkSI+VhF7ofKn0QbQFXNdSGs/3EAiBIwzBDUyy4dvGJOO7vBtFy9tC1wHPK5zUvr04CsvKj2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59778},"main":"dist/index.js","_from":"file:bernierllc-ai-cost-tracker-1.4.0.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts __tests__/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cfe9cb5b-33c6-4d2a-9b28-bbc5310ad273"}},"_resolved":"/home/runner/work/tools/tools/packages/core/ai-cost-tracker/bernierllc-ai-cost-tracker-1.4.0.tgz","_integrity":"sha512-aFwonVrTioDFJ6M1GVPMi5I2VAh+9aSedcBJeXsppIOoH2Xo6N3MSyVVofIpftAx7flH+4Rwb+IdXRoCD+UcfA==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.14.1","description":"Token usage and cost tracking for AI providers (OpenAI, Anthropic) with per-model pricing, usage reports, and budget alerts","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.4.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-cost-tracker_1.4.0_1779233783058_0.5629466581395701","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@bernierllc/ai-cost-tracker","version":"1.5.0","keywords":["ai","cost","tracking","tokens","openai","anthropic","budget","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"MIT","_id":"@bernierllc/ai-cost-tracker@1.5.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"6b26937bfbab55bc6af2ad5968ff851ceadcfadb","tarball":"https://registry.npmjs.org/@bernierllc/ai-cost-tracker/-/ai-cost-tracker-1.5.0.tgz","fileCount":31,"integrity":"sha512-rnoaku1KrQBwAt6m4oi1eq6UBfT53Xqp9Jj1HgjweEw+/P491yN/4uwiuz6s4AV3ctNVIjO0Fjdg1eeBoehziQ==","signatures":[{"sig":"MEYCIQC5xFOoLPONdAtvxesVW67mTIa4DyyvhbU/6fwAsIC4YwIhAOH5LODX0XFhGBEpV2fMTLsjL4GFpzpNsymtVYFOVbGR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59778},"main":"dist/index.js","_from":"file:bernierllc-ai-cost-tracker-1.5.0.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts __tests__/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cfe9cb5b-33c6-4d2a-9b28-bbc5310ad273"}},"_resolved":"/home/runner/work/tools/tools/packages/core/ai-cost-tracker/bernierllc-ai-cost-tracker-1.5.0.tgz","_integrity":"sha512-rnoaku1KrQBwAt6m4oi1eq6UBfT53Xqp9Jj1HgjweEw+/P491yN/4uwiuz6s4AV3ctNVIjO0Fjdg1eeBoehziQ==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.14.1","description":"Token usage and cost tracking for AI providers (OpenAI, Anthropic) with per-model pricing, usage reports, and budget alerts","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-cost-tracker_1.5.0_1779240884718_0.739609225361701","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@bernierllc/ai-cost-tracker","version":"1.6.0","keywords":["ai","cost","tracking","tokens","openai","anthropic","budget","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"MIT","_id":"@bernierllc/ai-cost-tracker@1.6.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"d9dd7df0fba15addc0407fefab184c99a665f482","tarball":"https://registry.npmjs.org/@bernierllc/ai-cost-tracker/-/ai-cost-tracker-1.6.0.tgz","fileCount":31,"integrity":"sha512-PRHp5QGpJDTQAxtEmwQj7u0fFiXOBT/VIo0nJp+S2vQvDsFkBmhkFm3ZKBiOjNMhPurLxs1CFf9RtHhfWij7iw==","signatures":[{"sig":"MEUCIQDMrRCEc8bhQxh18xdVyQ2WD0ld0bWY3iBk/W8rOp/n9gIgJgQoglMDmnaA7U05D/9t+AzoYgmV0NXWE0/bZEt3gGo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59778},"main":"dist/index.js","_from":"file:bernierllc-ai-cost-tracker-1.6.0.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts __tests__/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cfe9cb5b-33c6-4d2a-9b28-bbc5310ad273"}},"_resolved":"/home/runner/work/tools/tools/packages/core/ai-cost-tracker/bernierllc-ai-cost-tracker-1.6.0.tgz","_integrity":"sha512-PRHp5QGpJDTQAxtEmwQj7u0fFiXOBT/VIo0nJp+S2vQvDsFkBmhkFm3ZKBiOjNMhPurLxs1CFf9RtHhfWij7iw==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.14.1","description":"Token usage and cost tracking for AI providers (OpenAI, Anthropic) with per-model pricing, usage reports, and budget alerts","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/logger":"1.7.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-cost-tracker_1.6.0_1779249615060_0.8482141520400333","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"@bernierllc/ai-cost-tracker","version":"1.6.1","description":"Token usage and cost tracking for AI providers (OpenAI, Anthropic) with per-model pricing, usage reports, and budget alerts","main":"dist/index.js","types":"dist/index.d.ts","keywords":["ai","cost","tracking","tokens","openai","anthropic","budget","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/bernier-llc/tools.git"},"dependencies":{"@bernierllc/logger":"1.7.1"},"devDependencies":{"@types/jest":"^29.5.14","@types/node":"^20.0.0","@typescript-eslint/eslint-plugin":"^6.0.0","@typescript-eslint/parser":"^6.0.0","eslint":"^8.0.0","jest":"^29.5.0","rimraf":"^5.0.0","ts-jest":"^29.4.0","typescript":"^5.0.0"},"engines":{"node":">=18.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"build":"tsc","dev":"tsc --watch","test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage","test:run":"jest --passWithNoTests","lint":"eslint src/**/*.ts __tests__/**/*.ts","clean":"rimraf dist"},"_id":"@bernierllc/ai-cost-tracker@1.6.1","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"homepage":"https://github.com/bernier-llc/tools#readme","_integrity":"sha512-STusIMPrPsnq9k+BJFxt+y2Ez/5ce2d0LqycN2w5CZt46H75GK0hUjQJ9wyFjNItZiBGktHb8zSS6O9DAUL/Nw==","_resolved":"/home/runner/work/tools/tools/packages/core/ai-cost-tracker/bernierllc-ai-cost-tracker-1.6.1.tgz","_from":"file:bernierllc-ai-cost-tracker-1.6.1.tgz","_nodeVersion":"24.18.0","_npmVersion":"12.0.1","dist":{"integrity":"sha512-STusIMPrPsnq9k+BJFxt+y2Ez/5ce2d0LqycN2w5CZt46H75GK0hUjQJ9wyFjNItZiBGktHb8zSS6O9DAUL/Nw==","shasum":"cd6478e31b0e50b07089d36127e90eb7b0fee3b5","tarball":"https://registry.npmjs.org/@bernierllc/ai-cost-tracker/-/ai-cost-tracker-1.6.1.tgz","fileCount":31,"unpackedSize":59778,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIG4q79ISU5QMSoLmfNidT50zTzmOT8Rc4dq55yU6wGLbAiEAlzGMrgSidWqU26mfbtuItA7HD0u+l5CHZzxXf+/mbCc="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cfe9cb5b-33c6-4d2a-9b28-bbc5310ad273"}},"directories":{},"maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai-cost-tracker_1.6.1_1784015478832_0.8528577975947198"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-05T18:25:30.989Z","modified":"2026-07-14T07:51:19.116Z","1.0.0":"2025-11-05T18:25:31.322Z","1.0.2":"2025-12-02T00:59:04.447Z","1.0.3":"2025-12-22T21:08:39.962Z","1.0.4":"2025-12-23T01:46:17.252Z","1.2.0":"2026-01-05T19:47:06.598Z","1.2.1":"2026-03-09T17:45:45.736Z","1.2.2":"2026-03-10T17:16:32.702Z","1.2.3":"2026-05-18T19:41:52.062Z","1.2.4":"2026-05-19T02:17:49.876Z","1.2.5":"2026-05-19T20:06:05.663Z","1.4.0":"2026-05-19T23:36:23.212Z","1.5.0":"2026-05-20T01:34:44.903Z","1.6.0":"2026-05-20T04:00:15.217Z","1.6.1":"2026-07-14T07:51:18.979Z"},"bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"author":{"name":"Bernier LLC"},"license":"MIT","homepage":"https://github.com/bernier-llc/tools#readme","keywords":["ai","cost","tracking","tokens","openai","anthropic","budget","analytics","bernierllc"],"repository":{"type":"git","url":"git+https://github.com/bernier-llc/tools.git"},"description":"Token usage and cost tracking for AI providers (OpenAI, Anthropic) with per-model pricing, usage reports, and budget alerts","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"readme":"# @bernierllc/ai-cost-tracker\n\nToken usage and cost tracking for AI providers (OpenAI, Anthropic) with per-model pricing, usage reports, and budget alerts.\n\n## Features\n\n- **Multi-Provider Support**: OpenAI (GPT-3.5, GPT-4) and Anthropic (Claude 3)\n- **Accurate Pricing**: Per-model pricing data with separate input/output token costs\n- **Budget Management**: Set budgets with configurable warning thresholds and exceeded alerts\n- **Usage Analytics**: Detailed usage reports by provider, model, and time period\n- **Flexible Storage**: In-memory or file-based storage with custom adapter support\n- **Event System**: Subscribe to cost tracking, budget warning, and budget exceeded events\n- **Type-Safe**: Full TypeScript support with strict typing\n\n## Installation\n\n```bash\nnpm install @bernierllc/ai-cost-tracker\n```\n\n## Quick Start\n\n```typescript\nimport { AICostTracker } from '@bernierllc/ai-cost-tracker';\n\n// Create tracker with budget\nconst tracker = new AICostTracker({\n  budget: {\n    maxUSD: 100,\n    warningThreshold: 0.8 // Alert at 80%\n  }\n});\n\n// Track AI usage\ntracker.track('openai', 'gpt-4', {\n  inputTokens: 1000,\n  outputTokens: 500,\n  totalTokens: 1500\n});\n\n// Get current cost\nconst cost = tracker.getCost(); // $0.06\n\n// Get usage report\nconst report = tracker.getUsage();\nconsole.log(report.totalCostUSD); // 0.06\nconsole.log(report.totalTokens);  // { inputTokens: 1000, outputTokens: 500, totalTokens: 1500 }\n\n// Check budget status\nconst status = tracker.getBudgetStatus();\nconsole.log(status.percentageUsed); // 0.06%\nconsole.log(status.remainingUSD);   // $99.94\n```\n\n## Usage\n\n### Basic Cost Tracking\n\n```typescript\nimport { AICostTracker } from '@bernierllc/ai-cost-tracker';\n\nconst tracker = new AICostTracker();\n\n// Track OpenAI GPT-4 usage\ntracker.track('openai', 'gpt-4', {\n  inputTokens: 2000,\n  outputTokens: 1000,\n  totalTokens: 3000\n});\n\n// Track Anthropic Claude 3 Opus usage\ntracker.track('anthropic', 'claude-3-opus-20240229', {\n  inputTokens: 1500,\n  outputTokens: 750,\n  totalTokens: 2250\n});\n\n// Get total cost across all providers\nconst totalCost = tracker.getCost(); // $0.18\n\n// Get cost for specific provider\nconst openaiCost = tracker.getCost('openai'); // $0.12\n```\n\n### Usage Reports\n\n```typescript\n// Get overall usage report\nconst report = tracker.getUsage();\nconsole.log(report);\n// {\n//   totalCalls: 2,\n//   totalTokens: { inputTokens: 3500, outputTokens: 1750, totalTokens: 5250 },\n//   totalCostUSD: 0.18,\n//   byModel: {\n//     'openai:gpt-4': { calls: 1, tokens: {...}, costUSD: 0.12 },\n//     'anthropic:claude-3-opus-20240229': { calls: 1, tokens: {...}, costUSD: 0.06 }\n//   }\n// }\n\n// Get report for specific provider\nconst openaiReport = tracker.getUsage('openai');\nconsole.log(openaiReport.totalCostUSD); // 0.12\n```\n\n### Budget Management\n\n```typescript\nconst tracker = new AICostTracker({\n  budget: {\n    maxUSD: 50,\n    warningThreshold: 0.8 // 80%\n  }\n});\n\n// Subscribe to budget events\ntracker.on('budget.warning', (status) => {\n  console.log(`Warning: ${status.percentageUsed.toFixed(2)}% of budget used`);\n});\n\ntracker.on('budget.exceeded', (status) => {\n  console.log(`Budget exceeded! Spent $${status.spentUSD.toFixed(2)}`);\n});\n\n// Track usage\ntracker.track('openai', 'gpt-4', {\n  inputTokens: 100000,\n  outputTokens: 50000,\n  totalTokens: 150000\n}); // Cost: $6.00\n\n// Check budget status\nconst status = tracker.getBudgetStatus();\nconsole.log(status);\n// {\n//   budgetUSD: 50,\n//   spentUSD: 6.00,\n//   remainingUSD: 44.00,\n//   percentageUsed: 12,\n//   isExceeded: false,\n//   isWarning: false\n// }\n```\n\n### File-Based Storage\n\n```typescript\nimport { AICostTracker, FileStorage } from '@bernierllc/ai-cost-tracker';\n\n// Use file storage (persists across restarts)\nconst tracker = new AICostTracker({\n  storage: new FileStorage('./cost-data.json')\n});\n\ntracker.track('openai', 'gpt-4', {\n  inputTokens: 1000,\n  outputTokens: 500,\n  totalTokens: 1500\n});\n\n// Data is automatically saved to ./cost-data.json\n// On next run, data is automatically loaded\n```\n\n### Custom Storage Adapter\n\n```typescript\nimport { AICostTracker, CostStorageAdapter, CostData } from '@bernierllc/ai-cost-tracker';\n\nclass DatabaseStorage implements CostStorageAdapter {\n  async store(record: CostData): Promise<void> {\n    await db.insert('cost_records', record);\n  }\n\n  async getAll(): Promise<CostData[]> {\n    return await db.query('SELECT * FROM cost_records');\n  }\n\n  async filter(criteria: any): Promise<CostData[]> {\n    // Implement filtering logic\n  }\n\n  async clear(): Promise<void> {\n    await db.delete('cost_records');\n  }\n}\n\nconst tracker = new AICostTracker({\n  storage: new DatabaseStorage()\n});\n```\n\n### Filtering Records\n\n```typescript\n// Get records for date range\nconst januaryRecords = tracker.getRecords({\n  startDate: new Date('2025-01-01'),\n  endDate: new Date('2025-01-31')\n});\n\n// Get records for specific provider and model\nconst gpt4Records = tracker.getRecords({\n  provider: 'openai',\n  model: 'gpt-4'\n});\n```\n\n## API Reference\n\n### `AICostTracker`\n\nMain class for tracking AI costs.\n\n#### Constructor\n\n```typescript\nnew AICostTracker(config?: CostTrackerConfig)\n```\n\n**Config Options:**\n- `budget?: BudgetConfig` - Budget configuration (optional)\n- `storage?: CostStorageAdapter` - Storage adapter (defaults to in-memory)\n- `enableLogging?: boolean` - Enable logging (defaults to true)\n\n#### Methods\n\n**`track(provider, model, tokens): void`**\n\nTrack token usage for an AI operation.\n\n- `provider: 'openai' | 'anthropic'` - AI provider\n- `model: string` - Model name (e.g., 'gpt-4', 'claude-3-opus-20240229')\n- `tokens: TokenUsage` - Token usage (`{ inputTokens, outputTokens, totalTokens }`)\n\n**`getCost(provider?: AIProvider): number`**\n\nGet total cost in USD (optionally filtered by provider).\n\n**`getUsage(provider?: AIProvider): UsageReport`**\n\nGet detailed usage report (optionally filtered by provider).\n\n**`getBudgetStatus(): BudgetStatus | undefined`**\n\nGet current budget status (returns undefined if no budget configured).\n\n**`getRecords(criteria?): CostData[]`**\n\nGet cost records filtered by criteria:\n- `provider?: 'openai' | 'anthropic'`\n- `model?: string`\n- `startDate?: Date`\n- `endDate?: Date`\n\n**`on(event, handler): void`**\n\nSubscribe to events:\n- `'cost.tracked'` - Emitted when cost is tracked\n- `'budget.warning'` - Emitted when warning threshold reached\n- `'budget.exceeded'` - Emitted when budget exceeded\n\n**`off(event, handler): void`**\n\nUnsubscribe from events.\n\n**`clear(): void`**\n\nClear all tracking data.\n\n### Supported Models\n\n**OpenAI:**\n- GPT-4: `gpt-4`, `gpt-4-turbo`, `gpt-4-turbo-preview`, `gpt-4-32k`\n- GPT-3.5: `gpt-3.5-turbo`, `gpt-3.5-turbo-16k`\n\n**Anthropic:**\n- Claude 3: `claude-3-opus-20240229`, `claude-3-sonnet-20240229`, `claude-3-haiku-20240307`\n- Claude 2: `claude-2.1`, `claude-2.0`, `claude-instant-1.2`\n\nSee `MODEL_PRICING` export for complete list.\n\n### Utility Functions\n\n```typescript\nimport {\n  getModelPricing,\n  isModelSupported,\n  getSupportedModels,\n  calculateCost\n} from '@bernierllc/ai-cost-tracker';\n\n// Get pricing for a model\nconst pricing = getModelPricing('openai', 'gpt-4');\n// { inputPer1k: 0.03, outputPer1k: 0.06 }\n\n// Check if model is supported\nconst supported = isModelSupported('openai', 'gpt-4'); // true\n\n// Get all supported models for a provider\nconst models = getSupportedModels('openai');\n// ['gpt-4', 'gpt-3.5-turbo', ...]\n\n// Calculate cost manually\nconst cost = calculateCost('openai', 'gpt-4', {\n  inputTokens: 1000,\n  outputTokens: 500,\n  totalTokens: 1500\n}); // 0.06\n```\n\n## TypeScript Support\n\nThis package is written in TypeScript and includes full type definitions.\n\n```typescript\nimport type {\n  AIProvider,\n  TokenUsage,\n  CostData,\n  UsageReport,\n  BudgetConfig,\n  BudgetStatus,\n  ModelPricing,\n  CostStorageAdapter,\n  CostTrackerConfig\n} from '@bernierllc/ai-cost-tracker';\n```\n\n## Integration Status\n\n### Logger Integration\n**Status**: Integrated\n\n**Justification**: This package uses `@bernierllc/logger` for structured logging of cost tracking operations. Logs include token usage, cost calculations, budget warnings, and cost aggregation events to help with debugging and monitoring AI spending.\n\n**Pattern**: Direct integration - logger is a required dependency for this package.\n\n### NeverHub Integration\n**Status**: Not applicable\n\n**Justification**: This is a core utility package that performs cost tracking calculations. It does not participate in service discovery, event publishing, or service mesh operations. Cost tracking is a stateless utility operation that doesn't require service registration or discovery.\n\n**Pattern**: Core utility - no service mesh integration needed.\n\n### Docs-Suite Integration\n**Status**: Ready\n\n**Format**: TypeDoc-compatible JSDoc comments are included throughout the source code. All public APIs are documented with examples and type information.\n\n## License\n\nCopyright (c) 2025 Bernier LLC. All rights reserved.\n\n## Related Packages\n\n- [@bernierllc/logger](../logger) - Structured logging used by this package\n- [@bernierllc/ai-provider-core](../ai-provider-core) - Base interfaces for AI providers (planned)\n- [@bernierllc/ai-provider-router](../ai-provider-router) - Route AI requests with cost optimization (planned)\n","readmeFilename":"README.md"}