agent-afk 5.117.0 → 5.118.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,4 +3,8 @@ export interface ThrottleInfo {
3
3
  status: number;
4
4
  retryAfterMs?: number;
5
5
  }
6
- export declare function makeTracingFetch(writer: TraceSink | undefined, baseFetch?: typeof fetch, onThrottle?: (info: ThrottleInfo) => void, onQuota?: (headers: Headers) => void): typeof fetch;
6
+ export interface RateLimitGate {
7
+ acquirePermit(estimatedInputTokens: number, signal?: AbortSignal): Promise<void>;
8
+ freeze(retryAfterMs: number): void;
9
+ }
10
+ export declare function makeTracingFetch(writer: TraceSink | undefined, baseFetch?: typeof fetch, onThrottle?: (info: ThrottleInfo) => void, onQuota?: (headers: Headers) => void, onRateLimit?: (headers: Headers) => void, gate?: RateLimitGate): typeof fetch;
@@ -3,6 +3,8 @@ export type OpenAIClientFactory = (opts: {
3
3
  apiKey: string;
4
4
  baseURL?: string;
5
5
  defaultHeaders?: Record<string, string>;
6
+ fetch?: typeof globalThis.fetch;
6
7
  }) => OpenAI;
7
8
  export declare function __setOpenAIClientFactory(factory: OpenAIClientFactory | null): void;
8
9
  export declare function resolveClientFactory(): OpenAIClientFactory;
10
+ export declare function buildOpenAIAdmissionFetch(baseURL: string | undefined): typeof fetch | undefined;
@@ -0,0 +1,6 @@
1
+ import type { ThrottleInfo } from '../anthropic-direct/tracing-fetch.js';
2
+ export interface OpenAIRateLimitGate {
3
+ acquirePermit(estimatedInputTokens: number, signal?: AbortSignal): Promise<void>;
4
+ freeze(retryAfterMs: number): void;
5
+ }
6
+ export declare function makeOpenAITracingFetch(baseFetch?: typeof fetch, onThrottle?: (info: ThrottleInfo) => void, onRateLimit?: (headers: Headers) => void, gate?: OpenAIRateLimitGate): typeof fetch;
@@ -0,0 +1,28 @@
1
+ export interface RateLimitSnapshot {
2
+ requestsRemaining?: number;
3
+ requestsLimit?: number;
4
+ requestsResetAt?: number;
5
+ inputTokensRemaining?: number;
6
+ inputTokensLimit?: number;
7
+ inputTokensResetAt?: number;
8
+ outputTokensRemaining?: number;
9
+ outputTokensResetAt?: number;
10
+ }
11
+ export declare function estimateInputTokens(body: unknown): number;
12
+ export declare class RateLimitBucket {
13
+ private requestsRemaining;
14
+ private requestsResetAt;
15
+ private requestsLimit;
16
+ private inputTokensRemaining;
17
+ private inputTokensResetAt;
18
+ private inputTokensLimit;
19
+ private outputTokensRemainingVal;
20
+ private frozenUntil;
21
+ resetForTests(): void;
22
+ get outputTokensRemaining(): number;
23
+ update(snap: RateLimitSnapshot): void;
24
+ freeze(retryAfterMs: number): void;
25
+ private maybeResetWindows;
26
+ acquirePermit(estimatedInputTokens: number, signal?: AbortSignal): Promise<void>;
27
+ }
28
+ export declare const globalRateLimitBucket: RateLimitBucket;
@@ -0,0 +1,3 @@
1
+ import type { RateLimitSnapshot } from './rate-limit-bucket.js';
2
+ export declare function parseAnthropicRateLimitHeaders(headers: Headers): RateLimitSnapshot | undefined;
3
+ export declare function parseOpenAIRateLimitHeaders(headers: Headers): RateLimitSnapshot | undefined;