Spaces:
Runtime error
Runtime error
File size: 2,198 Bytes
077865a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | export interface RoutingWeights {
reliability: number;
speed: number;
intelligence: number;
}
export type RoutingStrategy = 'priority' | 'balanced' | 'smartest' | 'fastest' | 'reliable' | 'custom';
export declare const BANDIT_PRESETS: Record<Exclude<RoutingStrategy, 'priority' | 'custom'>, RoutingWeights>;
export declare const DEFAULT_STRATEGY: RoutingStrategy;
export declare const PRIOR_SUCCESS = 1;
export declare const PRIOR_FAILURE = 1;
export declare function reliabilityPosterior(successes: number, failures: number): {
alpha: number;
beta: number;
};
export declare function expectedReliability(successes: number, failures: number): number;
export declare const SPEED_SCALE_TOK_S = 60;
export declare const TTFB_BEST_MS = 300;
export declare const TTFB_WORST_MS = 5000;
export declare const SPEED_PRIOR = 0.6;
/**
* Blend throughput and TTFB into a single [0,1] speed score.
* `tokPerSec <= 0` means no successful samples → return the exploration prior.
* `ttfbMs === null` means we have throughput but no first-byte timing → fall
* back to throughput alone rather than guessing latency.
*/
export declare function speedScore(tokPerSec: number, ttfbMs: number | null): number;
export declare function intelligenceScore(composite: number, min: number, max: number): number;
export declare const HEADROOM_FLOOR = 0.1;
export declare const HEADROOM_RAMP_START = 0.2;
export declare function headroomFactor(usedTokens: number, budgetTokens: number): number;
export declare const MAX_PENALTY = 10;
export declare const RATE_LIMIT_MAX_DAMP = 0.6;
export declare function rateLimitFactor(penalty: number): number;
export declare function sampleBeta(alpha: number, beta: number): number;
export interface ScoreInputs {
reliability: number;
speed: number;
intelligence: number;
headroom: number;
rateLimit: number;
}
/**
* Convex base (∈[0,1]) × the two guardrail multipliers. The weights are assumed
* to sum to 1; if a caller passes a non-normalized vector we renormalize so the
* base never escapes [0,1].
*/
export declare function combineScore(inputs: ScoreInputs, weights: RoutingWeights): number;
//# sourceMappingURL=scoring.d.ts.map |