mirror of
https://github.com/tiennm99/ccs.git
synced 2026-10-20 00:14:58 +00:00
fix(core): resolve edge cases and hardcoded drift
This commit is contained in:
1 parent
6074fcb0b6
commit
343ec959fc
19 files changed
+894
-228
No files matched your search
@@ -140,6 +140,25 @@ export const CLIPROXY_PROVIDER_IDS = Object.freeze(
|
||||
Object.keys(PROVIDER_CAPABILITIES) as CLIProxyProvider[]
|
||||
);
|
||||
|
||||
/** Providers currently supported by quota status fetchers. */
|
||||
export const QUOTA_SUPPORTED_PROVIDER_IDS = Object.freeze([
|
||||
'agy',
|
||||
'codex',
|
||||
'gemini',
|
||||
'ghcp',
|
||||
] as const);
|
||||
export type QuotaSupportedProvider = (typeof QUOTA_SUPPORTED_PROVIDER_IDS)[number];
|
||||
const QUOTA_SUPPORTED_PROVIDER_SET = new Set<QuotaSupportedProvider>(QUOTA_SUPPORTED_PROVIDER_IDS);
|
||||
|
||||
export const QUOTA_PROVIDER_OPTION_VALUES = Object.freeze(
|
||||
[
|
||||
...QUOTA_SUPPORTED_PROVIDER_IDS,
|
||||
...QUOTA_SUPPORTED_PROVIDER_IDS.flatMap((provider) => PROVIDER_CAPABILITIES[provider].aliases),
|
||||
'all',
|
||||
].filter((value, index, values) => values.indexOf(value) === index)
|
||||
);
|
||||
export const QUOTA_PROVIDER_HELP_TEXT = QUOTA_PROVIDER_OPTION_VALUES.join(', ');
|
||||
|
||||
export function buildProviderMap<T>(
|
||||
valueFor: (provider: CLIProxyProvider) => T
|
||||
): Record<CLIProxyProvider, T> {
|
||||
@@ -243,6 +262,15 @@ export function getProviderTokenTypeValues(provider: CLIProxyProvider): readonly
|
||||
}
|
||||
|
||||
export function mapExternalProviderName(providerName: string): CLIProxyProvider | null {
|
||||
const normalized = providerName.toLowerCase();
|
||||
const normalized = providerName.trim().toLowerCase();
|
||||
if (!normalized) {
|
||||
return null;
|
||||
}
|
||||
return PROVIDER_ALIAS_MAP.get(normalized) ?? null;
|
||||
}
|
||||
|
||||
export function isQuotaSupportedProvider(
|
||||
provider: CLIProxyProvider
|
||||
): provider is QuotaSupportedProvider {
|
||||
return QUOTA_SUPPORTED_PROVIDER_SET.has(provider as QuotaSupportedProvider);
|
||||
}
|
||||
Reference in new issue
Block a user