eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
49 lines (48 loc) • 1.82 kB
TypeScript
export interface SessionUsageAmounts {
readonly costUsd?: number;
readonly inputTokens: number;
readonly outputTokens: number;
}
export interface SessionRuntimeUsageLimits {
readonly costUsd?: number;
readonly inputTokens?: number;
readonly outputTokens?: number;
}
export type SessionUsageLimitViolation = {
readonly kind: "input";
readonly limit: number;
readonly usedTokens: number;
} | {
readonly kind: "output";
readonly limit: number;
readonly usedTokens: number;
} | {
readonly kind: "token-cost";
readonly limitUsd: number;
readonly usedCostUsd: number;
};
/** Resolves per-axis lifetime ceilings, preferring a previously granted ceiling. */
export declare function resolveRuntimeUsageLimits(input: {
readonly configured: SessionRuntimeUsageLimits;
readonly stored?: SessionRuntimeUsageLimits;
}): SessionRuntimeUsageLimits;
/** Grants one full configured window from the current lifetime usage. */
export declare function grantRuntimeUsageLimits(input: {
readonly configured: SessionRuntimeUsageLimits;
readonly usage: SessionUsageAmounts;
}): SessionRuntimeUsageLimits;
/** Returns the unspent quota for each capped axis. */
export declare function remainingRuntimeUsageQuota(input: {
readonly runtime: SessionRuntimeUsageLimits;
readonly usage: SessionUsageAmounts;
}): {
readonly costUsd: number | false;
readonly inputTokens: number | false;
readonly outputTokens: number | false;
};
/** Returns the first exhausted axis: input tokens, output tokens, then token cost. */
export declare function findRuntimeUsageLimitViolation(input: {
readonly configured: SessionRuntimeUsageLimits;
readonly runtime: SessionRuntimeUsageLimits;
readonly usage: SessionUsageAmounts;
}): SessionUsageLimitViolation | null;