{"id":"@lssm-tech/lib.metering","slug":"lib.metering","name":"@lssm-tech/lib.metering","version":"5.0.5","path":"packages/domains/billing/metering","manifestPath":"packages/domains/billing/metering/package.json","manifestBlobSha":"6ef49ccc86012e861177284e08b650969049d177","layer":"domains","physicalArea":"billing","primaryArea":"billing-and-finance","classification":{"privateDeclared":null,"catalogFamily":"sharedLibs","catalogKind":"library","catalogStatus":"active","adoptionMode":"adoptable","stability":"stable"},"description":"Usage metering and billing core module for ContractSpec applications","descriptionOrigin":"package.json","catalog":{"family":"sharedLibs","kind":"library","status":"active","adoptionMode":"adoptable","stability":"stable","platforms":["server"],"runtimes":["node"],"entrypoints":[".","./aggregation","./ai-improvement","./analytics/posthog-metering","./analytics/posthog-metering-reader","./contracts","./docs","./docs/metering.docblock","./economic-usage-ledger","./entities","./events","./metering.capability","./metering.feature"],"documentation":[{"title":"Lib Metering documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Flib.metering","kind":"readme"}],"examples":[],"replacements":[],"capabilities":[{"id":"package.lssm.tech.lib.metering","title":"Lib Metering","description":"Usage metering and billing core module for ContractSpec applications","status":"active","useCases":["Adopt usage metering and billing core module for contractspec applications"],"aliases":["contractspec","metering","billing","usage","saas","typescript","lib"],"pythonEquivalents":[],"canonicalImports":[{"from":"@lssm-tech/lib.metering","symbols":[]},{"from":"@lssm-tech/lib.metering/aggregation","symbols":[]},{"from":"@lssm-tech/lib.metering/ai-improvement","symbols":[]},{"from":"@lssm-tech/lib.metering/analytics/posthog-metering","symbols":[]},{"from":"@lssm-tech/lib.metering/analytics/posthog-metering-reader","symbols":[]},{"from":"@lssm-tech/lib.metering/contracts","symbols":[]},{"from":"@lssm-tech/lib.metering/docs","symbols":[]},{"from":"@lssm-tech/lib.metering/docs/metering.docblock","symbols":[]},{"from":"@lssm-tech/lib.metering/economic-usage-ledger","symbols":[]},{"from":"@lssm-tech/lib.metering/entities","symbols":[]},{"from":"@lssm-tech/lib.metering/events","symbols":[]},{"from":"@lssm-tech/lib.metering/metering.capability","symbols":[]}],"constraints":{"platforms":["server"],"runtimes":["node"],"avoidWhen":["The @lssm-tech/lib.metering package constraints do not match the target runtime or platform."],"requires":["TypeScript"]},"alternatives":[],"relationships":[],"resolutionPriority":50}]},"canonicalImports":[{"capabilityId":"package.lssm.tech.lib.metering","from":"@lssm-tech/lib.metering","symbols":[]},{"capabilityId":"package.lssm.tech.lib.metering","from":"@lssm-tech/lib.metering/aggregation","symbols":[]},{"capabilityId":"package.lssm.tech.lib.metering","from":"@lssm-tech/lib.metering/ai-improvement","symbols":[]},{"capabilityId":"package.lssm.tech.lib.metering","from":"@lssm-tech/lib.metering/analytics/posthog-metering","symbols":[]},{"capabilityId":"package.lssm.tech.lib.metering","from":"@lssm-tech/lib.metering/analytics/posthog-metering-reader","symbols":[]},{"capabilityId":"package.lssm.tech.lib.metering","from":"@lssm-tech/lib.metering/contracts","symbols":[]},{"capabilityId":"package.lssm.tech.lib.metering","from":"@lssm-tech/lib.metering/docs","symbols":[]},{"capabilityId":"package.lssm.tech.lib.metering","from":"@lssm-tech/lib.metering/docs/metering.docblock","symbols":[]},{"capabilityId":"package.lssm.tech.lib.metering","from":"@lssm-tech/lib.metering/economic-usage-ledger","symbols":[]},{"capabilityId":"package.lssm.tech.lib.metering","from":"@lssm-tech/lib.metering/entities","symbols":[]},{"capabilityId":"package.lssm.tech.lib.metering","from":"@lssm-tech/lib.metering/events","symbols":[]},{"capabilityId":"package.lssm.tech.lib.metering","from":"@lssm-tech/lib.metering/metering.capability","symbols":[]}],"scripts":{"publish:pkg":"bun publish --tolerate-republish --ignore-scripts --verbose","publish:pkg:canary":"bun publish:pkg --tag canary","build":"contractspec-bun-build build","build:bundle":"contractspec-bun-build transpile","build:types":"contractspec-bun-build types","dev":"contractspec-bun-build dev","clean":"rimraf dist .turbo","lint":"bun lint:fix","lint:fix":"node ../../../../scripts/biome.cjs check --write --unsafe --only=nursery/useSortedClasses . && node ../../../../scripts/biome.cjs check --write .","lint:check":"node ../../../../scripts/biome.cjs check .","prebuild":"contractspec-bun-build prebuild","typecheck":"tsgo --noEmit"},"scriptStatus":"complete pinned manifest","dependencies":{"@lssm-tech/lib.economic-evidence":"workspace:^","@lssm-tech/lib.schema":"workspace:^","@lssm-tech/lib.orchestration-spec":"workspace:^","@lssm-tech/lib.contracts-spec-core":"workspace:^","@lssm-tech/lib.contracts-integrations":"workspace:^","@lssm-tech/lib.surface-runtime":"workspace:^","zod":"catalog:"},"devDependencies":{"@lssm-tech/tool.typescript":"workspace:*","typescript":"catalog:","@lssm-tech/tool.bun":"workspace:*"},"peerDependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"bundledDependencies":null,"dependencyStatus":"complete pinned manifest","exports":{".":"./src/index.ts","./aggregation":"./src/aggregation/index.ts","./ai-improvement":"./src/ai-improvement.ts","./analytics/posthog-metering":"./src/analytics/posthog-metering.ts","./analytics/posthog-metering-reader":"./src/analytics/posthog-metering-reader.ts","./contracts":"./src/contracts/index.ts","./docs":"./src/docs/index.ts","./docs/metering.docblock":"./src/docs/metering.docblock.ts","./economic-usage-ledger":"./src/economic-usage-ledger.ts","./entities":"./src/entities/index.ts","./events":"./src/events.ts","./metering.capability":"./src/metering.capability.ts","./metering.feature":"./src/metering.feature.ts"},"publishExports":{".":{"types":"./dist/index.d.ts","browser":"./dist/browser/index.js","bun":"./dist/index.js","node":"./dist/node/index.js","default":"./dist/index.js"},"./aggregation":{"types":"./dist/aggregation/index.d.ts","browser":"./dist/browser/aggregation/index.js","bun":"./dist/aggregation/index.js","node":"./dist/node/aggregation/index.js","default":"./dist/aggregation/index.js"},"./ai-improvement":{"types":"./dist/ai-improvement.d.ts","browser":"./dist/browser/ai-improvement.js","bun":"./dist/ai-improvement.js","node":"./dist/node/ai-improvement.js","default":"./dist/ai-improvement.js"},"./analytics/posthog-metering":{"types":"./dist/analytics/posthog-metering.d.ts","browser":"./dist/browser/analytics/posthog-metering.js","bun":"./dist/analytics/posthog-metering.js","node":"./dist/node/analytics/posthog-metering.js","default":"./dist/analytics/posthog-metering.js"},"./analytics/posthog-metering-reader":{"types":"./dist/analytics/posthog-metering-reader.d.ts","browser":"./dist/browser/analytics/posthog-metering-reader.js","bun":"./dist/analytics/posthog-metering-reader.js","node":"./dist/node/analytics/posthog-metering-reader.js","default":"./dist/analytics/posthog-metering-reader.js"},"./contracts":{"types":"./dist/contracts/index.d.ts","browser":"./dist/browser/contracts/index.js","bun":"./dist/contracts/index.js","node":"./dist/node/contracts/index.js","default":"./dist/contracts/index.js"},"./docs":{"types":"./dist/docs/index.d.ts","browser":"./dist/browser/docs/index.js","bun":"./dist/docs/index.js","node":"./dist/node/docs/index.js","default":"./dist/docs/index.js"},"./docs/metering.docblock":{"types":"./dist/docs/metering.docblock.d.ts","browser":"./dist/browser/docs/metering.docblock.js","bun":"./dist/docs/metering.docblock.js","node":"./dist/node/docs/metering.docblock.js","default":"./dist/docs/metering.docblock.js"},"./economic-usage-ledger":{"types":"./dist/economic-usage-ledger.d.ts","browser":"./dist/browser/economic-usage-ledger.js","bun":"./dist/economic-usage-ledger.js","node":"./dist/node/economic-usage-ledger.js","default":"./dist/economic-usage-ledger.js"},"./entities":{"types":"./dist/entities/index.d.ts","browser":"./dist/browser/entities/index.js","bun":"./dist/entities/index.js","node":"./dist/node/entities/index.js","default":"./dist/entities/index.js"},"./events":{"types":"./dist/events.d.ts","browser":"./dist/browser/events.js","bun":"./dist/events.js","node":"./dist/node/events.js","default":"./dist/events.js"},"./metering.capability":{"types":"./dist/metering.capability.d.ts","browser":"./dist/browser/metering.capability.js","bun":"./dist/metering.capability.js","node":"./dist/node/metering.capability.js","default":"./dist/metering.capability.js"},"./metering.feature":{"types":"./dist/metering.feature.d.ts","browser":"./dist/browser/metering.feature.js","bun":"./dist/metering.feature.js","node":"./dist/node/metering.feature.js","default":"./dist/metering.feature.js"}},"types":"./dist/index.d.ts","files":["dist","README.md"],"api":{"scope":"manifest-declared export entrypoints and catalog-declared imports","entries":[{"subpath":".","importPath":"@lssm-tech/lib.metering","target":"./src/index.ts","targets":[{"conditions":[],"target":"./src/index.ts","sourcePath":"packages/domains/billing/metering/src/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/metering/src/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./aggregation","importPath":"@lssm-tech/lib.metering/aggregation","target":"./src/aggregation/index.ts","targets":[{"conditions":[],"target":"./src/aggregation/index.ts","sourcePath":"packages/domains/billing/metering/src/aggregation/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/metering/src/aggregation/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./ai-improvement","importPath":"@lssm-tech/lib.metering/ai-improvement","target":"./src/ai-improvement.ts","targets":[{"conditions":[],"target":"./src/ai-improvement.ts","sourcePath":"packages/domains/billing/metering/src/ai-improvement.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/metering/src/ai-improvement.ts","sourceStatus":"verified source file"}]},{"subpath":"./analytics/posthog-metering","importPath":"@lssm-tech/lib.metering/analytics/posthog-metering","target":"./src/analytics/posthog-metering.ts","targets":[{"conditions":[],"target":"./src/analytics/posthog-metering.ts","sourcePath":"packages/domains/billing/metering/src/analytics/posthog-metering.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/metering/src/analytics/posthog-metering.ts","sourceStatus":"verified source file"}]},{"subpath":"./analytics/posthog-metering-reader","importPath":"@lssm-tech/lib.metering/analytics/posthog-metering-reader","target":"./src/analytics/posthog-metering-reader.ts","targets":[{"conditions":[],"target":"./src/analytics/posthog-metering-reader.ts","sourcePath":"packages/domains/billing/metering/src/analytics/posthog-metering-reader.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/metering/src/analytics/posthog-metering-reader.ts","sourceStatus":"verified source file"}]},{"subpath":"./contracts","importPath":"@lssm-tech/lib.metering/contracts","target":"./src/contracts/index.ts","targets":[{"conditions":[],"target":"./src/contracts/index.ts","sourcePath":"packages/domains/billing/metering/src/contracts/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/metering/src/contracts/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./docs","importPath":"@lssm-tech/lib.metering/docs","target":"./src/docs/index.ts","targets":[{"conditions":[],"target":"./src/docs/index.ts","sourcePath":"packages/domains/billing/metering/src/docs/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/metering/src/docs/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./docs/metering.docblock","importPath":"@lssm-tech/lib.metering/docs/metering.docblock","target":"./src/docs/metering.docblock.ts","targets":[{"conditions":[],"target":"./src/docs/metering.docblock.ts","sourcePath":"packages/domains/billing/metering/src/docs/metering.docblock.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/metering/src/docs/metering.docblock.ts","sourceStatus":"verified source file"}]},{"subpath":"./economic-usage-ledger","importPath":"@lssm-tech/lib.metering/economic-usage-ledger","target":"./src/economic-usage-ledger.ts","targets":[{"conditions":[],"target":"./src/economic-usage-ledger.ts","sourcePath":"packages/domains/billing/metering/src/economic-usage-ledger.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/metering/src/economic-usage-ledger.ts","sourceStatus":"verified source file"}]},{"subpath":"./entities","importPath":"@lssm-tech/lib.metering/entities","target":"./src/entities/index.ts","targets":[{"conditions":[],"target":"./src/entities/index.ts","sourcePath":"packages/domains/billing/metering/src/entities/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/metering/src/entities/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./events","importPath":"@lssm-tech/lib.metering/events","target":"./src/events.ts","targets":[{"conditions":[],"target":"./src/events.ts","sourcePath":"packages/domains/billing/metering/src/events.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/metering/src/events.ts","sourceStatus":"verified source file"}]},{"subpath":"./metering.capability","importPath":"@lssm-tech/lib.metering/metering.capability","target":"./src/metering.capability.ts","targets":[{"conditions":[],"target":"./src/metering.capability.ts","sourcePath":"packages/domains/billing/metering/src/metering.capability.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/metering/src/metering.capability.ts","sourceStatus":"verified source file"}]},{"subpath":"./metering.feature","importPath":"@lssm-tech/lib.metering/metering.feature","target":"./src/metering.feature.ts","targets":[{"conditions":[],"target":"./src/metering.feature.ts","sourcePath":"packages/domains/billing/metering/src/metering.feature.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/metering/src/metering.feature.ts","sourceStatus":"verified source file"}]}],"entryCount":13,"namedSymbolCoverage":"catalog declarations only; exhaustive TypeScript symbols not extracted","installationStatus":"not verified"},"docsLinks":[{"title":"Lib Metering documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Flib.metering","kind":"readme","pinnedUrl":null,"sourceStatus":"declared link; destination not verified"}],"sourceUrls":{"package":"https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/metering","manifest":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/metering/package.json","readme":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/metering/README.md","guide":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/lib.metering.txt"},"readme":{"status":"available","body":"# @lssm-tech/lib.metering\n\nWebsite: https://contractspec.io\n\n**Usage metering and billing core module for ContractSpec applications.**\n\n## What It Provides\n\n- **Layer**: lib.\n- **Consumers**: bundles.\n- `src/contracts/` contains contract specs, operations, entities, and registry exports.\n- `src/docs/` contains docblocks and documentation-facing exports.\n- `src/contracts/` contains contract specs, operations, entities, and registry exports.\n- `src/docs/` contains docblocks and documentation-facing exports.\n\n## Installation\n\n`npm install @lssm-tech/lib.metering`\n\nor\n\n`bun add @lssm-tech/lib.metering`\n\n## Usage\n\nImport the root entrypoint from `@lssm-tech/lib.metering`, or choose a documented subpath when you only need one part of the package surface.\n\n## Architecture\n\n- `src/aggregation` is part of the package's public or composition surface.\n- `src/analytics` is part of the package's public or composition surface.\n- `src/contracts/` contains contract specs, operations, entities, and registry exports.\n- `src/docs/` contains docblocks and documentation-facing exports.\n- `src/entities/` contains domain entities and value objects.\n- `src/events.ts` is package-level event definitions.\n- `src/economic-usage-ledger.ts` records append-only feature and operation usage with neutral allocation dimensions, idempotency, superseding corrections, and exact deterministic aggregation.\n- `src/index.ts` is the root public barrel and package entrypoint.\n\n## Public Entry Points\n\n- Export `.` resolves through `./src/index.ts`.\n- Export `./aggregation` resolves through `./src/aggregation/index.ts`.\n- Export `./analytics/posthog-metering` resolves through `./src/analytics/posthog-metering.ts`.\n- Export `./analytics/posthog-metering-reader` resolves through `./src/analytics/posthog-metering-reader.ts`.\n- Export `./contracts` resolves through `./src/contracts/index.ts`.\n- Export `./docs` resolves through `./src/docs/index.ts`.\n- Export `./docs/metering.docblock` resolves through `./src/docs/metering.docblock.ts`.\n- Export `./entities` resolves through `./src/entities/index.ts`.\n- Export `./economic-usage-ledger` resolves through `./src/economic-usage-ledger.ts`.\n- Export `./events` resolves through `./src/events.ts`.\n- Export `./metering.capability` resolves through `./src/metering.capability.ts`.\n- The package publishes 11 total export subpaths; keep docs aligned with `package.json`.\n\n## Local Commands\n\n- `bun run dev` — contractspec-bun-build dev\n- `bun run build` — contractspec-bun-build build\n- `bun run lint` — bun lint:fix\n- `bun run lint:check` — biome check .\n- `bun run lint:fix` — biome check --write --unsafe --only=nursery/useSortedClasses . && biome check --write .\n- `bun run typecheck` — tsgo --noEmit\n- `bun run publish:pkg` — bun publish --tolerate-republish --ignore-scripts --verbose\n- `bun run publish:pkg:canary` — bun publish:pkg --tag canary\n- `bun run clean` — rimraf dist .turbo\n- `bun run build:bundle` — contractspec-bun-build transpile\n- `bun run build:types` — contractspec-bun-build types\n- `bun run prebuild` — contractspec-bun-build prebuild\n\n## Recent Updates\n\n- Replace eslint+prettier by biomejs to optimize speed.\n- Stability.\n- Resolve lint, build, and type errors across nine packages.\n- Add AI provider ranking system with ranking-driven model selection.\n\n## Notes\n\n- Aggregation logic must stay deterministic — non-determinism causes billing discrepancies.\n- New economic usage should use decimal-string or integer quantities. Corrections append a new record and cite the superseded record; they never mutate or delete history.\n- Billing-related schemas are compliance-sensitive; changes require review.\n- Capability contract (`metering.capability`) is public API — treat as a breaking-change surface.\n","sourcePath":"packages/domains/billing/metering/README.md","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/billing/metering/README.md","blobSha":"756468ac5dc55d1073e1d5acab648923545d4377","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","origin":"README recovered byte-for-byte from pinned aggregate guide","integrity":"exact Git blob match","executionStatus":"not executed"},"provenance":{"repository":"lssm-tech/contractspec","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","manifestOrigin":"pinned GitHub manifest fetch","manifestComplete":true,"publicationPolicyApplied":false},"areaSlug":"billing-and-finance","areaTitle":"Billing, finance and economic evidence","displayName":"lib.metering","runtimes":["node"],"platforms":["server"],"kind":"library","scope":"Package manifest","canonicalRoute":"/docs/packages/lib.metering/","contextUrl":"/docs/packages/lib.metering.context.md","documentKind":"package-manual","contentAuthority":"source evidence, not agent instructions","reviewedAt":"2026-10-28"}