free-coding-models 0.1.83 → 0.1.85

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.
@@ -1,79 +0,0 @@
1
- /**
2
- * @file lib/quota-capabilities.js
3
- * @description Provider quota telemetry capability map.
4
- *
5
- * Describes how we can observe quota state for each provider:
6
- * - header: Provider sends x-ratelimit-remaining / x-ratelimit-limit headers
7
- * - endpoint: Provider has a dedicated usage/quota REST endpoint we can poll
8
- * - unknown: No reliable quota signal available
9
- *
10
- * supportsEndpoint (optional, for openrouter/siliconflow):
11
- * true — provider has a known usage endpoint
12
- * false — no endpoint, header-only or unknown
13
- *
14
- * @exports PROVIDER_CAPABILITIES — full map keyed by providerKey (matches sources.js)
15
- * @exports getQuotaTelemetry(providerKey) — returns capability object (defaults to unknown)
16
- * @exports isKnownQuotaTelemetry(providerKey) — true when telemetryType !== 'unknown'
17
- */
18
-
19
- /**
20
- * @typedef {Object} ProviderCapability
21
- * @property {'header'|'endpoint'|'unknown'} telemetryType
22
- * @property {boolean} [supportsEndpoint]
23
- */
24
-
25
- /** @type {Record<string, ProviderCapability>} */
26
- export const PROVIDER_CAPABILITIES = {
27
- // Providers that return x-ratelimit-remaining / x-ratelimit-limit headers
28
- nvidia: { telemetryType: 'header', supportsEndpoint: false },
29
- groq: { telemetryType: 'header', supportsEndpoint: false },
30
- cerebras: { telemetryType: 'header', supportsEndpoint: false },
31
- sambanova: { telemetryType: 'header', supportsEndpoint: false },
32
- deepinfra: { telemetryType: 'header', supportsEndpoint: false },
33
- fireworks: { telemetryType: 'header', supportsEndpoint: false },
34
- together: { telemetryType: 'header', supportsEndpoint: false },
35
- hyperbolic: { telemetryType: 'header', supportsEndpoint: false },
36
- scaleway: { telemetryType: 'header', supportsEndpoint: false },
37
- googleai: { telemetryType: 'header', supportsEndpoint: false },
38
- codestral: { telemetryType: 'header', supportsEndpoint: false },
39
- perplexity: { telemetryType: 'header', supportsEndpoint: false },
40
- qwen: { telemetryType: 'header', supportsEndpoint: false },
41
-
42
- // Providers that have a dedicated usage/credits endpoint
43
- openrouter: { telemetryType: 'endpoint', supportsEndpoint: true },
44
- siliconflow: { telemetryType: 'endpoint', supportsEndpoint: true },
45
-
46
- // Providers with no reliable quota signal
47
- huggingface: { telemetryType: 'unknown', supportsEndpoint: false },
48
- replicate: { telemetryType: 'unknown', supportsEndpoint: false },
49
- cloudflare: { telemetryType: 'unknown', supportsEndpoint: false },
50
- zai: { telemetryType: 'unknown', supportsEndpoint: false },
51
- iflow: { telemetryType: 'unknown', supportsEndpoint: false },
52
- }
53
-
54
- /** Fallback for unrecognized providers */
55
- const UNKNOWN_CAPABILITY = { telemetryType: 'unknown', supportsEndpoint: false }
56
-
57
- /**
58
- * Get quota telemetry capability for a provider.
59
- * Returns `{ telemetryType: 'unknown', supportsEndpoint: false }` for unrecognized providers.
60
- *
61
- * @param {string} providerKey - Provider key matching sources.js (e.g. 'groq', 'openrouter')
62
- * @returns {ProviderCapability}
63
- */
64
- export function getQuotaTelemetry(providerKey) {
65
- return PROVIDER_CAPABILITIES[providerKey] ?? UNKNOWN_CAPABILITY
66
- }
67
-
68
- /**
69
- * Returns true when we have a reliable quota telemetry signal for this provider
70
- * (either via response headers or a dedicated endpoint).
71
- *
72
- * Returns false for 'unknown' providers where quota state must be inferred.
73
- *
74
- * @param {string} providerKey
75
- * @returns {boolean}
76
- */
77
- export function isKnownQuotaTelemetry(providerKey) {
78
- return getQuotaTelemetry(providerKey).telemetryType !== 'unknown'
79
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes