{"_id":"@agent-qa/cost-registry","name":"@agent-qa/cost-registry","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@agent-qa/cost-registry","version":"0.1.0","private":false,"type":"module","description":"Unified cost registry for LLM pricing and token counting","license":"MIT","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./rates":{"types":"./dist/rates/index.d.ts","import":"./dist/rates/index.js"},"./counting":{"types":"./dist/counting/index.d.ts","import":"./dist/counting/index.js"}},"dependencies":{"js-tiktoken":"^1.0.21"},"devDependencies":{"@types/node":"^20.19.23","@vitest/coverage-v8":"^4.0.16","typescript":"^5.7.3","vitest":"^4.0.15"},"scripts":{"build":"tsc -p tsconfig.json","type-check":"tsc --noEmit","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","clean":"rm -rf dist","lint":"eslint src/"},"_id":"@agent-qa/cost-registry@0.1.0","_integrity":"sha512-HlYYGBRC26g5nLWne8P6txkT+NBThD+UoBbl51ZU/4P49ocmOpFUdl2dTbtFeUY+5C5vbjDQU9MnAFElY184HQ==","_resolved":"/tmp/89736d366820291633ec2878e36f7a42/agent-qa-cost-registry-0.1.0.tgz","_from":"file:agent-qa-cost-registry-0.1.0.tgz","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-HlYYGBRC26g5nLWne8P6txkT+NBThD+UoBbl51ZU/4P49ocmOpFUdl2dTbtFeUY+5C5vbjDQU9MnAFElY184HQ==","shasum":"b7143a7e779c0740061f86db0e18d8b1dee251a0","tarball":"https://registry.npmjs.org/@agent-qa/cost-registry/-/cost-registry-0.1.0.tgz","fileCount":51,"unpackedSize":68816,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCNL8kmWt+jlWjj2p1k77rj/Um4q+HbrnW/FcgsKjM6CAIhANdfQ9T0fXhpaN5WsxN6YhZxCPQtrFAfFkQf7NuQcQ99"}]},"_npmUser":{"name":"tedjames24","email":"ted@agentdesk.ai"},"directories":{},"maintainers":[{"name":"tedjames24","email":"ted@agentdesk.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cost-registry_0.1.0_1770054537351_0.21684009228046786"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-02T17:48:57.252Z","0.1.0":"2026-02-02T17:48:57.572Z","modified":"2026-02-02T17:48:57.782Z"},"maintainers":[{"name":"tedjames24","email":"ted@agentdesk.ai"}],"description":"Unified cost registry for LLM pricing and token counting","license":"MIT","readme":"# @agent-qa/cost-registry\n\nUnified cost registry for LLM pricing and token counting across providers.\n\n## Installation\n\n```bash\nnpm install @agent-qa/cost-registry\n# or\npnpm add @agent-qa/cost-registry\n```\n\n## Features\n\n- Calculate LLM costs from token usage (Anthropic, OpenAI)\n- Provider-specific pricing strategies\n- Token counting with tiktoken (local) or Anthropic API (async)\n- Extensible pricing registry pattern\n\n## Usage\n\n### Calculate Costs\n\n```typescript\nimport { CostRegistry } from '@agent-qa/cost-registry';\n\nconst registry = CostRegistry.default();\n\nconst cost = registry.calculate({\n  source: 'llm',\n  provider: 'anthropic',\n  model: 'claude-3-5-haiku-latest',\n  usage: { inputTokens: 1000, outputTokens: 100 },\n});\n\nconsole.log(`Cost: $${cost.totalCost.toFixed(4)}`);\n```\n\n### Count Tokens\n\n```typescript\nimport { createTokenCounter } from '@agent-qa/cost-registry';\n\n// Count tokens locally with tiktoken\nconst counter = createTokenCounter();\nconst tokens = counter('Hello, world!');\n\n// Count tokens via Anthropic API\nconst asyncCounter = createTokenCounter({ model: 'claude-sonnet-4-5' });\nconst count = await asyncCounter('Hello, world!');\n```\n\n## Subpath Exports\n\n| Path | Description |\n|------|-------------|\n| `@agent-qa/cost-registry` | Main exports |\n| `@agent-qa/cost-registry/rates` | Pricing strategies |\n| `@agent-qa/cost-registry/counting` | Token counters |\n\n## Supported Models\n\n**Anthropic:**\n- claude-opus-4-5, claude-sonnet-4-5\n- claude-3-5-sonnet, claude-3-5-haiku\n- claude-3-opus, claude-3-haiku\n\n**OpenAI:**\n- gpt-4o, gpt-4o-mini\n- gpt-4-turbo, gpt-4\n- gpt-3.5-turbo\n\n## API Reference\n\n### CostRegistry\n\n```typescript\nclass CostRegistry {\n  static default(): CostRegistry;\n  calculate(input: CostCalculationInput): CostResult;\n}\n```\n\n### Pricing Strategies\n\n```typescript\nimport {\n  createPricingStrategy,\n  anthropicPricing,\n  openaiPricing,\n  ANTHROPIC_PRICING,\n  OPENAI_PRICING,\n} from '@agent-qa/cost-registry/rates';\n```\n\n### Token Counters\n\n```typescript\nimport {\n  createTokenCounter,\n  createAnthropicCounter,\n} from '@agent-qa/cost-registry/counting';\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-8ba6c335ee0e90f425cc07cbb86165cf"}