{"_id":"@auvh/climeter","_rev":"7-4f5abd2a871a0b4c0659af8256e9effa","name":"@auvh/climeter","dist-tags":{"latest":"0.1.6"},"versions":{"0.1.0":{"name":"@auvh/climeter","version":"0.1.0","keywords":["metering","billing","usage","cli","ai-agents","observability"],"license":"MIT","_id":"@auvh/climeter@0.1.0","maintainers":[{"name":"auvh","email":"agent@auvh.ai"}],"homepage":"https://climeter.ai","bugs":{"url":"https://github.com/auvhx/climeter/issues"},"dist":{"shasum":"f9c605fd31994fed9c12fb1c92ef06fb987c1981","tarball":"https://registry.npmjs.org/@auvh/climeter/-/climeter-0.1.0.tgz","fileCount":21,"integrity":"sha512-NfRpnyt4tQ9C+RG7PhkNYi4IcaY0oSYAatUozARqA5QoiWZteLf9VyLV8oq6WPPsiEv6KK2fa0ChO22fWdDD5w==","signatures":[{"sig":"MEUCIHaiP1c7dlR1rYZfC/bTI/wExDjFsIGU5Ckz5ZvpoGLRAiEAiqbpg0OwVaOJjSOHpvnB2CFkDM6Knz+Wre/Ve1aEjpg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52280},"main":"./dist/cjs/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}}},"gitHead":"2232f61e6d8acb35cc8b09c514da8bf7e477ace7","scripts":{"test":"node --test tests/*.test.mjs","build":"npm run build:esm && npm run build:cjs && npm run build:cjs:pkg","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.json","build:cjs:pkg":"node -e \"require('fs').writeFileSync('dist/cjs/package.json', JSON.stringify({type:'commonjs'},null,2))\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"auvh","email":"agent@auvh.ai"},"repository":{"url":"git+https://github.com/auvhx/climeter.git","type":"git","directory":"sdk/node"},"_npmVersion":"10.9.4","description":"Usage-based billing for CLI tools and AI agents","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5","@types/node":"^25.3.5"},"_npmOperationalInternal":{"tmp":"tmp/climeter_0.1.0_1773045253082_0.8341246999272192","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@auvh/climeter","version":"0.1.1","keywords":["metering","billing","usage","cli","ai-agents","observability"],"license":"MIT","_id":"@auvh/climeter@0.1.1","maintainers":[{"name":"auvh","email":"agent@auvh.ai"}],"homepage":"https://climeter.ai","bugs":{"url":"https://github.com/auvhx/climeter/issues"},"dist":{"shasum":"62710869f32507f0d687323bd76c5f8798d3c87e","tarball":"https://registry.npmjs.org/@auvh/climeter/-/climeter-0.1.1.tgz","fileCount":21,"integrity":"sha512-T3VVPah4FEGYxNVL/ioKHYPfQjqYxMWsHVSjCIlyQTxd8leCYJkT4J75308AEuIGBSnVHOQUTJ1uh3p0Z+Rq+w==","signatures":[{"sig":"MEQCIBrp2NA65DqZSXHbO9i36ZmYIsCZymzo33KbpUTUi4W0AiB0HTkLjxUZ6E36GkVBWdnH4syg/p2hwwxXse5BlvNbDg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50377},"main":"./dist/cjs/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}}},"gitHead":"d05759bdcc5f2b4b07dfdae31eb6554bc7c92b23","scripts":{"test":"node --test tests/*.test.mjs","build":"npm run build:esm && npm run build:cjs && npm run build:cjs:pkg","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.json","build:cjs:pkg":"node -e \"require('fs').writeFileSync('dist/cjs/package.json', JSON.stringify({type:'commonjs'},null,2))\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"auvh","email":"agent@auvh.ai"},"repository":{"url":"git+https://github.com/auvhx/climeter.git","type":"git","directory":"sdk/node"},"_npmVersion":"10.9.4","description":"Usage-based billing for CLI tools and AI agents","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5","@types/node":"^25.3.5"},"_npmOperationalInternal":{"tmp":"tmp/climeter_0.1.1_1773062916918_0.7326743200694876","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@auvh/climeter","version":"0.1.2","keywords":["metering","billing","usage","cli","ai-agents","observability"],"license":"MIT","_id":"@auvh/climeter@0.1.2","maintainers":[{"name":"auvh","email":"agent@auvh.ai"}],"homepage":"https://climeter.ai","bugs":{"url":"https://github.com/auvhx/climeter/issues"},"dist":{"shasum":"4676ca13be08a6765be0a5a72ee27d5f241c454b","tarball":"https://registry.npmjs.org/@auvh/climeter/-/climeter-0.1.2.tgz","fileCount":21,"integrity":"sha512-oWtUNkejpirB6jvWOlxGhIreWcfIt43uPV1znY/z+owJejFBwR58dSriFcAzyqwS18O1THATDgT+Q+RSeJLquQ==","signatures":[{"sig":"MEUCIENmKxmXwcEIPW6q+Ur4Rrf6jRrs0pZIO6rxxtQWZF3CAiEAlKSCy8jOLKglV4Uxosr2pRJv6AkYkcdSg6hLD+WRSDU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60432},"main":"./dist/cjs/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}}},"gitHead":"e375a0e909c4c0743bfa18382f60a6a8f4a4fcdd","scripts":{"test":"node --test tests/*.test.mjs","build":"npm run build:esm && npm run build:cjs && npm run build:cjs:pkg","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.json","build:cjs:pkg":"node -e \"require('fs').writeFileSync('dist/cjs/package.json', JSON.stringify({type:'commonjs'},null,2))\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"auvh","email":"agent@auvh.ai"},"repository":{"url":"git+https://github.com/auvhx/climeter.git","type":"git","directory":"sdk/node"},"_npmVersion":"10.9.4","description":"Usage-based billing for CLI tools and AI agents","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5","@types/node":"^25.3.5"},"_npmOperationalInternal":{"tmp":"tmp/climeter_0.1.2_1773067513659_0.4182485486250498","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@auvh/climeter","version":"0.1.3","keywords":["metering","billing","usage","cli","ai-agents","observability"],"license":"MIT","_id":"@auvh/climeter@0.1.3","maintainers":[{"name":"auvh","email":"agent@auvh.ai"}],"homepage":"https://climeter.ai","bugs":{"url":"https://github.com/auvhx/climeter/issues"},"dist":{"shasum":"0d4cf110d447bbf32e84b18137e958965b0dfbbc","tarball":"https://registry.npmjs.org/@auvh/climeter/-/climeter-0.1.3.tgz","fileCount":21,"integrity":"sha512-qO/LR03+RsRouN0J72A6Br/G32KMDKJnYTM45l1yCZzb1Ic7FiRAveGwIMLfn2JZDG2ZDl6H9WHxMFvYORRE+Q==","signatures":[{"sig":"MEUCIQCyLa9cF5zPxHQqT50IDNdnumbSbm+TMgr9UZCDML2cfAIgHQ1iKtimQampe4QagqlGSSGdVm5hcmE1E1IPrSVf9NA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76512},"main":"./dist/cjs/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}}},"gitHead":"0d6c426e1b4eafbe20101cdba02c532ed374666b","scripts":{"test":"node --test tests/*.test.mjs","build":"npm run build:esm && npm run build:cjs && npm run build:cjs:pkg","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.json","build:cjs:pkg":"node -e \"require('fs').writeFileSync('dist/cjs/package.json', JSON.stringify({type:'commonjs'},null,2))\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"auvh","email":"agent@auvh.ai"},"repository":{"url":"git+https://github.com/auvhx/climeter.git","type":"git","directory":"sdk/node"},"_npmVersion":"10.9.4","description":"Usage-based billing for CLI tools and AI agents","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5","@types/node":"^25.3.5"},"_npmOperationalInternal":{"tmp":"tmp/climeter_0.1.3_1773080445531_0.976861199915732","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@auvh/climeter","version":"0.1.4","keywords":["metering","billing","usage","cli","ai-agents","observability"],"license":"MIT","_id":"@auvh/climeter@0.1.4","maintainers":[{"name":"auvh","email":"agent@auvh.ai"}],"homepage":"https://climeter.ai","bugs":{"url":"https://github.com/auvhx/climeter/issues"},"dist":{"shasum":"19691e3b2ec1a0ceb5a4ea69dafdafd4591a6a72","tarball":"https://registry.npmjs.org/@auvh/climeter/-/climeter-0.1.4.tgz","fileCount":21,"integrity":"sha512-jQNGkGbTZEz3K/INwh+c3lwIWNcQCwbg3EH4/hYA5+SvOvgOTVKHWYxTKkK40ngcmCY6Hon5m1TFLExfXCDYkg==","signatures":[{"sig":"MEUCIQCrxEn0HZOFsoJ8PADIV8lM4X83XJFwZIESTXnqhfHe0AIgDZggTCXXTgAnYDuoXNhRQqGqQN72dQMS/UgG16y6zFo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76512},"main":"./dist/cjs/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}}},"gitHead":"0d6c426e1b4eafbe20101cdba02c532ed374666b","scripts":{"test":"node --test tests/*.test.mjs","build":"npm run build:esm && npm run build:cjs && npm run build:cjs:pkg","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.json","build:cjs:pkg":"node -e \"require('fs').writeFileSync('dist/cjs/package.json', JSON.stringify({type:'commonjs'},null,2))\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"auvh","email":"agent@auvh.ai"},"repository":{"url":"git+https://github.com/auvhx/climeter.git","type":"git","directory":"sdk/node"},"_npmVersion":"10.9.4","description":"Usage-based billing for CLI tools and AI agents","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5","@types/node":"^25.3.5"},"_npmOperationalInternal":{"tmp":"tmp/climeter_0.1.4_1773080854772_0.14791784221664384","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@auvh/climeter","version":"0.1.5","keywords":["metering","billing","usage","cli","ai-agents","observability"],"license":"MIT","_id":"@auvh/climeter@0.1.5","maintainers":[{"name":"auvh","email":"agent@auvh.ai"}],"homepage":"https://climeter.ai","bugs":{"url":"https://github.com/auvhx/climeter/issues"},"dist":{"shasum":"0d926a5b74049eb289609a2aec54cbcf97f64b78","tarball":"https://registry.npmjs.org/@auvh/climeter/-/climeter-0.1.5.tgz","fileCount":21,"integrity":"sha512-6OHtpa+jmjeahFdT7v/hUHylAa4CwChaJs4/6C/kywFLr+SM/URM6ToHNWyOHW5Q8KHLxBAQUYsIJWysSy5zwA==","signatures":[{"sig":"MEUCIQD269NqKQrbur+gP8IwXA5i65/X+N3huYRrvnI5d8uK9wIgYmU9Zj3XjyaTZvxXVzPR6dEYQVwOo3/cM+hK7Vg7328=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70238},"main":"./dist/cjs/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}}},"gitHead":"ffeda185a2e053a15d55740ff56f3d99cabe555d","scripts":{"test":"node --test tests/*.test.mjs","build":"npm run build:esm && npm run build:cjs && npm run build:cjs:pkg","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.json","build:cjs:pkg":"node -e \"require('fs').writeFileSync('dist/cjs/package.json', JSON.stringify({type:'commonjs'},null,2))\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"auvh","email":"agent@auvh.ai"},"repository":{"url":"git+https://github.com/auvhx/climeter.git","type":"git","directory":"sdk/node"},"_npmVersion":"10.9.4","description":"Usage-based billing for CLI tools and AI agents","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5","@types/node":"^25.3.5"},"_npmOperationalInternal":{"tmp":"tmp/climeter_0.1.5_1773124304079_0.39495196245205055","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@auvh/climeter","version":"0.1.6","description":"Usage-based billing for CLI tools and AI agents","homepage":"https://climeter.ai","repository":{"type":"git","url":"git+https://github.com/auvhx/climeter.git","directory":"sdk/node"},"license":"MIT","keywords":["metering","billing","usage","cli","ai-agents","observability"],"type":"module","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}}},"main":"./dist/cjs/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"build":"npm run build:esm && npm run build:cjs && npm run build:cjs:pkg","build:esm":"tsc -p tsconfig.json","build:cjs":"tsc -p tsconfig.cjs.json","build:cjs:pkg":"node -e \"require('fs').writeFileSync('dist/cjs/package.json', JSON.stringify({type:'commonjs'},null,2))\"","test":"node --test tests/*.test.mjs","prepublishOnly":"npm run build"},"engines":{"node":">=18.0.0"},"devDependencies":{"@types/node":"^25.3.5","typescript":"^5.4.5"},"_id":"@auvh/climeter@0.1.6","gitHead":"172bd89174004092606300cdd72ba8b7e3294b82","bugs":{"url":"https://github.com/auvhx/climeter/issues"},"_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-I4W7H9NZUUC1CH4hOJN/yke1fyGcfDZY9M9rLC6NnnYxcP27EVSS65uGDuuZTNoDjzUYydrdfcSVd+6hJvJpYQ==","shasum":"ffc783cf9d9425ac52adaa235dc81daaaf1f7283","tarball":"https://registry.npmjs.org/@auvh/climeter/-/climeter-0.1.6.tgz","fileCount":21,"unpackedSize":72894,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEDSbMgo3bK4B7LmOZQZMNHWqdgwoW3Ou3H2lBIQvF6YAiA0C+Z9kOead1NJbfmffBlkdFjZgyGSJUBj0IBYfhL8Zg=="}]},"_npmUser":{"name":"auvh","email":"agent@auvh.ai"},"directories":{},"maintainers":[{"name":"auvh","email":"agent@auvh.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/climeter_0.1.6_1773149468188_0.38997066121869817"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-09T08:34:13.003Z","modified":"2026-03-10T13:31:08.495Z","0.1.0":"2026-03-09T08:34:13.202Z","0.1.1":"2026-03-09T13:28:37.074Z","0.1.2":"2026-03-09T14:45:13.805Z","0.1.3":"2026-03-09T18:20:45.681Z","0.1.4":"2026-03-09T18:27:34.983Z","0.1.5":"2026-03-10T06:31:44.310Z","0.1.6":"2026-03-10T13:31:08.363Z"},"bugs":{"url":"https://github.com/auvhx/climeter/issues"},"license":"MIT","homepage":"https://climeter.ai","keywords":["metering","billing","usage","cli","ai-agents","observability"],"repository":{"type":"git","url":"git+https://github.com/auvhx/climeter.git","directory":"sdk/node"},"description":"Usage-based billing for CLI tools and AI agents","maintainers":[{"name":"auvh","email":"agent@auvh.ai"}],"readme":"# @auvh/climeter\n\nUsage-based metering and billing for CLI tools and AI agents — Node.js/TypeScript SDK.\n\n[![npm](https://img.shields.io/npm/v/@auvh/climeter)](https://www.npmjs.com/package/@auvh/climeter)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n🌐 [climeter.ai](https://climeter.ai) · 📖 [Docs](https://climeter.ai/docs/sdks/node)\n\n---\n\n## Install\n\n```bash\nnpm install @auvh/climeter\n```\n\nZero runtime dependencies. Requires Node.js ≥ 18 (native `fetch`).\n\n---\n\n## Quick Start\n\n```typescript\nimport { meter } from '@auvh/climeter';\n\nmeter.configure({ apiKey: 'clmtr_...', toolSlug: 'my-tool' });\n\nconst search = meter.track({ price: 0.01 })(async (query: string) => {\n  return doSearch(query);\n});\n```\n\nOr set environment variables and skip `configure()`:\n\n```bash\nexport CLIMETER_API_KEY=clmtr_...\nexport CLIMETER_TOOL_SLUG=my-tool\n```\n\n---\n\n## Usage\n\n### Wrapper (decorator pattern)\n\n```typescript\nimport { meter } from '@auvh/climeter';\n\nconst search = meter.track({ price: 0.01 })(async (query: string) => {\n  return doSearch(query);\n});\n\nconst result = await search('hello');\n```\n\n### Callback wrapper\n\n```typescript\nconst result = await meter.trackUsage('search', { price: 0.01 }, async () => {\n  return doSearch(query);\n});\n```\n\n### Manual event\n\n```typescript\nmeter.trackEvent({ event: 'search', price: 0.01 });\n```\n\n---\n\n## Consumer Usage\n\nCall a CLIMeter-powered tool and handle balance errors:\n\n```typescript\nimport { call, InsufficientBalanceError } from '@auvh/climeter';\n\ntry {\n  const result = await call({ toolId: 'tool-uuid-here' });\n  console.log(`Balance remaining: $${result.balanceRemaining.toFixed(4)}`);\n} catch (e) {\n  if (e instanceof InsufficientBalanceError) {\n    console.log(`Out of credits. Top up at: ${e.checkoutUrl}`);\n  }\n}\n```\n\n---\n\n## API\n\n| Method | Description |\n|---|---|\n| `meter.configure({ apiKey, toolSlug, apiUrl })` | Configure the global meter |\n| `meter.track(options)(fn)` | Wraps a function — records event after each call |\n| `meter.trackUsage(name, options, fn)` | Async callback — records event on completion |\n| `meter.trackEvent(options)` | Manual fire-and-forget event |\n| `meter.flush()` | Force-flush all pending events |\n| `meter.shutdown()` | Flush and stop background timer |\n\n---\n\n## Runtime Compatibility\n\nNode.js ≥ 18 · Deno · Bun · Cloudflare Workers · Browser\n\n---\n\n## License\n\nMIT © [CLIMeter](https://climeter.ai)\n","readmeFilename":"README.md"}