Fix cache token accounting and tiered pricing

This commit is contained in:
elky
2026-07-10 15:13:12 +08:00
parent 736fc76345
commit 4bf5d4c044
19 changed files with 506 additions and 264 deletions
@@ -0,0 +1,17 @@
export function roundTierPrice(value: number): number {
return Number.parseFloat(Math.max(0, value).toFixed(6))
}
export function cachePriceFromInputMultiplier(inputPrice: number, multiplier: number): number {
const normalizedMultiplier = Number.isFinite(multiplier) && multiplier >= 0 ? multiplier : 0
return roundTierPrice(inputPrice * normalizedMultiplier)
}
export function cacheMultiplierFromPrice(
inputPrice: number,
cachePrice: number | undefined,
fallback: number,
): number {
if (cachePrice == null || inputPrice <= 0) return fallback
return roundTierPrice(cachePrice / inputPrice)
}