kimi-code / packages /agent-core-v2 /src /features /tower /towerRateLimit.ts
SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
68d7816 verified
Raw History Blame Contribute Delete
625 Bytes
import { createDecorator } from '#/_base/di/instantiation';
export interface TowerRateLimitSnapshot {
readonly budget: number;
readonly inflight: number;
readonly blockedUntil: number | null;
}
export interface ITowerRateLimitService {
readonly _serviceBrand: undefined;
reportRateLimited(): void;
reportSuccess(): void;
budget(): number;
acquire(): { readonly ok: true } | { readonly ok: false; readonly reason: string };
release(): void;
snapshot(): TowerRateLimitSnapshot;
reset(): void;
}
export const ITowerRateLimitService =
createDecorator<ITowerRateLimitService>('towerRateLimitService');