@kaitranntt/ccs 7.46.0 → 7.47.0-dev.1
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 +7 -1
- package/dist/api/services/index.d.ts +1 -1
- package/dist/api/services/index.d.ts.map +1 -1
- package/dist/api/services/index.js +3 -1
- package/dist/api/services/index.js.map +1 -1
- package/dist/api/services/provider-presets.d.ts +9 -23
- package/dist/api/services/provider-presets.d.ts.map +1 -1
- package/dist/api/services/provider-presets.js +13 -140
- package/dist/api/services/provider-presets.js.map +1 -1
- package/dist/auth/commands/create-command.d.ts.map +1 -1
- package/dist/auth/commands/create-command.js +3 -2
- package/dist/auth/commands/create-command.js.map +1 -1
- package/dist/auth/profile-detector.d.ts +1 -1
- package/dist/auth/profile-detector.d.ts.map +1 -1
- package/dist/auth/profile-detector.js +31 -13
- package/dist/auth/profile-detector.js.map +1 -1
- package/dist/ccs.js +9 -5
- package/dist/ccs.js.map +1 -1
- package/dist/cliproxy/account-safety.d.ts +13 -0
- package/dist/cliproxy/account-safety.d.ts.map +1 -1
- package/dist/cliproxy/account-safety.js +54 -1
- package/dist/cliproxy/account-safety.js.map +1 -1
- package/dist/cliproxy/auth/auth-types.d.ts +1 -1
- package/dist/cliproxy/auth/auth-types.d.ts.map +1 -1
- package/dist/cliproxy/auth/auth-types.js +12 -55
- package/dist/cliproxy/auth/auth-types.js.map +1 -1
- package/dist/cliproxy/auth/gemini-token-refresh.d.ts +5 -3
- package/dist/cliproxy/auth/gemini-token-refresh.d.ts.map +1 -1
- package/dist/cliproxy/auth/gemini-token-refresh.js +51 -35
- package/dist/cliproxy/auth/gemini-token-refresh.js.map +1 -1
- package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
- package/dist/cliproxy/auth/oauth-handler.js +6 -1
- package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
- package/dist/cliproxy/auth/provider-refreshers/index.d.ts +2 -2
- package/dist/cliproxy/auth/provider-refreshers/index.d.ts.map +1 -1
- package/dist/cliproxy/auth/provider-refreshers/index.js +34 -34
- package/dist/cliproxy/auth/provider-refreshers/index.js.map +1 -1
- package/dist/cliproxy/catalog-cache.d.ts.map +1 -1
- package/dist/cliproxy/catalog-cache.js +2 -1
- package/dist/cliproxy/catalog-cache.js.map +1 -1
- package/dist/cliproxy/codex-reasoning-proxy.d.ts +7 -0
- package/dist/cliproxy/codex-reasoning-proxy.d.ts.map +1 -1
- package/dist/cliproxy/codex-reasoning-proxy.js +54 -9
- package/dist/cliproxy/codex-reasoning-proxy.js.map +1 -1
- package/dist/cliproxy/config/env-builder.d.ts.map +1 -1
- package/dist/cliproxy/config/env-builder.js +56 -15
- package/dist/cliproxy/config/env-builder.js.map +1 -1
- package/dist/cliproxy/config/thinking-config.d.ts.map +1 -1
- package/dist/cliproxy/config/thinking-config.js +11 -9
- 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 +7 -3
- 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 +11 -1
- package/dist/cliproxy/executor/index.js.map +1 -1
- package/dist/cliproxy/executor/retry-handler.d.ts.map +1 -1
- package/dist/cliproxy/executor/retry-handler.js +1 -0
- package/dist/cliproxy/executor/retry-handler.js.map +1 -1
- package/dist/cliproxy/executor/thinking-override-resolver.d.ts +28 -0
- package/dist/cliproxy/executor/thinking-override-resolver.d.ts.map +1 -0
- package/dist/cliproxy/executor/thinking-override-resolver.js +109 -0
- package/dist/cliproxy/executor/thinking-override-resolver.js.map +1 -0
- 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/management-api-client.d.ts.map +1 -1
- package/dist/cliproxy/management-api-client.js +16 -4
- package/dist/cliproxy/management-api-client.js.map +1 -1
- package/dist/cliproxy/model-catalog.d.ts.map +1 -1
- package/dist/cliproxy/model-catalog.js +7 -2
- package/dist/cliproxy/model-catalog.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 +21 -0
- package/dist/cliproxy/provider-capabilities.d.ts.map +1 -1
- package/dist/cliproxy/provider-capabilities.js +116 -13
- package/dist/cliproxy/provider-capabilities.js.map +1 -1
- package/dist/cliproxy/quota-fetcher-ghcp.d.ts +38 -0
- package/dist/cliproxy/quota-fetcher-ghcp.d.ts.map +1 -0
- package/dist/cliproxy/quota-fetcher-ghcp.js +207 -0
- package/dist/cliproxy/quota-fetcher-ghcp.js.map +1 -0
- package/dist/cliproxy/quota-types.d.ts +49 -2
- package/dist/cliproxy/quota-types.d.ts.map +1 -1
- package/dist/cliproxy/quota-types.js +1 -1
- package/dist/cliproxy/thinking-validator.d.ts +5 -0
- package/dist/cliproxy/thinking-validator.d.ts.map +1 -1
- package/dist/cliproxy/thinking-validator.js +18 -6
- package/dist/cliproxy/thinking-validator.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/commands/api-command.d.ts.map +1 -1
- package/dist/commands/api-command.js +27 -12
- package/dist/commands/api-command.js.map +1 -1
- package/dist/commands/cliproxy/help-subcommand.js +1 -1
- package/dist/commands/cliproxy/help-subcommand.js.map +1 -1
- package/dist/commands/cliproxy/index.d.ts.map +1 -1
- package/dist/commands/cliproxy/index.js +17 -9
- package/dist/commands/cliproxy/index.js.map +1 -1
- package/dist/commands/cliproxy/quota-subcommand.d.ts +1 -1
- package/dist/commands/cliproxy/quota-subcommand.d.ts.map +1 -1
- package/dist/commands/cliproxy/quota-subcommand.js +56 -1
- 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 +16 -0
- package/dist/commands/config-command.js.map +1 -1
- package/dist/commands/config-thinking-command.d.ts +9 -0
- package/dist/commands/config-thinking-command.d.ts.map +1 -0
- package/dist/commands/config-thinking-command.js +237 -0
- package/dist/commands/config-thinking-command.js.map +1 -0
- package/dist/commands/config-thinking-parser.d.ts +37 -0
- package/dist/commands/config-thinking-parser.d.ts.map +1 -0
- package/dist/commands/config-thinking-parser.js +135 -0
- package/dist/commands/config-thinking-parser.js.map +1 -0
- package/dist/commands/copilot-command.d.ts.map +1 -1
- package/dist/commands/copilot-command.js +51 -0
- package/dist/commands/copilot-command.js.map +1 -1
- package/dist/commands/env-command.d.ts.map +1 -1
- package/dist/commands/env-command.js +12 -4
- package/dist/commands/env-command.js.map +1 -1
- package/dist/commands/help-command.d.ts.map +1 -1
- package/dist/commands/help-command.js +8 -2
- package/dist/commands/help-command.js.map +1 -1
- package/dist/commands/persist-command.js +1 -1
- package/dist/commands/persist-command.js.map +1 -1
- package/dist/commands/setup-command.d.ts.map +1 -1
- package/dist/commands/setup-command.js +5 -4
- package/dist/commands/setup-command.js.map +1 -1
- package/dist/commands/version-command.d.ts.map +1 -1
- package/dist/commands/version-command.js +16 -12
- package/dist/commands/version-command.js.map +1 -1
- package/dist/config/migration-manager.d.ts.map +1 -1
- package/dist/config/migration-manager.js +51 -10
- package/dist/config/migration-manager.js.map +1 -1
- package/dist/config/unified-config-types.d.ts +1 -1
- package/dist/copilot/copilot-executor.d.ts.map +1 -1
- package/dist/copilot/copilot-executor.js +3 -2
- package/dist/copilot/copilot-executor.js.map +1 -1
- package/dist/copilot/copilot-usage.d.ts +16 -0
- package/dist/copilot/copilot-usage.d.ts.map +1 -0
- package/dist/copilot/copilot-usage.js +117 -0
- package/dist/copilot/copilot-usage.js.map +1 -0
- package/dist/copilot/index.d.ts +1 -0
- package/dist/copilot/index.d.ts.map +1 -1
- package/dist/copilot/index.js +6 -1
- package/dist/copilot/index.js.map +1 -1
- package/dist/copilot/types.d.ts +31 -0
- package/dist/copilot/types.d.ts.map +1 -1
- package/dist/delegation/delegation-handler.js +1 -1
- package/dist/delegation/delegation-handler.js.map +1 -1
- package/dist/delegation/headless-executor.d.ts +1 -1
- package/dist/delegation/headless-executor.d.ts.map +1 -1
- package/dist/delegation/headless-executor.js +14 -5
- package/dist/delegation/headless-executor.js.map +1 -1
- package/dist/management/checks/system-check.d.ts.map +1 -1
- package/dist/management/checks/system-check.js +2 -0
- package/dist/management/checks/system-check.js.map +1 -1
- package/dist/shared/provider-preset-catalog.d.ts +39 -0
- package/dist/shared/provider-preset-catalog.d.ts.map +1 -0
- package/dist/shared/provider-preset-catalog.js +241 -0
- package/dist/shared/provider-preset-catalog.js.map +1 -0
- package/dist/targets/claude-adapter.js +1 -1
- package/dist/targets/claude-adapter.js.map +1 -1
- package/dist/ui/assets/{accounts-DSbC2KOq.js → accounts-BiL_RD2P.js} +1 -1
- package/dist/ui/assets/{alert-dialog-Dj5MBrPS.js → alert-dialog-BoSPpkH2.js} +1 -1
- package/dist/ui/assets/{api-BIGOe-xE.js → api-BrHcZxrF.js} +1 -1
- package/dist/ui/assets/{auth-section-BFJ1CozG.js → auth-section-CNEQOji9.js} +1 -1
- package/dist/ui/assets/{backups-section-pfBnyzOg.js → backups-section-CYPJq2Y6.js} +1 -1
- package/dist/ui/assets/cliproxy-CDDlPp51.js +3 -0
- package/dist/ui/assets/cliproxy-control-panel-XSSdoJ3f.js +1 -0
- package/dist/ui/assets/{confirm-dialog-gV1ql3Ts.js → confirm-dialog-JGLPn0Pg.js} +1 -1
- package/dist/ui/assets/copilot-Bt-S8kHA.js +3 -0
- package/dist/ui/assets/cursor-Qg3y30M0.js +1 -0
- package/dist/ui/assets/default-ports-1QQSffYX.js +1 -0
- package/dist/ui/assets/{globalenv-section-CYGF1tAO.js → globalenv-section-Dxrj87dw.js} +1 -1
- package/dist/ui/assets/{health-CmKa7iS7.js → health-Bjnrp81E.js} +1 -1
- package/dist/ui/assets/{index-BhguKKYm.js → index-ApptKWow.js} +1 -1
- package/dist/ui/assets/index-Ce5AiHY_.js +47 -0
- package/dist/ui/assets/{index-DZJVwR0i.js → index-DOQkTkq-.js} +1 -1
- package/dist/ui/assets/index-UVFLMRYY.js +1 -0
- package/dist/ui/assets/index-XJ9726WB.js +1 -0
- package/dist/ui/assets/{proxy-status-widget-B0TxmrB5.js → proxy-status-widget-PLX0fi09.js} +1 -1
- package/dist/ui/assets/{separator-D_VeEEnJ.js → separator-yZDNbi3M.js} +1 -1
- package/dist/ui/assets/{shared-Buwj9ixP.js → shared-DZ3QOOgF.js} +1 -1
- package/dist/ui/assets/{switch-DPU26P6C.js → switch-DsTWD8-1.js} +1 -1
- package/dist/ui/index.html +1 -1
- package/dist/utils/claude-spawner.d.ts.map +1 -1
- package/dist/utils/claude-spawner.js +2 -1
- package/dist/utils/claude-spawner.js.map +1 -1
- package/dist/utils/delegation-validator.d.ts +1 -1
- package/dist/utils/delegation-validator.d.ts.map +1 -1
- package/dist/utils/delegation-validator.js +10 -4
- package/dist/utils/delegation-validator.js.map +1 -1
- package/dist/utils/percentage.d.ts +5 -0
- package/dist/utils/percentage.d.ts.map +1 -0
- package/dist/utils/percentage.js +13 -0
- package/dist/utils/percentage.js.map +1 -0
- package/dist/utils/profile-compat.d.ts +22 -0
- package/dist/utils/profile-compat.d.ts.map +1 -0
- package/dist/utils/profile-compat.js +54 -0
- package/dist/utils/profile-compat.js.map +1 -0
- package/dist/utils/shell-executor.d.ts +7 -0
- package/dist/utils/shell-executor.d.ts.map +1 -1
- package/dist/utils/shell-executor.js +21 -2
- package/dist/utils/shell-executor.js.map +1 -1
- package/dist/web-server/health/config-checks.d.ts +1 -1
- package/dist/web-server/health/config-checks.d.ts.map +1 -1
- package/dist/web-server/health/config-checks.js +43 -45
- package/dist/web-server/health/config-checks.js.map +1 -1
- package/dist/web-server/model-pricing.d.ts.map +1 -1
- package/dist/web-server/model-pricing.js +29 -16
- package/dist/web-server/model-pricing.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 +57 -3
- package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -1
- package/dist/web-server/routes/copilot-routes.d.ts.map +1 -1
- package/dist/web-server/routes/copilot-routes.js +29 -0
- package/dist/web-server/routes/copilot-routes.js.map +1 -1
- package/dist/web-server/routes/misc-routes.d.ts +2 -0
- package/dist/web-server/routes/misc-routes.d.ts.map +1 -1
- package/dist/web-server/routes/misc-routes.js +38 -7
- package/dist/web-server/routes/misc-routes.js.map +1 -1
- package/package.json +1 -1
- package/dist/ui/assets/cliproxy-DHNUC4SO.js +0 -3
- package/dist/ui/assets/cliproxy-control-panel-CGHjj5lg.js +0 -1
- package/dist/ui/assets/copilot-ECO8m-1E.js +0 -3
- package/dist/ui/assets/cursor-CvqxaXRD.js +0 -1
- package/dist/ui/assets/index-Ctljzi2I.js +0 -1
- package/dist/ui/assets/index-DzvaSlcG.js +0 -47
- package/dist/ui/assets/index-WfdZ4D-M.js +0 -1
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model ID normalization helpers.
|
|
3
|
+
*
|
|
4
|
+
* Handles provider-aware compatibility between dotted and hyphenated Claude
|
|
5
|
+
* model version formats (e.g., 4.6 vs 4-6).
|
|
6
|
+
*/
|
|
7
|
+
/// <reference types="node" />
|
|
8
|
+
import { CLIProxyProvider } from './types';
|
|
9
|
+
/** Env vars that carry model identifiers. */
|
|
10
|
+
export declare const MODEL_ENV_VAR_KEYS: readonly ["ANTHROPIC_MODEL", "ANTHROPIC_DEFAULT_OPUS_MODEL", "ANTHROPIC_DEFAULT_SONNET_MODEL", "ANTHROPIC_DEFAULT_HAIKU_MODEL"];
|
|
11
|
+
type ProviderLike = CLIProxyProvider | string | null | undefined;
|
|
12
|
+
/**
|
|
13
|
+
* Extract provider segment from `/api/provider/{provider}` request paths.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* extractProviderFromPathname('/api/provider/agy/v1/messages')
|
|
17
|
+
* // => 'agy'
|
|
18
|
+
*/
|
|
19
|
+
export declare function extractProviderFromPathname(pathname: string): string | null;
|
|
20
|
+
/** Whether the provider uses Antigravity model routing conventions. */
|
|
21
|
+
export declare function isAntigravityProvider(provider: ProviderLike): boolean;
|
|
22
|
+
/** Normalize Claude dotted major.minor IDs to hyphenated format. */
|
|
23
|
+
export declare function normalizeClaudeDottedMajorMinor(model: string): string;
|
|
24
|
+
/**
|
|
25
|
+
* Normalize only dotted Claude thinking IDs to hyphenated format.
|
|
26
|
+
* Keeps non-thinking dotted IDs unchanged.
|
|
27
|
+
*/
|
|
28
|
+
export declare function normalizeClaudeDottedThinkingMajorMinor(model: string): string;
|
|
29
|
+
/**
|
|
30
|
+
* Normalize model ID for a specific provider.
|
|
31
|
+
* Antigravity requires hyphenated Claude major.minor model IDs.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* normalizeModelIdForProvider('claude-opus-4.6-thinking', 'agy')
|
|
35
|
+
* // => 'claude-opus-4-6-thinking'
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* normalizeModelIdForProvider('claude-opus-4.6-thinking', 'gemini')
|
|
39
|
+
* // => 'claude-opus-4.6-thinking'
|
|
40
|
+
*/
|
|
41
|
+
export declare function normalizeModelIdForProvider(model: string, provider: ProviderLike): string;
|
|
42
|
+
/**
|
|
43
|
+
* Normalize model ID for request routing.
|
|
44
|
+
* - Antigravity routes: normalize all dotted Claude major.minor forms.
|
|
45
|
+
* - Root/composite routes: normalize only thinking forms to avoid mutating
|
|
46
|
+
* valid non-thinking dotted IDs used by other providers.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* normalizeModelIdForRouting('claude-sonnet-4.6-thinking', null)
|
|
50
|
+
* // => 'claude-sonnet-4-6-thinking'
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* normalizeModelIdForRouting('claude-sonnet-4.6', null)
|
|
54
|
+
* // => 'claude-sonnet-4.6'
|
|
55
|
+
*/
|
|
56
|
+
export declare function normalizeModelIdForRouting(model: string, provider: ProviderLike): string;
|
|
57
|
+
/**
|
|
58
|
+
* Normalize model-related env vars for a provider.
|
|
59
|
+
* Returns original object when no changes are required.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* normalizeModelEnvVarsForProvider(
|
|
63
|
+
* { ANTHROPIC_MODEL: 'claude-sonnet-4.6-thinking' },
|
|
64
|
+
* 'agy'
|
|
65
|
+
* )
|
|
66
|
+
* // => { ANTHROPIC_MODEL: 'claude-sonnet-4-6-thinking' }
|
|
67
|
+
*/
|
|
68
|
+
export declare function normalizeModelEnvVarsForProvider(envVars: NodeJS.ProcessEnv, provider: ProviderLike, keys?: readonly string[]): NodeJS.ProcessEnv;
|
|
69
|
+
export {};
|
|
70
|
+
//# sourceMappingURL=model-id-normalizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-id-normalizer.d.ts","sourceRoot":"","sources":["../../src/cliproxy/model-id-normalizer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,6CAA6C;AAC7C,eAAO,MAAM,kBAAkB,iIAKrB,CAAC;AAEX,KAAK,YAAY,GAAG,gBAAgB,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAMjE;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI3E;AAED,uEAAuE;AACvE,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAIrE;AAED,oEAAoE;AACpE,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMrE;AAED;;;GAGG;AACH,wBAAgB,uCAAuC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM7E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,MAAM,CAGzF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,MAAM,CAKxF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,MAAM,CAAC,UAAU,EAC1B,QAAQ,EAAE,YAAY,EACtB,IAAI,GAAE,SAAS,MAAM,EAAuB,GAC3C,MAAM,CAAC,UAAU,CAenB"}
|
|
@@ -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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"}
|
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
import type { CLIProxyProvider } from './types';
|
|
2
2
|
export type OAuthFlowType = 'authorization_code' | 'device_code';
|
|
3
|
+
export type TokenRefreshOwnership = 'ccs' | 'cliproxy' | 'unsupported';
|
|
3
4
|
export interface ProviderCapabilities {
|
|
4
5
|
displayName: string;
|
|
6
|
+
description: string;
|
|
5
7
|
oauthFlow: OAuthFlowType;
|
|
6
8
|
callbackPort: number | null;
|
|
9
|
+
/** Provider name expected by CLIProxyAPI callback endpoint payload. */
|
|
10
|
+
callbackProviderName: string;
|
|
11
|
+
/** Provider name prefix used by CLIProxyAPI auth URL endpoint. */
|
|
12
|
+
authUrlProviderName: string;
|
|
13
|
+
/** Who owns token refresh logic for this provider. */
|
|
14
|
+
refreshOwnership: TokenRefreshOwnership;
|
|
15
|
+
/** Filename prefixes used to identify auth tokens for this provider. */
|
|
16
|
+
authFilePrefixes: readonly string[];
|
|
17
|
+
/** Token JSON "type" values accepted for this provider. */
|
|
18
|
+
tokenTypeValues: readonly string[];
|
|
7
19
|
/**
|
|
8
20
|
* Alternative provider names used by CLIProxyAPI or stats endpoints.
|
|
9
21
|
* These aliases normalize external names to canonical CCS provider IDs.
|
|
@@ -12,11 +24,20 @@ export interface ProviderCapabilities {
|
|
|
12
24
|
}
|
|
13
25
|
export declare const PROVIDER_CAPABILITIES: Record<CLIProxyProvider, ProviderCapabilities>;
|
|
14
26
|
export declare const CLIPROXY_PROVIDER_IDS: readonly CLIProxyProvider[];
|
|
27
|
+
export declare function buildProviderMap<T>(valueFor: (provider: CLIProxyProvider) => T): Record<CLIProxyProvider, T>;
|
|
28
|
+
export declare function buildProviderAliasMap(capabilities?: Record<CLIProxyProvider, ProviderCapabilities>): ReadonlyMap<string, CLIProxyProvider>;
|
|
15
29
|
export declare function isCLIProxyProvider(provider: string): provider is CLIProxyProvider;
|
|
16
30
|
export declare function getProviderCapabilities(provider: CLIProxyProvider): ProviderCapabilities;
|
|
17
31
|
export declare function getProviderDisplayName(provider: CLIProxyProvider): string;
|
|
32
|
+
export declare function getProviderDescription(provider: CLIProxyProvider): string;
|
|
18
33
|
export declare function getProvidersByOAuthFlow(flowType: OAuthFlowType): CLIProxyProvider[];
|
|
19
34
|
export declare function getOAuthFlowType(provider: CLIProxyProvider): OAuthFlowType;
|
|
20
35
|
export declare function getOAuthCallbackPort(provider: CLIProxyProvider): number | null;
|
|
36
|
+
export declare function getCLIProxyCallbackProviderName(provider: CLIProxyProvider): string;
|
|
37
|
+
export declare function getCLIProxyAuthUrlProviderName(provider: CLIProxyProvider): string;
|
|
38
|
+
export declare function getTokenRefreshOwnership(provider: CLIProxyProvider): TokenRefreshOwnership;
|
|
39
|
+
export declare function isRefreshDelegatedToCLIProxy(provider: CLIProxyProvider): boolean;
|
|
40
|
+
export declare function getProviderAuthFilePrefixes(provider: CLIProxyProvider): readonly string[];
|
|
41
|
+
export declare function getProviderTokenTypeValues(provider: CLIProxyProvider): readonly string[];
|
|
21
42
|
export declare function mapExternalProviderName(providerName: string): CLIProxyProvider | null;
|
|
22
43
|
//# 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;
|
|
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,CAGrF"}
|
|
@@ -1,74 +1,149 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mapExternalProviderName = exports.getOAuthCallbackPort = exports.getOAuthFlowType = exports.getProvidersByOAuthFlow = exports.getProviderDisplayName = exports.getProviderCapabilities = exports.isCLIProxyProvider = exports.CLIPROXY_PROVIDER_IDS = exports.PROVIDER_CAPABILITIES = void 0;
|
|
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;
|
|
4
4
|
exports.PROVIDER_CAPABILITIES = {
|
|
5
5
|
gemini: {
|
|
6
6
|
displayName: 'Google Gemini',
|
|
7
|
+
description: 'Gemini Pro/Flash models',
|
|
7
8
|
oauthFlow: 'authorization_code',
|
|
8
9
|
callbackPort: 8085,
|
|
10
|
+
callbackProviderName: 'gemini',
|
|
11
|
+
authUrlProviderName: 'gemini-cli',
|
|
12
|
+
refreshOwnership: 'ccs',
|
|
13
|
+
authFilePrefixes: ['gemini-', 'google-'],
|
|
14
|
+
tokenTypeValues: ['gemini'],
|
|
9
15
|
aliases: ['gemini-cli'],
|
|
10
16
|
},
|
|
11
17
|
codex: {
|
|
12
|
-
displayName: 'Codex',
|
|
18
|
+
displayName: 'OpenAI Codex',
|
|
19
|
+
description: 'GPT-4 and codex models',
|
|
13
20
|
oauthFlow: 'authorization_code',
|
|
14
21
|
callbackPort: 1455,
|
|
22
|
+
callbackProviderName: 'codex',
|
|
23
|
+
authUrlProviderName: 'codex',
|
|
24
|
+
refreshOwnership: 'cliproxy',
|
|
25
|
+
authFilePrefixes: ['codex-', 'openai-'],
|
|
26
|
+
tokenTypeValues: ['codex'],
|
|
15
27
|
aliases: [],
|
|
16
28
|
},
|
|
17
29
|
agy: {
|
|
18
|
-
displayName: '
|
|
30
|
+
displayName: 'Antigravity',
|
|
31
|
+
description: 'Antigravity AI models',
|
|
19
32
|
oauthFlow: 'authorization_code',
|
|
20
33
|
callbackPort: 51121,
|
|
34
|
+
callbackProviderName: 'antigravity',
|
|
35
|
+
authUrlProviderName: 'antigravity',
|
|
36
|
+
refreshOwnership: 'cliproxy',
|
|
37
|
+
authFilePrefixes: ['antigravity-', 'agy-'],
|
|
38
|
+
tokenTypeValues: ['antigravity'],
|
|
21
39
|
aliases: ['antigravity'],
|
|
22
40
|
},
|
|
23
41
|
qwen: {
|
|
24
|
-
displayName: 'Qwen',
|
|
42
|
+
displayName: 'Alibaba Qwen',
|
|
43
|
+
description: 'Qwen Code models',
|
|
25
44
|
oauthFlow: 'device_code',
|
|
26
45
|
callbackPort: null,
|
|
46
|
+
callbackProviderName: 'qwen',
|
|
47
|
+
authUrlProviderName: 'qwen',
|
|
48
|
+
refreshOwnership: 'cliproxy',
|
|
49
|
+
authFilePrefixes: ['qwen-'],
|
|
50
|
+
tokenTypeValues: ['qwen'],
|
|
27
51
|
aliases: [],
|
|
28
52
|
},
|
|
29
53
|
iflow: {
|
|
30
54
|
displayName: 'iFlow',
|
|
55
|
+
description: 'iFlow AI models',
|
|
31
56
|
oauthFlow: 'authorization_code',
|
|
32
57
|
callbackPort: 11451,
|
|
58
|
+
callbackProviderName: 'iflow',
|
|
59
|
+
authUrlProviderName: 'iflow',
|
|
60
|
+
refreshOwnership: 'cliproxy',
|
|
61
|
+
authFilePrefixes: ['iflow-'],
|
|
62
|
+
tokenTypeValues: ['iflow'],
|
|
33
63
|
aliases: [],
|
|
34
64
|
},
|
|
35
65
|
kiro: {
|
|
36
66
|
displayName: 'Kiro (AWS)',
|
|
67
|
+
description: 'AWS CodeWhisperer models',
|
|
37
68
|
oauthFlow: 'device_code',
|
|
38
69
|
callbackPort: null,
|
|
70
|
+
callbackProviderName: 'kiro',
|
|
71
|
+
authUrlProviderName: 'kiro',
|
|
72
|
+
refreshOwnership: 'cliproxy',
|
|
73
|
+
authFilePrefixes: ['kiro-', 'aws-', 'codewhisperer-'],
|
|
74
|
+
tokenTypeValues: ['kiro', 'codewhisperer'],
|
|
39
75
|
aliases: ['codewhisperer'],
|
|
40
76
|
},
|
|
41
77
|
ghcp: {
|
|
42
78
|
displayName: 'GitHub Copilot (OAuth)',
|
|
79
|
+
description: 'GitHub Copilot via OAuth',
|
|
43
80
|
oauthFlow: 'device_code',
|
|
44
81
|
callbackPort: null,
|
|
82
|
+
callbackProviderName: 'copilot',
|
|
83
|
+
authUrlProviderName: 'github',
|
|
84
|
+
refreshOwnership: 'cliproxy',
|
|
85
|
+
authFilePrefixes: ['github-copilot-', 'copilot-', 'gh-'],
|
|
86
|
+
tokenTypeValues: ['github-copilot', 'copilot'],
|
|
45
87
|
aliases: ['github-copilot', 'copilot'],
|
|
46
88
|
},
|
|
47
89
|
claude: {
|
|
48
|
-
displayName: 'Claude',
|
|
90
|
+
displayName: 'Claude (Anthropic)',
|
|
91
|
+
description: 'Claude Opus/Sonnet models',
|
|
49
92
|
oauthFlow: 'authorization_code',
|
|
50
93
|
callbackPort: 54545,
|
|
94
|
+
callbackProviderName: 'anthropic',
|
|
95
|
+
authUrlProviderName: 'anthropic',
|
|
96
|
+
refreshOwnership: 'unsupported',
|
|
97
|
+
authFilePrefixes: ['claude-', 'anthropic-'],
|
|
98
|
+
tokenTypeValues: ['claude', 'anthropic'],
|
|
51
99
|
aliases: ['anthropic'],
|
|
52
100
|
},
|
|
53
101
|
kimi: {
|
|
54
102
|
displayName: 'Kimi (Moonshot)',
|
|
103
|
+
description: 'Moonshot AI K2/K2.5 models',
|
|
55
104
|
oauthFlow: 'device_code',
|
|
56
105
|
callbackPort: null,
|
|
106
|
+
callbackProviderName: 'kimi',
|
|
107
|
+
authUrlProviderName: 'kimi',
|
|
108
|
+
refreshOwnership: 'cliproxy',
|
|
109
|
+
authFilePrefixes: ['kimi-'],
|
|
110
|
+
tokenTypeValues: ['kimi'],
|
|
57
111
|
aliases: ['moonshot'],
|
|
58
112
|
},
|
|
59
113
|
};
|
|
60
114
|
exports.CLIPROXY_PROVIDER_IDS = Object.freeze(Object.keys(exports.PROVIDER_CAPABILITIES));
|
|
115
|
+
function buildProviderMap(valueFor) {
|
|
116
|
+
return exports.CLIPROXY_PROVIDER_IDS.reduce((acc, provider) => {
|
|
117
|
+
acc[provider] = valueFor(provider);
|
|
118
|
+
return acc;
|
|
119
|
+
}, {});
|
|
120
|
+
}
|
|
121
|
+
exports.buildProviderMap = buildProviderMap;
|
|
61
122
|
const PROVIDER_ID_SET = new Set(exports.CLIPROXY_PROVIDER_IDS);
|
|
62
|
-
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
123
|
+
function buildProviderAliasMap(capabilities = exports.PROVIDER_CAPABILITIES) {
|
|
124
|
+
const aliasMap = new Map();
|
|
125
|
+
const providers = Object.keys(capabilities);
|
|
126
|
+
const registerAlias = (alias, provider) => {
|
|
127
|
+
const normalized = alias.trim().toLowerCase();
|
|
128
|
+
if (!normalized) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
const existingProvider = aliasMap.get(normalized);
|
|
132
|
+
if (existingProvider && existingProvider !== provider) {
|
|
133
|
+
throw new Error(`Provider alias collision for "${normalized}": ${existingProvider} and ${provider}`);
|
|
134
|
+
}
|
|
135
|
+
aliasMap.set(normalized, provider);
|
|
136
|
+
};
|
|
137
|
+
for (const provider of providers) {
|
|
138
|
+
registerAlias(provider, provider);
|
|
139
|
+
for (const alias of capabilities[provider].aliases) {
|
|
140
|
+
registerAlias(alias, provider);
|
|
68
141
|
}
|
|
69
142
|
}
|
|
70
|
-
return
|
|
71
|
-
}
|
|
143
|
+
return aliasMap;
|
|
144
|
+
}
|
|
145
|
+
exports.buildProviderAliasMap = buildProviderAliasMap;
|
|
146
|
+
const PROVIDER_ALIAS_MAP = buildProviderAliasMap();
|
|
72
147
|
function isCLIProxyProvider(provider) {
|
|
73
148
|
return PROVIDER_ID_SET.has(provider);
|
|
74
149
|
}
|
|
@@ -81,6 +156,10 @@ function getProviderDisplayName(provider) {
|
|
|
81
156
|
return exports.PROVIDER_CAPABILITIES[provider].displayName;
|
|
82
157
|
}
|
|
83
158
|
exports.getProviderDisplayName = getProviderDisplayName;
|
|
159
|
+
function getProviderDescription(provider) {
|
|
160
|
+
return exports.PROVIDER_CAPABILITIES[provider].description;
|
|
161
|
+
}
|
|
162
|
+
exports.getProviderDescription = getProviderDescription;
|
|
84
163
|
function getProvidersByOAuthFlow(flowType) {
|
|
85
164
|
return exports.CLIPROXY_PROVIDER_IDS.filter((provider) => exports.PROVIDER_CAPABILITIES[provider].oauthFlow === flowType);
|
|
86
165
|
}
|
|
@@ -93,6 +172,30 @@ function getOAuthCallbackPort(provider) {
|
|
|
93
172
|
return exports.PROVIDER_CAPABILITIES[provider].callbackPort;
|
|
94
173
|
}
|
|
95
174
|
exports.getOAuthCallbackPort = getOAuthCallbackPort;
|
|
175
|
+
function getCLIProxyCallbackProviderName(provider) {
|
|
176
|
+
return exports.PROVIDER_CAPABILITIES[provider].callbackProviderName;
|
|
177
|
+
}
|
|
178
|
+
exports.getCLIProxyCallbackProviderName = getCLIProxyCallbackProviderName;
|
|
179
|
+
function getCLIProxyAuthUrlProviderName(provider) {
|
|
180
|
+
return exports.PROVIDER_CAPABILITIES[provider].authUrlProviderName;
|
|
181
|
+
}
|
|
182
|
+
exports.getCLIProxyAuthUrlProviderName = getCLIProxyAuthUrlProviderName;
|
|
183
|
+
function getTokenRefreshOwnership(provider) {
|
|
184
|
+
return exports.PROVIDER_CAPABILITIES[provider].refreshOwnership;
|
|
185
|
+
}
|
|
186
|
+
exports.getTokenRefreshOwnership = getTokenRefreshOwnership;
|
|
187
|
+
function isRefreshDelegatedToCLIProxy(provider) {
|
|
188
|
+
return exports.PROVIDER_CAPABILITIES[provider].refreshOwnership === 'cliproxy';
|
|
189
|
+
}
|
|
190
|
+
exports.isRefreshDelegatedToCLIProxy = isRefreshDelegatedToCLIProxy;
|
|
191
|
+
function getProviderAuthFilePrefixes(provider) {
|
|
192
|
+
return exports.PROVIDER_CAPABILITIES[provider].authFilePrefixes;
|
|
193
|
+
}
|
|
194
|
+
exports.getProviderAuthFilePrefixes = getProviderAuthFilePrefixes;
|
|
195
|
+
function getProviderTokenTypeValues(provider) {
|
|
196
|
+
return exports.PROVIDER_CAPABILITIES[provider].tokenTypeValues;
|
|
197
|
+
}
|
|
198
|
+
exports.getProviderTokenTypeValues = getProviderTokenTypeValues;
|
|
96
199
|
function mapExternalProviderName(providerName) {
|
|
97
200
|
const normalized = providerName.toLowerCase();
|
|
98
201
|
return PROVIDER_ALIAS_MAP.get(normalized) ?? null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-capabilities.js","sourceRoot":"","sources":["../../src/cliproxy/provider-capabilities.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"provider-capabilities.js","sourceRoot":"","sources":["../../src/cliproxy/provider-capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Quota Fetcher for GitHub Copilot OAuth (ghcp) Accounts
|
|
3
|
+
*
|
|
4
|
+
* Fetches quota information from GitHub `/copilot_internal/user` endpoint
|
|
5
|
+
* using the account token managed by CLIProxy auth flow.
|
|
6
|
+
*/
|
|
7
|
+
import type { GhcpQuotaResult, GhcpQuotaSnapshot } from './quota-types';
|
|
8
|
+
interface RawGhcpQuotaSnapshot {
|
|
9
|
+
entitlement?: number;
|
|
10
|
+
overage_count?: number;
|
|
11
|
+
overage_permitted?: boolean;
|
|
12
|
+
percent_remaining?: number;
|
|
13
|
+
quota_id?: string;
|
|
14
|
+
quota_remaining?: number;
|
|
15
|
+
remaining?: number;
|
|
16
|
+
unlimited?: boolean;
|
|
17
|
+
}
|
|
18
|
+
interface TokenData {
|
|
19
|
+
access_token?: string;
|
|
20
|
+
token?: {
|
|
21
|
+
access_token?: string;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
declare function normalizeSnapshot(raw?: RawGhcpQuotaSnapshot): GhcpQuotaSnapshot;
|
|
25
|
+
declare function extractAccessToken(tokenData: TokenData): string | null;
|
|
26
|
+
/**
|
|
27
|
+
* Fetch quota for one ghcp account.
|
|
28
|
+
*/
|
|
29
|
+
export declare function fetchGhcpQuota(accountId: string, verbose?: boolean): Promise<GhcpQuotaResult>;
|
|
30
|
+
/**
|
|
31
|
+
* Fetch quota for all ghcp accounts.
|
|
32
|
+
*/
|
|
33
|
+
export declare function fetchAllGhcpQuotas(verbose?: boolean): Promise<{
|
|
34
|
+
account: string;
|
|
35
|
+
quota: GhcpQuotaResult;
|
|
36
|
+
}[]>;
|
|
37
|
+
export { normalizeSnapshot as normalizeGhcpSnapshot, extractAccessToken as extractGhcpAccessToken };
|
|
38
|
+
//# sourceMappingURL=quota-fetcher-ghcp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quota-fetcher-ghcp.d.ts","sourceRoot":"","sources":["../../src/cliproxy/quota-fetcher-ghcp.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAYxE,UAAU,oBAAoB;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAYD,UAAU,SAAS;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,iBAAS,iBAAiB,CAAC,GAAG,CAAC,EAAE,oBAAoB,GAAG,iBAAiB,CA+BxE;AAED,iBAAS,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAe/D;AA4DD;;GAEG;AACH,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,OAAO,CAAC,eAAe,CAAC,CAyDjG;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,UAAQ,GACd,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,EAAE,CAAC,CASxD;AAGD,OAAO,EAAE,iBAAiB,IAAI,qBAAqB,EAAE,kBAAkB,IAAI,sBAAsB,EAAE,CAAC"}
|