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.
- package/README.md +13 -24
- package/bin/free-coding-models.js +511 -4883
- package/package.json +2 -2
- package/src/analysis.js +197 -0
- package/{lib → src}/config.js +1 -1
- package/src/constants.js +118 -0
- package/src/favorites.js +98 -0
- package/src/key-handler.js +1011 -0
- package/src/openclaw.js +131 -0
- package/src/opencode.js +952 -0
- package/src/overlays.js +839 -0
- package/src/ping.js +186 -0
- package/src/provider-metadata.js +218 -0
- package/src/quota-capabilities.js +112 -0
- package/src/render-helpers.js +239 -0
- package/src/render-table.js +591 -0
- package/src/setup.js +105 -0
- package/src/telemetry.js +382 -0
- package/src/tier-colors.js +37 -0
- package/{lib → src}/token-stats.js +71 -3
- package/src/token-usage-reader.js +63 -0
- package/src/updater.js +237 -0
- package/{lib → src}/usage-reader.js +63 -21
- package/{lib → src}/utils.js +31 -26
- package/lib/quota-capabilities.js +0 -79
- /package/{lib → src}/account-manager.js +0 -0
- /package/{lib → src}/error-classifier.js +0 -0
- /package/{lib → src}/log-reader.js +0 -0
- /package/{lib → src}/model-merger.js +0 -0
- /package/{lib → src}/opencode-sync.js +0 -0
- /package/{lib → src}/provider-quota-fetchers.js +0 -0
- /package/{lib → src}/proxy-server.js +0 -0
- /package/{lib → src}/request-transformer.js +0 -0
|
@@ -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
|