| |
| |
| |
|
|
| import { getGitHubUsage } from "./usage/github.js"; |
| import { getGeminiUsage, getAntigravityUsage } from "./usage/google.js"; |
| import { getClaudeUsage } from "./usage/claude.js"; |
| import { getCodexUsage, consumeCodexRateLimitResetCredit } from "./usage/codex.js"; |
|
|
| export { consumeCodexRateLimitResetCredit }; |
| import { getKiroUsage } from "./usage/kiro.js"; |
| import { getMiniMaxUsage } from "./usage/minimax.js"; |
| import { |
| getQwenUsage, |
| getIflowUsage, |
| getOllamaUsage, |
| getGlmUsage, |
| getVercelAiGatewayUsage, |
| getQoderUsage, |
| } from "./usage/misc.js"; |
|
|
| |
| |
| |
| |
| |
| |
| const USAGE_HANDLERS = { |
| github: (c) => getGitHubUsage(c.accessToken, c.providerSpecificData, c.proxyOptions), |
| "gemini-cli": (c) => getGeminiUsage(c.accessToken, c.providerDataWithProjectId, c.proxyOptions), |
| antigravity: (c) => getAntigravityUsage(c.accessToken, c.providerSpecificData, c.proxyOptions), |
| claude: (c) => getClaudeUsage(c.accessToken, c.proxyOptions), |
| codex: (c) => getCodexUsage(c.accessToken, c.proxyOptions), |
| kiro: (c) => getKiroUsage(c.accessToken, c.providerSpecificData, c.proxyOptions), |
| qoder: (c) => getQoderUsage(c.accessToken, c.proxyOptions), |
| qwen: (c) => getQwenUsage(c.accessToken, c.providerSpecificData), |
| iflow: (c) => getIflowUsage(c.accessToken), |
| ollama: (c) => getOllamaUsage(c.accessToken), |
| glm: (c) => getGlmUsage(c.apiKey, c.provider, c.proxyOptions), |
| "glm-cn": (c) => getGlmUsage(c.apiKey, c.provider, c.proxyOptions), |
| minimax: (c) => getMiniMaxUsage(c.apiKey, c.provider, c.proxyOptions), |
| "minimax-cn": (c) => getMiniMaxUsage(c.apiKey, c.provider, c.proxyOptions), |
| "vercel-ai-gateway": (c) => getVercelAiGatewayUsage(c.apiKey, c.proxyOptions), |
| }; |
|
|
| export async function getUsageForProvider(connection, proxyOptions = null) { |
| const { provider, accessToken, apiKey, providerSpecificData, projectId } = connection; |
| const providerDataWithProjectId = { |
| ...(providerSpecificData || {}), |
| ...(projectId ? { projectId } : {}), |
| }; |
|
|
| const handler = USAGE_HANDLERS[provider]; |
| if (!handler) return { message: `Usage API not implemented for ${provider}` }; |
| return await handler({ provider, accessToken, apiKey, providerSpecificData, providerDataWithProjectId, proxyOptions }); |
| } |
|
|