@kaitranntt/ccs 7.47.0 → 7.48.0-dev.2
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 +3 -3
- package/config/base-codex.settings.json +4 -4
- package/dist/ccs.js +68 -97
- package/dist/ccs.js.map +1 -1
- package/dist/cliproxy/config/env-builder.d.ts.map +1 -1
- package/dist/cliproxy/config/env-builder.js +77 -15
- package/dist/cliproxy/config/env-builder.js.map +1 -1
- package/dist/cliproxy/config/extended-context-config.d.ts +1 -8
- package/dist/cliproxy/config/extended-context-config.d.ts.map +1 -1
- package/dist/cliproxy/config/extended-context-config.js +8 -24
- package/dist/cliproxy/config/extended-context-config.js.map +1 -1
- package/dist/cliproxy/config/generator.d.ts +3 -1
- package/dist/cliproxy/config/generator.d.ts.map +1 -1
- package/dist/cliproxy/config/generator.js +210 -39
- package/dist/cliproxy/config/generator.js.map +1 -1
- package/dist/cliproxy/config/thinking-config.d.ts.map +1 -1
- package/dist/cliproxy/config/thinking-config.js +15 -4
- package/dist/cliproxy/config/thinking-config.js.map +1 -1
- package/dist/cliproxy/executor/env-resolver.d.ts.map +1 -1
- package/dist/cliproxy/executor/env-resolver.js +38 -2
- package/dist/cliproxy/executor/env-resolver.js.map +1 -1
- package/dist/cliproxy/executor/index.d.ts.map +1 -1
- package/dist/cliproxy/executor/index.js +7 -4
- package/dist/cliproxy/executor/index.js.map +1 -1
- package/dist/cliproxy/executor/retry-handler.d.ts +1 -1
- package/dist/cliproxy/executor/retry-handler.js +2 -2
- package/dist/cliproxy/executor/retry-handler.js.map +1 -1
- package/dist/cliproxy/index.d.ts +1 -0
- package/dist/cliproxy/index.d.ts.map +1 -1
- package/dist/cliproxy/index.js +12 -3
- package/dist/cliproxy/index.js.map +1 -1
- package/dist/cliproxy/model-catalog.d.ts.map +1 -1
- package/dist/cliproxy/model-catalog.js +6 -1
- package/dist/cliproxy/model-catalog.js.map +1 -1
- package/dist/cliproxy/model-config.d.ts.map +1 -1
- package/dist/cliproxy/model-config.js +6 -6
- package/dist/cliproxy/model-config.js.map +1 -1
- package/dist/cliproxy/model-id-normalizer.d.ts +70 -0
- package/dist/cliproxy/model-id-normalizer.d.ts.map +1 -0
- package/dist/cliproxy/model-id-normalizer.js +120 -0
- package/dist/cliproxy/model-id-normalizer.js.map +1 -0
- package/dist/cliproxy/provider-capabilities.d.ts +6 -0
- package/dist/cliproxy/provider-capabilities.d.ts.map +1 -1
- package/dist/cliproxy/provider-capabilities.js +24 -2
- package/dist/cliproxy/provider-capabilities.js.map +1 -1
- package/dist/cliproxy/quota-fetcher-claude-normalizer.d.ts +18 -0
- package/dist/cliproxy/quota-fetcher-claude-normalizer.d.ts.map +1 -0
- package/dist/cliproxy/quota-fetcher-claude-normalizer.js +291 -0
- package/dist/cliproxy/quota-fetcher-claude-normalizer.js.map +1 -0
- package/dist/cliproxy/quota-fetcher-claude.d.ts +21 -0
- package/dist/cliproxy/quota-fetcher-claude.d.ts.map +1 -0
- package/dist/cliproxy/quota-fetcher-claude.js +263 -0
- package/dist/cliproxy/quota-fetcher-claude.js.map +1 -0
- package/dist/cliproxy/quota-manager.d.ts +7 -4
- package/dist/cliproxy/quota-manager.d.ts.map +1 -1
- package/dist/cliproxy/quota-manager.js +80 -21
- package/dist/cliproxy/quota-manager.js.map +1 -1
- package/dist/cliproxy/quota-types.d.ts +74 -2
- package/dist/cliproxy/quota-types.d.ts.map +1 -1
- package/dist/cliproxy/quota-types.js +1 -1
- package/dist/cliproxy/remote-proxy-client.d.ts +3 -10
- package/dist/cliproxy/remote-proxy-client.d.ts.map +1 -1
- package/dist/cliproxy/remote-proxy-client.js +32 -29
- package/dist/cliproxy/remote-proxy-client.js.map +1 -1
- package/dist/cliproxy/services/variant-settings.d.ts.map +1 -1
- package/dist/cliproxy/services/variant-settings.js +12 -13
- package/dist/cliproxy/services/variant-settings.js.map +1 -1
- package/dist/cliproxy/tool-sanitization-proxy.d.ts.map +1 -1
- package/dist/cliproxy/tool-sanitization-proxy.js +15 -5
- package/dist/cliproxy/tool-sanitization-proxy.js.map +1 -1
- package/dist/cliproxy/types.d.ts +1 -1
- package/dist/cliproxy/types.d.ts.map +1 -1
- package/dist/commands/api-command.d.ts +13 -0
- package/dist/commands/api-command.d.ts.map +1 -1
- package/dist/commands/api-command.js +85 -24
- package/dist/commands/api-command.js.map +1 -1
- package/dist/commands/arg-extractor.d.ts +29 -0
- package/dist/commands/arg-extractor.d.ts.map +1 -0
- package/dist/commands/arg-extractor.js +81 -0
- package/dist/commands/arg-extractor.js.map +1 -0
- package/dist/commands/cliproxy/help-subcommand.d.ts.map +1 -1
- package/dist/commands/cliproxy/help-subcommand.js +3 -2
- package/dist/commands/cliproxy/help-subcommand.js.map +1 -1
- package/dist/commands/cliproxy/index.d.ts +13 -0
- package/dist/commands/cliproxy/index.d.ts.map +1 -1
- package/dist/commands/cliproxy/index.js +66 -126
- package/dist/commands/cliproxy/index.js.map +1 -1
- package/dist/commands/cliproxy/quota-subcommand.d.ts +2 -1
- package/dist/commands/cliproxy/quota-subcommand.d.ts.map +1 -1
- package/dist/commands/cliproxy/quota-subcommand.js +172 -46
- package/dist/commands/cliproxy/quota-subcommand.js.map +1 -1
- package/dist/commands/config-command.d.ts.map +1 -1
- package/dist/commands/config-command.js +17 -16
- package/dist/commands/config-command.js.map +1 -1
- package/dist/commands/config-image-analysis-command.d.ts.map +1 -1
- package/dist/commands/config-image-analysis-command.js +37 -27
- package/dist/commands/config-image-analysis-command.js.map +1 -1
- package/dist/commands/persist-command.d.ts.map +1 -1
- package/dist/commands/persist-command.js +455 -139
- package/dist/commands/persist-command.js.map +1 -1
- package/dist/management/checks/config-check.d.ts.map +1 -1
- package/dist/management/checks/config-check.js +2 -2
- package/dist/management/checks/config-check.js.map +1 -1
- package/dist/shared/extended-context-utils.d.ts +14 -0
- package/dist/shared/extended-context-utils.d.ts.map +1 -0
- package/dist/shared/extended-context-utils.js +35 -0
- package/dist/shared/extended-context-utils.js.map +1 -0
- package/dist/ui/assets/{accounts-BiL_RD2P.js → accounts-7x9sEJ6E.js} +1 -1
- package/dist/ui/assets/{alert-dialog-BoSPpkH2.js → alert-dialog-CSG7wAU8.js} +1 -1
- package/dist/ui/assets/{api-BrHcZxrF.js → api-BF6fKWuJ.js} +1 -1
- package/dist/ui/assets/{auth-section-CNEQOji9.js → auth-section-BrRo7P5e.js} +1 -1
- package/dist/ui/assets/{backups-section-CYPJq2Y6.js → backups-section-BvoQ6sjn.js} +1 -1
- package/dist/ui/assets/cliproxy-Dp-l74Ht.js +3 -0
- package/dist/ui/assets/cliproxy-control-panel-D3_E45dZ.js +1 -0
- package/dist/ui/assets/{confirm-dialog-JGLPn0Pg.js → confirm-dialog-QJFlAs8u.js} +1 -1
- package/dist/ui/assets/{copilot-Bt-S8kHA.js → copilot-CRxuFhMs.js} +2 -2
- package/dist/ui/assets/{cursor-Qg3y30M0.js → cursor-Dsbkv6Oq.js} +1 -1
- package/dist/ui/assets/{globalenv-section-Dxrj87dw.js → globalenv-section-Cf_HiHep.js} +1 -1
- package/dist/ui/assets/{health-Bjnrp81E.js → health-CgHX0qCf.js} +1 -1
- package/dist/ui/assets/index-BNJ3rHVd.js +47 -0
- package/dist/ui/assets/{index-ApptKWow.js → index-BUC-Zfgc.js} +1 -1
- package/dist/ui/assets/{index-XJ9726WB.js → index-C-4XwF_5.js} +1 -1
- package/dist/ui/assets/{index-DOQkTkq-.js → index-D9YYXEsW.js} +1 -1
- package/dist/ui/assets/{index-UVFLMRYY.js → index-yfs5e5sm.js} +1 -1
- package/dist/ui/assets/{proxy-status-widget-PLX0fi09.js → proxy-status-widget-CNesfhAI.js} +1 -1
- package/dist/ui/assets/{separator-yZDNbi3M.js → separator-9gFbzNO-.js} +1 -1
- package/dist/ui/assets/{shared-DZ3QOOgF.js → shared-DfHvplPN.js} +1 -1
- package/dist/ui/assets/{switch-DsTWD8-1.js → switch-BMNi4Qdv.js} +1 -1
- package/dist/ui/index.html +1 -1
- package/dist/utils/claude-config-path.d.ts +11 -0
- package/dist/utils/claude-config-path.d.ts.map +1 -0
- package/dist/utils/claude-config-path.js +51 -0
- package/dist/utils/claude-config-path.js.map +1 -0
- package/dist/utils/websearch/hook-config.d.ts.map +1 -1
- package/dist/utils/websearch/hook-config.js +9 -23
- package/dist/utils/websearch/hook-config.js.map +1 -1
- package/dist/web-server/jsonl-parser.d.ts +0 -4
- package/dist/web-server/jsonl-parser.d.ts.map +1 -1
- package/dist/web-server/jsonl-parser.js +52 -29
- package/dist/web-server/jsonl-parser.js.map +1 -1
- package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -1
- package/dist/web-server/routes/cliproxy-stats-routes.js +105 -3
- package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -1
- package/dist/web-server/routes/persist-routes.d.ts.map +1 -1
- package/dist/web-server/routes/persist-routes.js +54 -44
- package/dist/web-server/routes/persist-routes.js.map +1 -1
- package/dist/web-server/routes/route-helpers.d.ts +0 -5
- package/dist/web-server/routes/route-helpers.d.ts.map +1 -1
- package/dist/web-server/routes/route-helpers.js +52 -6
- package/dist/web-server/routes/route-helpers.js.map +1 -1
- package/dist/web-server/routes/settings-routes.d.ts.map +1 -1
- package/dist/web-server/routes/settings-routes.js +72 -10
- package/dist/web-server/routes/settings-routes.js.map +1 -1
- package/dist/web-server/shared-routes.js +2 -2
- package/dist/web-server/shared-routes.js.map +1 -1
- package/package.json +1 -1
- package/dist/ui/assets/cliproxy-CDDlPp51.js +0 -3
- package/dist/ui/assets/cliproxy-control-panel-XSSdoJ3f.js +0 -1
- package/dist/ui/assets/index-Ce5AiHY_.js +0 -47
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Model ID normalization helpers.
|
|
4
|
+
*
|
|
5
|
+
* Handles provider-aware compatibility between dotted and hyphenated Claude
|
|
6
|
+
* model version formats (e.g., 4.6 vs 4-6).
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.normalizeModelEnvVarsForProvider = exports.normalizeModelIdForRouting = exports.normalizeModelIdForProvider = exports.normalizeClaudeDottedThinkingMajorMinor = exports.normalizeClaudeDottedMajorMinor = exports.isAntigravityProvider = exports.extractProviderFromPathname = exports.MODEL_ENV_VAR_KEYS = void 0;
|
|
10
|
+
/** Env vars that carry model identifiers. */
|
|
11
|
+
exports.MODEL_ENV_VAR_KEYS = [
|
|
12
|
+
'ANTHROPIC_MODEL',
|
|
13
|
+
'ANTHROPIC_DEFAULT_OPUS_MODEL',
|
|
14
|
+
'ANTHROPIC_DEFAULT_SONNET_MODEL',
|
|
15
|
+
'ANTHROPIC_DEFAULT_HAIKU_MODEL',
|
|
16
|
+
];
|
|
17
|
+
const CLAUDE_DOTTED_VERSION_REGEX = /claude-(sonnet|opus|haiku)-(\d+)\.(\d+)(?=(?:$|-|\[|\(|\/))/gi;
|
|
18
|
+
const CLAUDE_DOTTED_THINKING_REGEX = /claude-(sonnet|opus|haiku)-(\d+)\.(\d+)-thinking(?=(?:$|-|\[|\(|\/))/gi;
|
|
19
|
+
/**
|
|
20
|
+
* Extract provider segment from `/api/provider/{provider}` request paths.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* extractProviderFromPathname('/api/provider/agy/v1/messages')
|
|
24
|
+
* // => 'agy'
|
|
25
|
+
*/
|
|
26
|
+
function extractProviderFromPathname(pathname) {
|
|
27
|
+
const match = pathname.match(/\/api\/provider\/([^/]+)/i);
|
|
28
|
+
if (!match?.[1])
|
|
29
|
+
return null;
|
|
30
|
+
return match[1].toLowerCase();
|
|
31
|
+
}
|
|
32
|
+
exports.extractProviderFromPathname = extractProviderFromPathname;
|
|
33
|
+
/** Whether the provider uses Antigravity model routing conventions. */
|
|
34
|
+
function isAntigravityProvider(provider) {
|
|
35
|
+
if (typeof provider !== 'string')
|
|
36
|
+
return false;
|
|
37
|
+
const normalized = provider.trim().toLowerCase();
|
|
38
|
+
return normalized === 'agy' || normalized === 'antigravity';
|
|
39
|
+
}
|
|
40
|
+
exports.isAntigravityProvider = isAntigravityProvider;
|
|
41
|
+
/** Normalize Claude dotted major.minor IDs to hyphenated format. */
|
|
42
|
+
function normalizeClaudeDottedMajorMinor(model) {
|
|
43
|
+
return model.replace(CLAUDE_DOTTED_VERSION_REGEX, (_match, family, major, minor) => `claude-${family.toLowerCase()}-${major}-${minor}`);
|
|
44
|
+
}
|
|
45
|
+
exports.normalizeClaudeDottedMajorMinor = normalizeClaudeDottedMajorMinor;
|
|
46
|
+
/**
|
|
47
|
+
* Normalize only dotted Claude thinking IDs to hyphenated format.
|
|
48
|
+
* Keeps non-thinking dotted IDs unchanged.
|
|
49
|
+
*/
|
|
50
|
+
function normalizeClaudeDottedThinkingMajorMinor(model) {
|
|
51
|
+
return model.replace(CLAUDE_DOTTED_THINKING_REGEX, (_match, family, major, minor) => `claude-${family.toLowerCase()}-${major}-${minor}-thinking`);
|
|
52
|
+
}
|
|
53
|
+
exports.normalizeClaudeDottedThinkingMajorMinor = normalizeClaudeDottedThinkingMajorMinor;
|
|
54
|
+
/**
|
|
55
|
+
* Normalize model ID for a specific provider.
|
|
56
|
+
* Antigravity requires hyphenated Claude major.minor model IDs.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* normalizeModelIdForProvider('claude-opus-4.6-thinking', 'agy')
|
|
60
|
+
* // => 'claude-opus-4-6-thinking'
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* normalizeModelIdForProvider('claude-opus-4.6-thinking', 'gemini')
|
|
64
|
+
* // => 'claude-opus-4.6-thinking'
|
|
65
|
+
*/
|
|
66
|
+
function normalizeModelIdForProvider(model, provider) {
|
|
67
|
+
if (!isAntigravityProvider(provider))
|
|
68
|
+
return model;
|
|
69
|
+
return normalizeClaudeDottedMajorMinor(model);
|
|
70
|
+
}
|
|
71
|
+
exports.normalizeModelIdForProvider = normalizeModelIdForProvider;
|
|
72
|
+
/**
|
|
73
|
+
* Normalize model ID for request routing.
|
|
74
|
+
* - Antigravity routes: normalize all dotted Claude major.minor forms.
|
|
75
|
+
* - Root/composite routes: normalize only thinking forms to avoid mutating
|
|
76
|
+
* valid non-thinking dotted IDs used by other providers.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* normalizeModelIdForRouting('claude-sonnet-4.6-thinking', null)
|
|
80
|
+
* // => 'claude-sonnet-4-6-thinking'
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* normalizeModelIdForRouting('claude-sonnet-4.6', null)
|
|
84
|
+
* // => 'claude-sonnet-4.6'
|
|
85
|
+
*/
|
|
86
|
+
function normalizeModelIdForRouting(model, provider) {
|
|
87
|
+
if (isAntigravityProvider(provider)) {
|
|
88
|
+
return normalizeClaudeDottedMajorMinor(model);
|
|
89
|
+
}
|
|
90
|
+
return normalizeClaudeDottedThinkingMajorMinor(model);
|
|
91
|
+
}
|
|
92
|
+
exports.normalizeModelIdForRouting = normalizeModelIdForRouting;
|
|
93
|
+
/**
|
|
94
|
+
* Normalize model-related env vars for a provider.
|
|
95
|
+
* Returns original object when no changes are required.
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* normalizeModelEnvVarsForProvider(
|
|
99
|
+
* { ANTHROPIC_MODEL: 'claude-sonnet-4.6-thinking' },
|
|
100
|
+
* 'agy'
|
|
101
|
+
* )
|
|
102
|
+
* // => { ANTHROPIC_MODEL: 'claude-sonnet-4-6-thinking' }
|
|
103
|
+
*/
|
|
104
|
+
function normalizeModelEnvVarsForProvider(envVars, provider, keys = exports.MODEL_ENV_VAR_KEYS) {
|
|
105
|
+
let nextEnv = null;
|
|
106
|
+
for (const key of keys) {
|
|
107
|
+
const value = envVars[key];
|
|
108
|
+
if (typeof value !== 'string' || value.trim().length === 0)
|
|
109
|
+
continue;
|
|
110
|
+
const normalizedValue = normalizeModelIdForProvider(value, provider);
|
|
111
|
+
if (normalizedValue === value)
|
|
112
|
+
continue;
|
|
113
|
+
if (!nextEnv)
|
|
114
|
+
nextEnv = { ...envVars };
|
|
115
|
+
nextEnv[key] = normalizedValue;
|
|
116
|
+
}
|
|
117
|
+
return nextEnv ?? envVars;
|
|
118
|
+
}
|
|
119
|
+
exports.normalizeModelEnvVarsForProvider = normalizeModelEnvVarsForProvider;
|
|
120
|
+
//# sourceMappingURL=model-id-normalizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-id-normalizer.js","sourceRoot":"","sources":["../../src/cliproxy/model-id-normalizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,11 @@ export interface ProviderCapabilities {
|
|
|
24
24
|
}
|
|
25
25
|
export declare const PROVIDER_CAPABILITIES: Record<CLIProxyProvider, ProviderCapabilities>;
|
|
26
26
|
export declare const CLIPROXY_PROVIDER_IDS: readonly CLIProxyProvider[];
|
|
27
|
+
/** Providers currently supported by quota status fetchers. */
|
|
28
|
+
export declare const QUOTA_SUPPORTED_PROVIDER_IDS: readonly ["agy", "codex", "claude", "gemini", "ghcp"];
|
|
29
|
+
export type QuotaSupportedProvider = (typeof QUOTA_SUPPORTED_PROVIDER_IDS)[number];
|
|
30
|
+
export declare const QUOTA_PROVIDER_OPTION_VALUES: readonly string[];
|
|
31
|
+
export declare const QUOTA_PROVIDER_HELP_TEXT: string;
|
|
27
32
|
export declare function buildProviderMap<T>(valueFor: (provider: CLIProxyProvider) => T): Record<CLIProxyProvider, T>;
|
|
28
33
|
export declare function buildProviderAliasMap(capabilities?: Record<CLIProxyProvider, ProviderCapabilities>): ReadonlyMap<string, CLIProxyProvider>;
|
|
29
34
|
export declare function isCLIProxyProvider(provider: string): provider is CLIProxyProvider;
|
|
@@ -40,4 +45,5 @@ export declare function isRefreshDelegatedToCLIProxy(provider: CLIProxyProvider)
|
|
|
40
45
|
export declare function getProviderAuthFilePrefixes(provider: CLIProxyProvider): readonly string[];
|
|
41
46
|
export declare function getProviderTokenTypeValues(provider: CLIProxyProvider): readonly string[];
|
|
42
47
|
export declare function mapExternalProviderName(providerName: string): CLIProxyProvider | null;
|
|
48
|
+
export declare function isQuotaSupportedProvider(provider: CLIProxyProvider): provider is QuotaSupportedProvider;
|
|
43
49
|
//# sourceMappingURL=provider-capabilities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-capabilities.d.ts","sourceRoot":"","sources":["../../src/cliproxy/provider-capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,MAAM,MAAM,aAAa,GAAG,oBAAoB,GAAG,aAAa,CAAC;AACjE,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,UAAU,GAAG,aAAa,CAAC;AAEvE,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,aAAa,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,uEAAuE;IACvE,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kEAAkE;IAClE,mBAAmB,EAAE,MAAM,CAAC;IAC5B,sDAAsD;IACtD,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,wEAAwE;IACxE,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,2DAA2D;IAC3D,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC;;;OAGG;IACH,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B;AAED,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,gBAAgB,EAAE,oBAAoB,CA6GhF,CAAC;AAEF,eAAO,MAAM,qBAAqB,6BAEjC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,QAAQ,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,CAAC,GAC1C,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAQ7B;AAID,wBAAgB,qBAAqB,CACnC,YAAY,GAAE,MAAM,CAAC,gBAAgB,EAAE,oBAAoB,CAAyB,GACnF,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CA4BvC;AAID,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,IAAI,gBAAgB,CAEjF;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,oBAAoB,CAExF;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAEzE;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAEzE;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,aAAa,GAAG,gBAAgB,EAAE,CAInF;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,aAAa,CAE1E;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAE9E;AAED,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAElF;AAED,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAEjF;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,qBAAqB,CAE1F;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAEhF;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,gBAAgB,GAAG,SAAS,MAAM,EAAE,CAEzF;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,gBAAgB,GAAG,SAAS,MAAM,EAAE,CAExF;AAED,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"provider-capabilities.d.ts","sourceRoot":"","sources":["../../src/cliproxy/provider-capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mapExternalProviderName = exports.getProviderTokenTypeValues = exports.getProviderAuthFilePrefixes = exports.isRefreshDelegatedToCLIProxy = exports.getTokenRefreshOwnership = exports.getCLIProxyAuthUrlProviderName = exports.getCLIProxyCallbackProviderName = exports.getOAuthCallbackPort = exports.getOAuthFlowType = exports.getProvidersByOAuthFlow = exports.getProviderDescription = exports.getProviderDisplayName = exports.getProviderCapabilities = exports.isCLIProxyProvider = exports.buildProviderAliasMap = exports.buildProviderMap = exports.CLIPROXY_PROVIDER_IDS = exports.PROVIDER_CAPABILITIES = void 0;
|
|
3
|
+
exports.isQuotaSupportedProvider = exports.mapExternalProviderName = exports.getProviderTokenTypeValues = exports.getProviderAuthFilePrefixes = exports.isRefreshDelegatedToCLIProxy = exports.getTokenRefreshOwnership = exports.getCLIProxyAuthUrlProviderName = exports.getCLIProxyCallbackProviderName = exports.getOAuthCallbackPort = exports.getOAuthFlowType = exports.getProvidersByOAuthFlow = exports.getProviderDescription = exports.getProviderDisplayName = exports.getProviderCapabilities = exports.isCLIProxyProvider = exports.buildProviderAliasMap = exports.buildProviderMap = exports.QUOTA_PROVIDER_HELP_TEXT = exports.QUOTA_PROVIDER_OPTION_VALUES = exports.QUOTA_SUPPORTED_PROVIDER_IDS = exports.CLIPROXY_PROVIDER_IDS = exports.PROVIDER_CAPABILITIES = void 0;
|
|
4
4
|
exports.PROVIDER_CAPABILITIES = {
|
|
5
5
|
gemini: {
|
|
6
6
|
displayName: 'Google Gemini',
|
|
@@ -112,6 +112,21 @@ exports.PROVIDER_CAPABILITIES = {
|
|
|
112
112
|
},
|
|
113
113
|
};
|
|
114
114
|
exports.CLIPROXY_PROVIDER_IDS = Object.freeze(Object.keys(exports.PROVIDER_CAPABILITIES));
|
|
115
|
+
/** Providers currently supported by quota status fetchers. */
|
|
116
|
+
exports.QUOTA_SUPPORTED_PROVIDER_IDS = Object.freeze([
|
|
117
|
+
'agy',
|
|
118
|
+
'codex',
|
|
119
|
+
'claude',
|
|
120
|
+
'gemini',
|
|
121
|
+
'ghcp',
|
|
122
|
+
]);
|
|
123
|
+
const QUOTA_SUPPORTED_PROVIDER_SET = new Set(exports.QUOTA_SUPPORTED_PROVIDER_IDS);
|
|
124
|
+
exports.QUOTA_PROVIDER_OPTION_VALUES = Object.freeze([
|
|
125
|
+
...exports.QUOTA_SUPPORTED_PROVIDER_IDS,
|
|
126
|
+
...exports.QUOTA_SUPPORTED_PROVIDER_IDS.flatMap((provider) => exports.PROVIDER_CAPABILITIES[provider].aliases),
|
|
127
|
+
'all',
|
|
128
|
+
].filter((value, index, values) => values.indexOf(value) === index));
|
|
129
|
+
exports.QUOTA_PROVIDER_HELP_TEXT = exports.QUOTA_PROVIDER_OPTION_VALUES.join(', ');
|
|
115
130
|
function buildProviderMap(valueFor) {
|
|
116
131
|
return exports.CLIPROXY_PROVIDER_IDS.reduce((acc, provider) => {
|
|
117
132
|
acc[provider] = valueFor(provider);
|
|
@@ -197,8 +212,15 @@ function getProviderTokenTypeValues(provider) {
|
|
|
197
212
|
}
|
|
198
213
|
exports.getProviderTokenTypeValues = getProviderTokenTypeValues;
|
|
199
214
|
function mapExternalProviderName(providerName) {
|
|
200
|
-
const normalized = providerName.toLowerCase();
|
|
215
|
+
const normalized = providerName.trim().toLowerCase();
|
|
216
|
+
if (!normalized) {
|
|
217
|
+
return null;
|
|
218
|
+
}
|
|
201
219
|
return PROVIDER_ALIAS_MAP.get(normalized) ?? null;
|
|
202
220
|
}
|
|
203
221
|
exports.mapExternalProviderName = mapExternalProviderName;
|
|
222
|
+
function isQuotaSupportedProvider(provider) {
|
|
223
|
+
return QUOTA_SUPPORTED_PROVIDER_SET.has(provider);
|
|
224
|
+
}
|
|
225
|
+
exports.isQuotaSupportedProvider = isQuotaSupportedProvider;
|
|
204
226
|
//# sourceMappingURL=provider-capabilities.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-capabilities.js","sourceRoot":"","sources":["../../src/cliproxy/provider-capabilities.ts"],"names":[],"mappings":";;;AA2Ba,QAAA,qBAAqB,GAAmD;IACnF,MAAM,EAAE;QACN,WAAW,EAAE,eAAe;QAC5B,WAAW,EAAE,yBAAyB;QACtC,SAAS,EAAE,oBAAoB;QAC/B,YAAY,EAAE,IAAI;QAClB,oBAAoB,EAAE,QAAQ;QAC9B,mBAAmB,EAAE,YAAY;QACjC,gBAAgB,EAAE,KAAK;QACvB,gBAAgB,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;QACxC,eAAe,EAAE,CAAC,QAAQ,CAAC;QAC3B,OAAO,EAAE,CAAC,YAAY,CAAC;KACxB;IACD,KAAK,EAAE;QACL,WAAW,EAAE,cAAc;QAC3B,WAAW,EAAE,wBAAwB;QACrC,SAAS,EAAE,oBAAoB;QAC/B,YAAY,EAAE,IAAI;QAClB,oBAAoB,EAAE,OAAO;QAC7B,mBAAmB,EAAE,OAAO;QAC5B,gBAAgB,EAAE,UAAU;QAC5B,gBAAgB,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;QACvC,eAAe,EAAE,CAAC,OAAO,CAAC;QAC1B,OAAO,EAAE,EAAE;KACZ;IACD,GAAG,EAAE;QACH,WAAW,EAAE,aAAa;QAC1B,WAAW,EAAE,uBAAuB;QACpC,SAAS,EAAE,oBAAoB;QAC/B,YAAY,EAAE,KAAK;QACnB,oBAAoB,EAAE,aAAa;QACnC,mBAAmB,EAAE,aAAa;QAClC,gBAAgB,EAAE,UAAU;QAC5B,gBAAgB,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC;QAC1C,eAAe,EAAE,CAAC,aAAa,CAAC;QAChC,OAAO,EAAE,CAAC,aAAa,CAAC;KACzB;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,cAAc;QAC3B,WAAW,EAAE,kBAAkB;QAC/B,SAAS,EAAE,aAAa;QACxB,YAAY,EAAE,IAAI;QAClB,oBAAoB,EAAE,MAAM;QAC5B,mBAAmB,EAAE,MAAM;QAC3B,gBAAgB,EAAE,UAAU;QAC5B,gBAAgB,EAAE,CAAC,OAAO,CAAC;QAC3B,eAAe,EAAE,CAAC,MAAM,CAAC;QACzB,OAAO,EAAE,EAAE;KACZ;IACD,KAAK,EAAE;QACL,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,iBAAiB;QAC9B,SAAS,EAAE,oBAAoB;QAC/B,YAAY,EAAE,KAAK;QACnB,oBAAoB,EAAE,OAAO;QAC7B,mBAAmB,EAAE,OAAO;QAC5B,gBAAgB,EAAE,UAAU;QAC5B,gBAAgB,EAAE,CAAC,QAAQ,CAAC;QAC5B,eAAe,EAAE,CAAC,OAAO,CAAC;QAC1B,OAAO,EAAE,EAAE;KACZ;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,YAAY;QACzB,WAAW,EAAE,0BAA0B;QACvC,SAAS,EAAE,aAAa;QACxB,YAAY,EAAE,IAAI;QAClB,oBAAoB,EAAE,MAAM;QAC5B,mBAAmB,EAAE,MAAM;QAC3B,gBAAgB,EAAE,UAAU;QAC5B,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC;QACrD,eAAe,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC;QAC1C,OAAO,EAAE,CAAC,eAAe,CAAC;KAC3B;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,wBAAwB;QACrC,WAAW,EAAE,0BAA0B;QACvC,SAAS,EAAE,aAAa;QACxB,YAAY,EAAE,IAAI;QAClB,oBAAoB,EAAE,SAAS;QAC/B,mBAAmB,EAAE,QAAQ;QAC7B,gBAAgB,EAAE,UAAU;QAC5B,gBAAgB,EAAE,CAAC,iBAAiB,EAAE,UAAU,EAAE,KAAK,CAAC;QACxD,eAAe,EAAE,CAAC,gBAAgB,EAAE,SAAS,CAAC;QAC9C,OAAO,EAAE,CAAC,gBAAgB,EAAE,SAAS,CAAC;KACvC;IACD,MAAM,EAAE;QACN,WAAW,EAAE,oBAAoB;QACjC,WAAW,EAAE,2BAA2B;QACxC,SAAS,EAAE,oBAAoB;QAC/B,YAAY,EAAE,KAAK;QACnB,oBAAoB,EAAE,WAAW;QACjC,mBAAmB,EAAE,WAAW;QAChC,gBAAgB,EAAE,aAAa;QAC/B,gBAAgB,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;QAC3C,eAAe,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;QACxC,OAAO,EAAE,CAAC,WAAW,CAAC;KACvB;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE,4BAA4B;QACzC,SAAS,EAAE,aAAa;QACxB,YAAY,EAAE,IAAI;QAClB,oBAAoB,EAAE,MAAM;QAC5B,mBAAmB,EAAE,MAAM;QAC3B,gBAAgB,EAAE,UAAU;QAC5B,gBAAgB,EAAE,CAAC,OAAO,CAAC;QAC3B,eAAe,EAAE,CAAC,MAAM,CAAC;QACzB,OAAO,EAAE,CAAC,UAAU,CAAC;KACtB;CACF,CAAC;AAEW,QAAA,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAChD,MAAM,CAAC,IAAI,CAAC,6BAAqB,CAAuB,CACzD,CAAC;AAEF,SAAgB,gBAAgB,CAC9B,QAA2C;IAE3C,OAAO,6BAAqB,CAAC,MAAM,CACjC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;QAChB,GAAG,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnC,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAiC,CAClC,CAAC;AACJ,CAAC;AAVD,4CAUC;AAED,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,6BAAqB,CAAC,CAAC;AAEvD,SAAgB,qBAAqB,CACnC,eAA+D,6BAAqB;IAEpF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;IACrD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAuB,CAAC;IAElE,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,QAA0B,EAAQ,EAAE;QACxE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,gBAAgB,IAAI,gBAAgB,KAAK,QAAQ,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CACb,iCAAiC,UAAU,MAAM,gBAAgB,QAAQ,QAAQ,EAAE,CACpF,CAAC;QACJ,CAAC;QAED,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAClC,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;YACnD,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AA9BD,sDA8BC;AAED,MAAM,kBAAkB,GAA0C,qBAAqB,EAAE,CAAC;AAE1F,SAAgB,kBAAkB,CAAC,QAAgB;IACjD,OAAO,eAAe,CAAC,GAAG,CAAC,QAA4B,CAAC,CAAC;AAC3D,CAAC;AAFD,gDAEC;AAED,SAAgB,uBAAuB,CAAC,QAA0B;IAChE,OAAO,6BAAqB,CAAC,QAAQ,CAAC,CAAC;AACzC,CAAC;AAFD,0DAEC;AAED,SAAgB,sBAAsB,CAAC,QAA0B;IAC/D,OAAO,6BAAqB,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC;AACrD,CAAC;AAFD,wDAEC;AAED,SAAgB,sBAAsB,CAAC,QAA0B;IAC/D,OAAO,6BAAqB,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC;AACrD,CAAC;AAFD,wDAEC;AAED,SAAgB,uBAAuB,CAAC,QAAuB;IAC7D,OAAO,6BAAqB,CAAC,MAAM,CACjC,CAAC,QAAQ,EAAE,EAAE,CAAC,6BAAqB,CAAC,QAAQ,CAAC,CAAC,SAAS,KAAK,QAAQ,CACrE,CAAC;AACJ,CAAC;AAJD,0DAIC;AAED,SAAgB,gBAAgB,CAAC,QAA0B;IACzD,OAAO,6BAAqB,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC;AAFD,4CAEC;AAED,SAAgB,oBAAoB,CAAC,QAA0B;IAC7D,OAAO,6BAAqB,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC;AACtD,CAAC;AAFD,oDAEC;AAED,SAAgB,+BAA+B,CAAC,QAA0B;IACxE,OAAO,6BAAqB,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC;AAC9D,CAAC;AAFD,0EAEC;AAED,SAAgB,8BAA8B,CAAC,QAA0B;IACvE,OAAO,6BAAqB,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC;AAC7D,CAAC;AAFD,wEAEC;AAED,SAAgB,wBAAwB,CAAC,QAA0B;IACjE,OAAO,6BAAqB,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC;AAC1D,CAAC;AAFD,4DAEC;AAED,SAAgB,4BAA4B,CAAC,QAA0B;IACrE,OAAO,6BAAqB,CAAC,QAAQ,CAAC,CAAC,gBAAgB,KAAK,UAAU,CAAC;AACzE,CAAC;AAFD,oEAEC;AAED,SAAgB,2BAA2B,CAAC,QAA0B;IACpE,OAAO,6BAAqB,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC;AAC1D,CAAC;AAFD,kEAEC;AAED,SAAgB,0BAA0B,CAAC,QAA0B;IACnE,OAAO,6BAAqB,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC;AACzD,CAAC;AAFD,gEAEC;AAED,SAAgB,uBAAuB,CAAC,YAAoB;IAC1D,MAAM,UAAU,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"provider-capabilities.js","sourceRoot":"","sources":["../../src/cliproxy/provider-capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Quota Response Normalization Helpers
|
|
3
|
+
*
|
|
4
|
+
* Parses Anthropic policy limits payload into normalized windows and core usage summary.
|
|
5
|
+
*/
|
|
6
|
+
import type { ClaudeCoreUsageSummary, ClaudeQuotaWindow } from './quota-types';
|
|
7
|
+
/**
|
|
8
|
+
* Parse raw policy limits response into normalized windows.
|
|
9
|
+
* Supports both array and object-map `restrictions` shapes.
|
|
10
|
+
*/
|
|
11
|
+
export declare function buildClaudeQuotaWindows(payload: Record<string, unknown>): ClaudeQuotaWindow[];
|
|
12
|
+
export declare function isClaudeWeeklyRateLimitType(rateLimitType: string): boolean;
|
|
13
|
+
export declare function pickMostRestrictiveClaudeWeeklyWindow(windows: ClaudeQuotaWindow[]): ClaudeQuotaWindow | null;
|
|
14
|
+
/**
|
|
15
|
+
* Build explicit 5h + weekly usage summary from Claude policy windows.
|
|
16
|
+
*/
|
|
17
|
+
export declare function buildClaudeCoreUsageSummary(windows: ClaudeQuotaWindow[]): ClaudeCoreUsageSummary;
|
|
18
|
+
//# sourceMappingURL=quota-fetcher-claude-normalizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quota-fetcher-claude-normalizer.d.ts","sourceRoot":"","sources":["../../src/cliproxy/quota-fetcher-claude-normalizer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAmL/E;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,EAAE,CAkC7F;AA0CD,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAE1E;AAED,wBAAgB,qCAAqC,CACnD,OAAO,EAAE,iBAAiB,EAAE,GAC3B,iBAAiB,GAAG,IAAI,CAK1B;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,sBAAsB,CAsChG"}
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Claude Quota Response Normalization Helpers
|
|
4
|
+
*
|
|
5
|
+
* Parses Anthropic policy limits payload into normalized windows and core usage summary.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.buildClaudeCoreUsageSummary = exports.pickMostRestrictiveClaudeWeeklyWindow = exports.isClaudeWeeklyRateLimitType = exports.buildClaudeQuotaWindows = void 0;
|
|
9
|
+
const percentage_1 = require("../utils/percentage");
|
|
10
|
+
// Distinguishes epoch milliseconds from seconds (1e12 ~= 2001-09-09T01:46:40Z).
|
|
11
|
+
const EPOCH_MS_THRESHOLD = 1e12;
|
|
12
|
+
function asString(value) {
|
|
13
|
+
return typeof value === 'string' && value.trim().length > 0 ? value.trim() : null;
|
|
14
|
+
}
|
|
15
|
+
function asBoolean(value) {
|
|
16
|
+
if (typeof value === 'boolean')
|
|
17
|
+
return value;
|
|
18
|
+
if (typeof value === 'string') {
|
|
19
|
+
if (value === 'true')
|
|
20
|
+
return true;
|
|
21
|
+
if (value === 'false')
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
function asNumber(value) {
|
|
27
|
+
if (typeof value === 'number' && isFinite(value))
|
|
28
|
+
return value;
|
|
29
|
+
if (typeof value === 'string') {
|
|
30
|
+
const parsed = Number(value);
|
|
31
|
+
return isFinite(parsed) ? parsed : null;
|
|
32
|
+
}
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
function normalizeTimestamp(value) {
|
|
36
|
+
const asNum = asNumber(value);
|
|
37
|
+
if (asNum !== null) {
|
|
38
|
+
const millis = asNum > EPOCH_MS_THRESHOLD ? asNum : asNum * 1000;
|
|
39
|
+
const date = new Date(millis);
|
|
40
|
+
return isNaN(date.getTime()) ? null : date.toISOString();
|
|
41
|
+
}
|
|
42
|
+
const str = asString(value);
|
|
43
|
+
if (!str)
|
|
44
|
+
return null;
|
|
45
|
+
// Numeric strings can be either epoch seconds or epoch milliseconds.
|
|
46
|
+
if (/^\d+$/.test(str)) {
|
|
47
|
+
const numeric = Number(str);
|
|
48
|
+
if (isFinite(numeric)) {
|
|
49
|
+
const millis = numeric > EPOCH_MS_THRESHOLD ? numeric : numeric * 1000;
|
|
50
|
+
const date = new Date(millis);
|
|
51
|
+
return isNaN(date.getTime()) ? null : date.toISOString();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const date = new Date(str);
|
|
55
|
+
return isNaN(date.getTime()) ? null : date.toISOString();
|
|
56
|
+
}
|
|
57
|
+
function getClaudeWindowLabel(rateLimitType) {
|
|
58
|
+
switch (rateLimitType) {
|
|
59
|
+
case 'five_hour':
|
|
60
|
+
return 'Session limit';
|
|
61
|
+
case 'seven_day':
|
|
62
|
+
return 'Weekly limit';
|
|
63
|
+
case 'seven_day_opus':
|
|
64
|
+
return 'Opus limit';
|
|
65
|
+
case 'seven_day_sonnet':
|
|
66
|
+
return 'Sonnet limit';
|
|
67
|
+
case 'seven_day_oauth_apps':
|
|
68
|
+
return 'OAuth apps limit';
|
|
69
|
+
case 'seven_day_cowork':
|
|
70
|
+
return 'Cowork limit';
|
|
71
|
+
case 'overage':
|
|
72
|
+
return 'Extra usage';
|
|
73
|
+
default:
|
|
74
|
+
return rateLimitType || 'Unknown limit';
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function clampUnit(value) {
|
|
78
|
+
return Math.max(0, Math.min(1, value));
|
|
79
|
+
}
|
|
80
|
+
function normalizeUtilization(raw) {
|
|
81
|
+
const utilizationRaw = asNumber(raw['utilization']);
|
|
82
|
+
const usedPercentRaw = asNumber(raw['usedPercent'] ?? raw['used_percent']);
|
|
83
|
+
const remainingPercentRaw = asNumber(raw['remainingPercent'] ?? raw['remaining_percent']);
|
|
84
|
+
if (utilizationRaw !== null) {
|
|
85
|
+
const ratio = utilizationRaw <= 1 ? utilizationRaw : utilizationRaw / 100;
|
|
86
|
+
const normalizedRatio = clampUnit(ratio);
|
|
87
|
+
const usedPercent = (0, percentage_1.clampPercent)(normalizedRatio * 100);
|
|
88
|
+
return {
|
|
89
|
+
utilization: normalizedRatio,
|
|
90
|
+
usedPercent,
|
|
91
|
+
remainingPercent: (0, percentage_1.clampPercent)(100 - usedPercent),
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
if (usedPercentRaw !== null) {
|
|
95
|
+
const usedPercent = (0, percentage_1.clampPercent)(usedPercentRaw);
|
|
96
|
+
return {
|
|
97
|
+
utilization: usedPercent / 100,
|
|
98
|
+
usedPercent,
|
|
99
|
+
remainingPercent: (0, percentage_1.clampPercent)(100 - usedPercent),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
if (remainingPercentRaw !== null) {
|
|
103
|
+
const remainingPercent = (0, percentage_1.clampPercent)(remainingPercentRaw);
|
|
104
|
+
const usedPercent = (0, percentage_1.clampPercent)(100 - remainingPercent);
|
|
105
|
+
return {
|
|
106
|
+
utilization: usedPercent / 100,
|
|
107
|
+
usedPercent,
|
|
108
|
+
remainingPercent,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
utilization: null,
|
|
113
|
+
usedPercent: 0,
|
|
114
|
+
remainingPercent: 100,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
function normalizeRateLimitType(value, fallbackKey) {
|
|
118
|
+
const direct = asString(value);
|
|
119
|
+
if (direct)
|
|
120
|
+
return direct;
|
|
121
|
+
if (fallbackKey)
|
|
122
|
+
return fallbackKey;
|
|
123
|
+
return 'unknown';
|
|
124
|
+
}
|
|
125
|
+
function toObject(value) {
|
|
126
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value))
|
|
127
|
+
return null;
|
|
128
|
+
return value;
|
|
129
|
+
}
|
|
130
|
+
function normalizeRestriction(raw, fallbackKey) {
|
|
131
|
+
const rateLimitType = normalizeRateLimitType(raw['rateLimitType'] ?? raw['rate_limit_type'] ?? raw['claim'] ?? raw['claimAbbrev'], fallbackKey);
|
|
132
|
+
if (!rateLimitType || rateLimitType === 'unknown')
|
|
133
|
+
return null;
|
|
134
|
+
const status = asString(raw['status']) || 'unknown';
|
|
135
|
+
const resetAt = normalizeTimestamp(raw['resetsAt'] ?? raw['resets_at'] ?? raw['resetAt'] ?? raw['reset_at']) ||
|
|
136
|
+
null;
|
|
137
|
+
const overageResetsAt = normalizeTimestamp(raw['overageResetsAt'] ??
|
|
138
|
+
raw['overage_resets_at'] ??
|
|
139
|
+
raw['overageResetAt'] ??
|
|
140
|
+
raw['overage_reset_at']) || null;
|
|
141
|
+
const { utilization, usedPercent, remainingPercent } = normalizeUtilization(raw);
|
|
142
|
+
return {
|
|
143
|
+
rateLimitType,
|
|
144
|
+
label: getClaudeWindowLabel(rateLimitType),
|
|
145
|
+
status,
|
|
146
|
+
utilization,
|
|
147
|
+
usedPercent,
|
|
148
|
+
remainingPercent,
|
|
149
|
+
resetAt,
|
|
150
|
+
surpassedThreshold: asBoolean(raw['surpassedThreshold'] ?? raw['surpassed_threshold']),
|
|
151
|
+
severity: asString(raw['severity']) || undefined,
|
|
152
|
+
overageStatus: asString(raw['overageStatus'] ?? raw['overage_status']) || undefined,
|
|
153
|
+
overageResetsAt,
|
|
154
|
+
overageDisabledReason: asString(raw['overageDisabledReason'] ?? raw['overage_disabled_reason']) || undefined,
|
|
155
|
+
isUsingOverage: asBoolean(raw['isUsingOverage'] ?? raw['is_using_overage']),
|
|
156
|
+
hasExtraUsageEnabled: asBoolean(raw['hasExtraUsageEnabled'] ?? raw['has_extra_usage_enabled']),
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Parse raw policy limits response into normalized windows.
|
|
161
|
+
* Supports both array and object-map `restrictions` shapes.
|
|
162
|
+
*/
|
|
163
|
+
function buildClaudeQuotaWindows(payload) {
|
|
164
|
+
const rawRestrictions = payload['restrictions'];
|
|
165
|
+
const windows = [];
|
|
166
|
+
if (Array.isArray(rawRestrictions)) {
|
|
167
|
+
for (const item of rawRestrictions) {
|
|
168
|
+
const raw = toObject(item);
|
|
169
|
+
if (!raw)
|
|
170
|
+
continue;
|
|
171
|
+
const window = normalizeRestriction(raw);
|
|
172
|
+
if (window)
|
|
173
|
+
windows.push(window);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
else if (toObject(rawRestrictions)) {
|
|
177
|
+
for (const [key, value] of Object.entries(rawRestrictions)) {
|
|
178
|
+
const raw = toObject(value);
|
|
179
|
+
if (!raw)
|
|
180
|
+
continue;
|
|
181
|
+
const window = normalizeRestriction(raw, key);
|
|
182
|
+
if (window)
|
|
183
|
+
windows.push(window);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
else if (toObject(payload)) {
|
|
187
|
+
// Some responses may contain a single restriction object directly.
|
|
188
|
+
const direct = normalizeRestriction(payload);
|
|
189
|
+
if (direct)
|
|
190
|
+
windows.push(direct);
|
|
191
|
+
}
|
|
192
|
+
const seen = new Set();
|
|
193
|
+
const unique = [];
|
|
194
|
+
for (const window of windows) {
|
|
195
|
+
const key = `${window.rateLimitType}:${window.resetAt ?? ''}:${window.status}`;
|
|
196
|
+
if (seen.has(key))
|
|
197
|
+
continue;
|
|
198
|
+
seen.add(key);
|
|
199
|
+
unique.push(window);
|
|
200
|
+
}
|
|
201
|
+
return unique.sort((a, b) => a.rateLimitType.localeCompare(b.rateLimitType));
|
|
202
|
+
}
|
|
203
|
+
exports.buildClaudeQuotaWindows = buildClaudeQuotaWindows;
|
|
204
|
+
function toEpochMs(iso) {
|
|
205
|
+
if (!iso)
|
|
206
|
+
return null;
|
|
207
|
+
const value = new Date(iso).getTime();
|
|
208
|
+
return isNaN(value) ? null : value;
|
|
209
|
+
}
|
|
210
|
+
function pickMostRestrictiveWeekly(windows) {
|
|
211
|
+
if (windows.length === 0)
|
|
212
|
+
return null;
|
|
213
|
+
return [...windows].sort((a, b) => {
|
|
214
|
+
if (a.remainingPercent !== b.remainingPercent) {
|
|
215
|
+
return a.remainingPercent - b.remainingPercent;
|
|
216
|
+
}
|
|
217
|
+
const aReset = toEpochMs(a.resetAt);
|
|
218
|
+
const bReset = toEpochMs(b.resetAt);
|
|
219
|
+
if (aReset === null && bReset === null)
|
|
220
|
+
return 0;
|
|
221
|
+
if (aReset === null)
|
|
222
|
+
return 1;
|
|
223
|
+
if (bReset === null)
|
|
224
|
+
return -1;
|
|
225
|
+
return aReset - bReset;
|
|
226
|
+
})[0];
|
|
227
|
+
}
|
|
228
|
+
function mapCoreWindow(window) {
|
|
229
|
+
if (!window)
|
|
230
|
+
return null;
|
|
231
|
+
return {
|
|
232
|
+
rateLimitType: window.rateLimitType,
|
|
233
|
+
label: window.label,
|
|
234
|
+
remainingPercent: window.remainingPercent,
|
|
235
|
+
resetAt: window.resetAt,
|
|
236
|
+
status: window.status,
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
const WEEKLY_RATE_LIMIT_TYPES = new Set([
|
|
240
|
+
'seven_day',
|
|
241
|
+
'seven_day_opus',
|
|
242
|
+
'seven_day_sonnet',
|
|
243
|
+
'seven_day_oauth_apps',
|
|
244
|
+
'seven_day_cowork',
|
|
245
|
+
]);
|
|
246
|
+
function isClaudeWeeklyRateLimitType(rateLimitType) {
|
|
247
|
+
return WEEKLY_RATE_LIMIT_TYPES.has(rateLimitType);
|
|
248
|
+
}
|
|
249
|
+
exports.isClaudeWeeklyRateLimitType = isClaudeWeeklyRateLimitType;
|
|
250
|
+
function pickMostRestrictiveClaudeWeeklyWindow(windows) {
|
|
251
|
+
const weeklyCandidates = windows.filter((window) => isClaudeWeeklyRateLimitType(window.rateLimitType));
|
|
252
|
+
return pickMostRestrictiveWeekly(weeklyCandidates);
|
|
253
|
+
}
|
|
254
|
+
exports.pickMostRestrictiveClaudeWeeklyWindow = pickMostRestrictiveClaudeWeeklyWindow;
|
|
255
|
+
/**
|
|
256
|
+
* Build explicit 5h + weekly usage summary from Claude policy windows.
|
|
257
|
+
*/
|
|
258
|
+
function buildClaudeCoreUsageSummary(windows) {
|
|
259
|
+
if (!windows || windows.length === 0) {
|
|
260
|
+
return { fiveHour: null, weekly: null };
|
|
261
|
+
}
|
|
262
|
+
const fiveHourWindow = windows.find((window) => window.rateLimitType === 'five_hour') || null;
|
|
263
|
+
const weeklyWindow = pickMostRestrictiveClaudeWeeklyWindow(windows);
|
|
264
|
+
if (fiveHourWindow && weeklyWindow) {
|
|
265
|
+
return {
|
|
266
|
+
fiveHour: mapCoreWindow(fiveHourWindow),
|
|
267
|
+
weekly: mapCoreWindow(weeklyWindow),
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
// Fallback: infer shortest/longest reset windows from non-overage limits.
|
|
271
|
+
const nonOverage = windows.filter((window) => window.rateLimitType !== 'overage');
|
|
272
|
+
const withReset = nonOverage
|
|
273
|
+
.map((window) => ({
|
|
274
|
+
window,
|
|
275
|
+
resetMs: toEpochMs(window.resetAt),
|
|
276
|
+
}))
|
|
277
|
+
.filter((entry) => entry.resetMs !== null)
|
|
278
|
+
.sort((a, b) => a.resetMs - b.resetMs);
|
|
279
|
+
const inferredWeekly = weeklyWindow ||
|
|
280
|
+
[...withReset].reverse().find((entry) => entry.window !== fiveHourWindow)?.window ||
|
|
281
|
+
pickMostRestrictiveWeekly(nonOverage.filter((window) => window !== fiveHourWindow));
|
|
282
|
+
const inferredFiveHour = fiveHourWindow ||
|
|
283
|
+
withReset.find((entry) => entry.window !== inferredWeekly)?.window ||
|
|
284
|
+
pickMostRestrictiveWeekly(nonOverage.filter((window) => window !== inferredWeekly));
|
|
285
|
+
return {
|
|
286
|
+
fiveHour: mapCoreWindow(inferredFiveHour),
|
|
287
|
+
weekly: mapCoreWindow(inferredWeekly),
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
exports.buildClaudeCoreUsageSummary = buildClaudeCoreUsageSummary;
|
|
291
|
+
//# sourceMappingURL=quota-fetcher-claude-normalizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quota-fetcher-claude-normalizer.js","sourceRoot":"","sources":["../../src/cliproxy/quota-fetcher-claude-normalizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Quota Fetcher for Claude (Anthropic) Accounts
|
|
3
|
+
*
|
|
4
|
+
* Fetches policy limits from Claude API and normalizes 5h + weekly windows.
|
|
5
|
+
*/
|
|
6
|
+
import type { ClaudeQuotaResult } from './quota-types';
|
|
7
|
+
import { buildClaudeQuotaWindows, buildClaudeCoreUsageSummary } from './quota-fetcher-claude-normalizer';
|
|
8
|
+
export { buildClaudeQuotaWindows, buildClaudeCoreUsageSummary };
|
|
9
|
+
export declare const CLAUDE_POLICY_LIMITS_URL = "https://api.anthropic.com/api/claude_code/policy_limits";
|
|
10
|
+
/**
|
|
11
|
+
* Fetch quota for a single Claude account.
|
|
12
|
+
*/
|
|
13
|
+
export declare function fetchClaudeQuota(accountId: string, verbose?: boolean): Promise<ClaudeQuotaResult>;
|
|
14
|
+
/**
|
|
15
|
+
* Fetch quota for all Claude accounts.
|
|
16
|
+
*/
|
|
17
|
+
export declare function fetchAllClaudeQuotas(verbose?: boolean): Promise<{
|
|
18
|
+
account: string;
|
|
19
|
+
quota: ClaudeQuotaResult;
|
|
20
|
+
}[]>;
|
|
21
|
+
//# sourceMappingURL=quota-fetcher-claude.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quota-fetcher-claude.d.ts","sourceRoot":"","sources":["../../src/cliproxy/quota-fetcher-claude.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,CAAC;AAEhE,eAAO,MAAM,wBAAwB,4DAA4D,CAAC;AAgJlG;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,OAAO,UAAQ,GACd,OAAO,CAAC,iBAAiB,CAAC,CA+G5B;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,UAAQ,GACd,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,EAAE,CAAC,CAS1D"}
|