Files
OmniRoute/src/shared/utils/providerBilling.ts
Xiangzhe 82e5afed6b feat(usage): show Kimi Coding Extra Usage (#10712)
Merged via merge-train (release/v3.8.50, batch1 2026-08-20) — static gates (typecheck/file-size/complexity/cognitive/changelog) green on the combined tree; test:unit reds observed in the boarded run were verified pre-existing on the pure release tip (unrelated flake), not caused by this PR. Thanks for the contribution!
2026-08-20 06:28:37 -03:00

37 lines
1.2 KiB
TypeScript

import {
GROK_BUILD_ADDITIONAL_CREDITS_URL,
sanitizeGrokBillingStatus,
type GrokBillingStatus,
} from "./grokBilling";
import {
KIMI_CODE_ADDITIONAL_CREDITS_URL,
sanitizeKimiBillingStatus,
type KimiBillingStatus,
} from "./kimiBilling";
export type ProviderBillingStatus = GrokBillingStatus | KimiBillingStatus;
export const PROVIDER_BILLING_PROVIDERS = [
"grok-cli",
"kimi-coding",
"kimi-coding-apikey",
] as const;
export function isProviderBillingProvider(provider: string | undefined): boolean {
return (
provider !== undefined && (PROVIDER_BILLING_PROVIDERS as readonly string[]).includes(provider)
);
}
export function sanitizeProviderBillingStatus(value: unknown): ProviderBillingStatus | undefined {
return sanitizeGrokBillingStatus(value) ?? sanitizeKimiBillingStatus(value);
}
export function isGrokBillingStatus(billing: ProviderBillingStatus): billing is GrokBillingStatus {
return billing.additionalCreditsUrl === GROK_BUILD_ADDITIONAL_CREDITS_URL;
}
export function isKimiBillingStatus(billing: ProviderBillingStatus): billing is KimiBillingStatus {
return billing.additionalCreditsUrl === KIMI_CODE_ADDITIONAL_CREDITS_URL;
}