@kaitranntt/ccs 7.46.0 → 7.47.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 +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 +77 -102
- 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/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/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 +27 -0
- package/dist/cliproxy/provider-capabilities.d.ts.map +1 -1
- package/dist/cliproxy/provider-capabilities.js +138 -14
- 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/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 +112 -36
- 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 +2 -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 +60 -118
- 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 +100 -35
- 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 +33 -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/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.d.ts.map +1 -1
- package/dist/commands/persist-command.js +77 -50
- 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/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/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/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/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-X_MzF4zx.js} +1 -1
- package/dist/ui/assets/{alert-dialog-Dj5MBrPS.js → alert-dialog-Cw-P0uZM.js} +1 -1
- package/dist/ui/assets/{api-BIGOe-xE.js → api-BcwoMARb.js} +1 -1
- package/dist/ui/assets/{auth-section-BFJ1CozG.js → auth-section-BqSvZ_5J.js} +1 -1
- package/dist/ui/assets/{backups-section-pfBnyzOg.js → backups-section-CGOotFRy.js} +1 -1
- package/dist/ui/assets/cliproxy-CWhMMbBa.js +3 -0
- package/dist/ui/assets/cliproxy-control-panel-DAirmXSD.js +1 -0
- package/dist/ui/assets/{confirm-dialog-gV1ql3Ts.js → confirm-dialog-BjFaR6B6.js} +1 -1
- package/dist/ui/assets/copilot-DCp1_azM.js +3 -0
- package/dist/ui/assets/cursor-DEUfi3ZN.js +1 -0
- package/dist/ui/assets/default-ports-1QQSffYX.js +1 -0
- package/dist/ui/assets/{globalenv-section-CYGF1tAO.js → globalenv-section-Cu4vanAq.js} +1 -1
- package/dist/ui/assets/{health-CmKa7iS7.js → health-ChhDKSPa.js} +1 -1
- package/dist/ui/assets/index-BZ51hp4b.js +1 -0
- package/dist/ui/assets/{index-DZJVwR0i.js → index-CHArFy3-.js} +1 -1
- package/dist/ui/assets/{index-BhguKKYm.js → index-FdjOeYn2.js} +1 -1
- package/dist/ui/assets/index-UX7yyQwV.js +47 -0
- package/dist/ui/assets/index-s9bW25En.js +1 -0
- package/dist/ui/assets/{proxy-status-widget-B0TxmrB5.js → proxy-status-widget-BLLMunUG.js} +1 -1
- package/dist/ui/assets/{separator-D_VeEEnJ.js → separator-Nl0gQ6QN.js} +1 -1
- package/dist/ui/assets/{shared-Buwj9ixP.js → shared-D7ILUK83.js} +1 -1
- package/dist/ui/assets/{switch-DPU26P6C.js → switch-P5H3pmrk.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/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/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/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/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/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/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/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-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
|
@@ -1,74 +1,163 @@
|
|
|
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.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',
|
|
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
|
+
/** Providers currently supported by quota status fetchers. */
|
|
116
|
+
exports.QUOTA_SUPPORTED_PROVIDER_IDS = Object.freeze([
|
|
117
|
+
'agy',
|
|
118
|
+
'codex',
|
|
119
|
+
'gemini',
|
|
120
|
+
'ghcp',
|
|
121
|
+
]);
|
|
122
|
+
const QUOTA_SUPPORTED_PROVIDER_SET = new Set(exports.QUOTA_SUPPORTED_PROVIDER_IDS);
|
|
123
|
+
exports.QUOTA_PROVIDER_OPTION_VALUES = Object.freeze([
|
|
124
|
+
...exports.QUOTA_SUPPORTED_PROVIDER_IDS,
|
|
125
|
+
...exports.QUOTA_SUPPORTED_PROVIDER_IDS.flatMap((provider) => exports.PROVIDER_CAPABILITIES[provider].aliases),
|
|
126
|
+
'all',
|
|
127
|
+
].filter((value, index, values) => values.indexOf(value) === index));
|
|
128
|
+
exports.QUOTA_PROVIDER_HELP_TEXT = exports.QUOTA_PROVIDER_OPTION_VALUES.join(', ');
|
|
129
|
+
function buildProviderMap(valueFor) {
|
|
130
|
+
return exports.CLIPROXY_PROVIDER_IDS.reduce((acc, provider) => {
|
|
131
|
+
acc[provider] = valueFor(provider);
|
|
132
|
+
return acc;
|
|
133
|
+
}, {});
|
|
134
|
+
}
|
|
135
|
+
exports.buildProviderMap = buildProviderMap;
|
|
61
136
|
const PROVIDER_ID_SET = new Set(exports.CLIPROXY_PROVIDER_IDS);
|
|
62
|
-
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
137
|
+
function buildProviderAliasMap(capabilities = exports.PROVIDER_CAPABILITIES) {
|
|
138
|
+
const aliasMap = new Map();
|
|
139
|
+
const providers = Object.keys(capabilities);
|
|
140
|
+
const registerAlias = (alias, provider) => {
|
|
141
|
+
const normalized = alias.trim().toLowerCase();
|
|
142
|
+
if (!normalized) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
const existingProvider = aliasMap.get(normalized);
|
|
146
|
+
if (existingProvider && existingProvider !== provider) {
|
|
147
|
+
throw new Error(`Provider alias collision for "${normalized}": ${existingProvider} and ${provider}`);
|
|
148
|
+
}
|
|
149
|
+
aliasMap.set(normalized, provider);
|
|
150
|
+
};
|
|
151
|
+
for (const provider of providers) {
|
|
152
|
+
registerAlias(provider, provider);
|
|
153
|
+
for (const alias of capabilities[provider].aliases) {
|
|
154
|
+
registerAlias(alias, provider);
|
|
68
155
|
}
|
|
69
156
|
}
|
|
70
|
-
return
|
|
71
|
-
}
|
|
157
|
+
return aliasMap;
|
|
158
|
+
}
|
|
159
|
+
exports.buildProviderAliasMap = buildProviderAliasMap;
|
|
160
|
+
const PROVIDER_ALIAS_MAP = buildProviderAliasMap();
|
|
72
161
|
function isCLIProxyProvider(provider) {
|
|
73
162
|
return PROVIDER_ID_SET.has(provider);
|
|
74
163
|
}
|
|
@@ -81,6 +170,10 @@ function getProviderDisplayName(provider) {
|
|
|
81
170
|
return exports.PROVIDER_CAPABILITIES[provider].displayName;
|
|
82
171
|
}
|
|
83
172
|
exports.getProviderDisplayName = getProviderDisplayName;
|
|
173
|
+
function getProviderDescription(provider) {
|
|
174
|
+
return exports.PROVIDER_CAPABILITIES[provider].description;
|
|
175
|
+
}
|
|
176
|
+
exports.getProviderDescription = getProviderDescription;
|
|
84
177
|
function getProvidersByOAuthFlow(flowType) {
|
|
85
178
|
return exports.CLIPROXY_PROVIDER_IDS.filter((provider) => exports.PROVIDER_CAPABILITIES[provider].oauthFlow === flowType);
|
|
86
179
|
}
|
|
@@ -93,9 +186,40 @@ function getOAuthCallbackPort(provider) {
|
|
|
93
186
|
return exports.PROVIDER_CAPABILITIES[provider].callbackPort;
|
|
94
187
|
}
|
|
95
188
|
exports.getOAuthCallbackPort = getOAuthCallbackPort;
|
|
189
|
+
function getCLIProxyCallbackProviderName(provider) {
|
|
190
|
+
return exports.PROVIDER_CAPABILITIES[provider].callbackProviderName;
|
|
191
|
+
}
|
|
192
|
+
exports.getCLIProxyCallbackProviderName = getCLIProxyCallbackProviderName;
|
|
193
|
+
function getCLIProxyAuthUrlProviderName(provider) {
|
|
194
|
+
return exports.PROVIDER_CAPABILITIES[provider].authUrlProviderName;
|
|
195
|
+
}
|
|
196
|
+
exports.getCLIProxyAuthUrlProviderName = getCLIProxyAuthUrlProviderName;
|
|
197
|
+
function getTokenRefreshOwnership(provider) {
|
|
198
|
+
return exports.PROVIDER_CAPABILITIES[provider].refreshOwnership;
|
|
199
|
+
}
|
|
200
|
+
exports.getTokenRefreshOwnership = getTokenRefreshOwnership;
|
|
201
|
+
function isRefreshDelegatedToCLIProxy(provider) {
|
|
202
|
+
return exports.PROVIDER_CAPABILITIES[provider].refreshOwnership === 'cliproxy';
|
|
203
|
+
}
|
|
204
|
+
exports.isRefreshDelegatedToCLIProxy = isRefreshDelegatedToCLIProxy;
|
|
205
|
+
function getProviderAuthFilePrefixes(provider) {
|
|
206
|
+
return exports.PROVIDER_CAPABILITIES[provider].authFilePrefixes;
|
|
207
|
+
}
|
|
208
|
+
exports.getProviderAuthFilePrefixes = getProviderAuthFilePrefixes;
|
|
209
|
+
function getProviderTokenTypeValues(provider) {
|
|
210
|
+
return exports.PROVIDER_CAPABILITIES[provider].tokenTypeValues;
|
|
211
|
+
}
|
|
212
|
+
exports.getProviderTokenTypeValues = getProviderTokenTypeValues;
|
|
96
213
|
function mapExternalProviderName(providerName) {
|
|
97
|
-
const normalized = providerName.toLowerCase();
|
|
214
|
+
const normalized = providerName.trim().toLowerCase();
|
|
215
|
+
if (!normalized) {
|
|
216
|
+
return null;
|
|
217
|
+
}
|
|
98
218
|
return PROVIDER_ALIAS_MAP.get(normalized) ?? null;
|
|
99
219
|
}
|
|
100
220
|
exports.mapExternalProviderName = mapExternalProviderName;
|
|
221
|
+
function isQuotaSupportedProvider(provider) {
|
|
222
|
+
return QUOTA_SUPPORTED_PROVIDER_SET.has(provider);
|
|
223
|
+
}
|
|
224
|
+
exports.isQuotaSupportedProvider = isQuotaSupportedProvider;
|
|
101
225
|
//# sourceMappingURL=provider-capabilities.js.map
|
|
@@ -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"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Quota Fetcher for GitHub Copilot OAuth (ghcp) Accounts
|
|
4
|
+
*
|
|
5
|
+
* Fetches quota information from GitHub `/copilot_internal/user` endpoint
|
|
6
|
+
* using the account token managed by CLIProxy auth flow.
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
+
if (mod && mod.__esModule) return mod;
|
|
26
|
+
var result = {};
|
|
27
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
+
__setModuleDefault(result, mod);
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
31
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
+
exports.extractGhcpAccessToken = exports.normalizeGhcpSnapshot = exports.fetchAllGhcpQuotas = exports.fetchGhcpQuota = void 0;
|
|
33
|
+
const fs = __importStar(require("node:fs"));
|
|
34
|
+
const account_manager_1 = require("./account-manager");
|
|
35
|
+
const percentage_1 = require("../utils/percentage");
|
|
36
|
+
const GHCP_USAGE_URL = 'https://api.github.com/copilot_internal/user';
|
|
37
|
+
const GHCP_USAGE_TIMEOUT_MS = 10000;
|
|
38
|
+
/**
|
|
39
|
+
* Mirrors headers currently accepted by GitHub Copilot internal usage endpoint.
|
|
40
|
+
* Keep aligned with upstream Copilot client/API changes when quota calls break.
|
|
41
|
+
*/
|
|
42
|
+
const GHCP_USER_AGENT = 'GitHubCopilotChat/0.26.7';
|
|
43
|
+
const GHCP_API_VERSION = '2025-04-01';
|
|
44
|
+
function normalizeSnapshot(raw) {
|
|
45
|
+
const entitlement = Number(raw?.entitlement ?? 0);
|
|
46
|
+
const remainingRaw = raw?.remaining ?? raw?.quota_remaining ?? 0;
|
|
47
|
+
const remaining = Number(remainingRaw);
|
|
48
|
+
const safeEntitlement = Number.isFinite(entitlement) ? Math.max(0, entitlement) : 0;
|
|
49
|
+
const safeRemaining = Number.isFinite(remaining) ? Math.max(0, remaining) : 0;
|
|
50
|
+
const used = Math.max(0, safeEntitlement - safeRemaining);
|
|
51
|
+
const percentRemainingRaw = typeof raw?.percent_remaining === 'number' ? raw.percent_remaining : null;
|
|
52
|
+
const percentRemaining = percentRemainingRaw !== null
|
|
53
|
+
? (0, percentage_1.clampPercent)(percentRemainingRaw)
|
|
54
|
+
: safeEntitlement > 0
|
|
55
|
+
? (0, percentage_1.clampPercent)((safeRemaining / safeEntitlement) * 100)
|
|
56
|
+
: 0;
|
|
57
|
+
return {
|
|
58
|
+
entitlement: safeEntitlement,
|
|
59
|
+
remaining: safeRemaining,
|
|
60
|
+
used,
|
|
61
|
+
percentRemaining,
|
|
62
|
+
percentUsed: (0, percentage_1.clampPercent)(100 - percentRemaining),
|
|
63
|
+
unlimited: Boolean(raw?.unlimited),
|
|
64
|
+
overageCount: typeof raw?.overage_count === 'number' && Number.isFinite(raw.overage_count)
|
|
65
|
+
? Math.max(0, raw.overage_count)
|
|
66
|
+
: 0,
|
|
67
|
+
overagePermitted: Boolean(raw?.overage_permitted),
|
|
68
|
+
quotaId: raw?.quota_id || null,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
exports.normalizeGhcpSnapshot = normalizeSnapshot;
|
|
72
|
+
function extractAccessToken(tokenData) {
|
|
73
|
+
if (typeof tokenData.access_token === 'string' && tokenData.access_token.trim()) {
|
|
74
|
+
return tokenData.access_token.trim();
|
|
75
|
+
}
|
|
76
|
+
if (tokenData.token &&
|
|
77
|
+
typeof tokenData.token === 'object' &&
|
|
78
|
+
typeof tokenData.token.access_token === 'string' &&
|
|
79
|
+
tokenData.token.access_token.trim()) {
|
|
80
|
+
return tokenData.token.access_token.trim();
|
|
81
|
+
}
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
exports.extractGhcpAccessToken = extractAccessToken;
|
|
85
|
+
function readGhcpAccessToken(accountId) {
|
|
86
|
+
const account = (0, account_manager_1.getProviderAccounts)('ghcp').find((item) => item.id === accountId);
|
|
87
|
+
if (!account) {
|
|
88
|
+
return { accessToken: null, error: `Account not found: ${accountId}` };
|
|
89
|
+
}
|
|
90
|
+
const tokenPath = (0, account_manager_1.getAccountTokenPath)(account);
|
|
91
|
+
if (!tokenPath || !fs.existsSync(tokenPath)) {
|
|
92
|
+
return { accessToken: null, error: 'Auth token file not found' };
|
|
93
|
+
}
|
|
94
|
+
try {
|
|
95
|
+
const raw = fs.readFileSync(tokenPath, 'utf-8');
|
|
96
|
+
const data = JSON.parse(raw);
|
|
97
|
+
const accessToken = extractAccessToken(data);
|
|
98
|
+
if (!accessToken) {
|
|
99
|
+
return { accessToken: null, error: 'No access token in auth file' };
|
|
100
|
+
}
|
|
101
|
+
return { accessToken };
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
return {
|
|
105
|
+
accessToken: null,
|
|
106
|
+
error: error instanceof Error ? error.message : 'Failed to parse auth token file',
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
function buildEmptyQuotaResult(error, accountId) {
|
|
111
|
+
return {
|
|
112
|
+
success: false,
|
|
113
|
+
planType: null,
|
|
114
|
+
quotaResetDate: null,
|
|
115
|
+
snapshots: {
|
|
116
|
+
premiumInteractions: normalizeSnapshot(),
|
|
117
|
+
chat: normalizeSnapshot(),
|
|
118
|
+
completions: normalizeSnapshot(),
|
|
119
|
+
},
|
|
120
|
+
lastUpdated: Date.now(),
|
|
121
|
+
error,
|
|
122
|
+
accountId,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
function normalizeUsageResponse(raw) {
|
|
126
|
+
const snapshots = raw.quota_snapshots || {};
|
|
127
|
+
return {
|
|
128
|
+
success: true,
|
|
129
|
+
planType: raw.copilot_plan ?? null,
|
|
130
|
+
quotaResetDate: raw.quota_reset_date ?? null,
|
|
131
|
+
snapshots: {
|
|
132
|
+
premiumInteractions: normalizeSnapshot(snapshots.premium_interactions),
|
|
133
|
+
chat: normalizeSnapshot(snapshots.chat),
|
|
134
|
+
completions: normalizeSnapshot(snapshots.completions),
|
|
135
|
+
},
|
|
136
|
+
lastUpdated: Date.now(),
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Fetch quota for one ghcp account.
|
|
141
|
+
*/
|
|
142
|
+
async function fetchGhcpQuota(accountId, verbose = false) {
|
|
143
|
+
const { accessToken, error } = readGhcpAccessToken(accountId);
|
|
144
|
+
if (!accessToken) {
|
|
145
|
+
// Safe diagnostic: accountId + generic error only (never log token values/file contents).
|
|
146
|
+
if (verbose)
|
|
147
|
+
console.error(`[!] ghcp quota token error (${accountId}): ${error}`);
|
|
148
|
+
return buildEmptyQuotaResult(error || 'Failed to load auth token', accountId);
|
|
149
|
+
}
|
|
150
|
+
if (verbose)
|
|
151
|
+
console.error(`[i] Fetching ghcp quota for ${accountId}...`);
|
|
152
|
+
const controller = new AbortController();
|
|
153
|
+
const timeoutId = setTimeout(() => controller.abort(), GHCP_USAGE_TIMEOUT_MS);
|
|
154
|
+
try {
|
|
155
|
+
const response = await fetch(GHCP_USAGE_URL, {
|
|
156
|
+
method: 'GET',
|
|
157
|
+
signal: controller.signal,
|
|
158
|
+
headers: {
|
|
159
|
+
Accept: 'application/json',
|
|
160
|
+
Authorization: `token ${accessToken}`,
|
|
161
|
+
'User-Agent': GHCP_USER_AGENT,
|
|
162
|
+
'x-github-api-version': GHCP_API_VERSION,
|
|
163
|
+
},
|
|
164
|
+
});
|
|
165
|
+
clearTimeout(timeoutId);
|
|
166
|
+
if (response.status === 401 || response.status === 403) {
|
|
167
|
+
return {
|
|
168
|
+
...buildEmptyQuotaResult('Authentication expired or invalid', accountId),
|
|
169
|
+
needsReauth: true,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
if (response.status === 429) {
|
|
173
|
+
return buildEmptyQuotaResult('Rate limited - try again later', accountId);
|
|
174
|
+
}
|
|
175
|
+
if (!response.ok) {
|
|
176
|
+
return buildEmptyQuotaResult(`GitHub API error: ${response.status}`, accountId);
|
|
177
|
+
}
|
|
178
|
+
const data = (await response.json());
|
|
179
|
+
return {
|
|
180
|
+
...normalizeUsageResponse(data),
|
|
181
|
+
accountId,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
catch (error) {
|
|
185
|
+
clearTimeout(timeoutId);
|
|
186
|
+
const message = error instanceof Error && error.name === 'AbortError'
|
|
187
|
+
? 'Request timeout'
|
|
188
|
+
: error instanceof Error
|
|
189
|
+
? error.message
|
|
190
|
+
: 'Unknown error';
|
|
191
|
+
return buildEmptyQuotaResult(message, accountId);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
exports.fetchGhcpQuota = fetchGhcpQuota;
|
|
195
|
+
/**
|
|
196
|
+
* Fetch quota for all ghcp accounts.
|
|
197
|
+
*/
|
|
198
|
+
async function fetchAllGhcpQuotas(verbose = false) {
|
|
199
|
+
const accounts = (0, account_manager_1.getProviderAccounts)('ghcp');
|
|
200
|
+
const results = await Promise.all(accounts.map(async (account) => ({
|
|
201
|
+
account: account.id,
|
|
202
|
+
quota: await fetchGhcpQuota(account.id, verbose),
|
|
203
|
+
})));
|
|
204
|
+
return results;
|
|
205
|
+
}
|
|
206
|
+
exports.fetchAllGhcpQuotas = fetchAllGhcpQuotas;
|
|
207
|
+
//# sourceMappingURL=quota-fetcher-ghcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quota-fetcher-ghcp.js","sourceRoot":"","sources":["../../src/cliproxy/quota-fetcher-ghcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* Shared Quota Type Definitions
|
|
3
3
|
*
|
|
4
4
|
* Unified types for multi-provider quota system.
|
|
5
|
-
* Supports Antigravity, Codex,
|
|
5
|
+
* Supports Antigravity, Codex, Gemini CLI, and GitHub Copilot OAuth providers.
|
|
6
6
|
*/
|
|
7
7
|
/** Supported quota providers */
|
|
8
|
-
export type QuotaProvider = 'agy' | 'codex' | 'gemini';
|
|
8
|
+
export type QuotaProvider = 'agy' | 'codex' | 'gemini' | 'ghcp';
|
|
9
9
|
export type { QuotaResult as AntigravityQuotaResult } from './quota-fetcher';
|
|
10
10
|
/**
|
|
11
11
|
* Codex quota window (primary, secondary, code review)
|
|
@@ -101,4 +101,51 @@ export interface GeminiCliQuotaResult {
|
|
|
101
101
|
/** True if token is expired and needs re-authentication */
|
|
102
102
|
needsReauth?: boolean;
|
|
103
103
|
}
|
|
104
|
+
/**
|
|
105
|
+
* GitHub Copilot quota snapshot.
|
|
106
|
+
*/
|
|
107
|
+
export interface GhcpQuotaSnapshot {
|
|
108
|
+
/** Total quota allocation for this category */
|
|
109
|
+
entitlement: number;
|
|
110
|
+
/** Remaining quota count */
|
|
111
|
+
remaining: number;
|
|
112
|
+
/** Used quota count */
|
|
113
|
+
used: number;
|
|
114
|
+
/** Remaining quota percentage (0-100) */
|
|
115
|
+
percentRemaining: number;
|
|
116
|
+
/** Used quota percentage (0-100) */
|
|
117
|
+
percentUsed: number;
|
|
118
|
+
/** Whether this quota category is unlimited */
|
|
119
|
+
unlimited: boolean;
|
|
120
|
+
/** Overage usage count */
|
|
121
|
+
overageCount: number;
|
|
122
|
+
/** Whether overage is permitted */
|
|
123
|
+
overagePermitted: boolean;
|
|
124
|
+
/** Upstream quota identifier if available */
|
|
125
|
+
quotaId: string | null;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* GitHub Copilot quota fetch result.
|
|
129
|
+
*/
|
|
130
|
+
export interface GhcpQuotaResult {
|
|
131
|
+
/** Whether fetch succeeded */
|
|
132
|
+
success: boolean;
|
|
133
|
+
/** Copilot plan type (individual/business/enterprise/free) */
|
|
134
|
+
planType: string | null;
|
|
135
|
+
/** Quota reset date/time (ISO string) */
|
|
136
|
+
quotaResetDate: string | null;
|
|
137
|
+
snapshots: {
|
|
138
|
+
premiumInteractions: GhcpQuotaSnapshot;
|
|
139
|
+
chat: GhcpQuotaSnapshot;
|
|
140
|
+
completions: GhcpQuotaSnapshot;
|
|
141
|
+
};
|
|
142
|
+
/** Timestamp of fetch */
|
|
143
|
+
lastUpdated: number;
|
|
144
|
+
/** Error message if fetch failed */
|
|
145
|
+
error?: string;
|
|
146
|
+
/** Account ID this quota belongs to */
|
|
147
|
+
accountId?: string;
|
|
148
|
+
/** True if token is expired/invalid and user needs re-authentication */
|
|
149
|
+
needsReauth?: boolean;
|
|
150
|
+
}
|
|
104
151
|
//# sourceMappingURL=quota-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-types.d.ts","sourceRoot":"","sources":["../../src/cliproxy/quota-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gCAAgC;AAChC,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"quota-types.d.ts","sourceRoot":"","sources":["../../src/cliproxy/quota-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Shared Quota Type Definitions
|
|
4
4
|
*
|
|
5
5
|
* Unified types for multi-provider quota system.
|
|
6
|
-
* Supports Antigravity, Codex,
|
|
6
|
+
* Supports Antigravity, Codex, Gemini CLI, and GitHub Copilot OAuth providers.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
//# sourceMappingURL=quota-types.js.map
|
|
@@ -55,6 +55,11 @@ export declare function capLevelAtMax(level: string, maxLevel: string | undefine
|
|
|
55
55
|
*/
|
|
56
56
|
export declare const THINKING_OFF_VALUES: readonly ["off", "none", "disabled", "0"];
|
|
57
57
|
export declare const THINKING_AUTO_VALUE = "auto";
|
|
58
|
+
/**
|
|
59
|
+
* Check whether a value should disable thinking.
|
|
60
|
+
* Accepts common string aliases and numeric 0.
|
|
61
|
+
*/
|
|
62
|
+
export declare function isThinkingOffValue(value: unknown): boolean;
|
|
58
63
|
/**
|
|
59
64
|
* Validate a thinking value against model capabilities
|
|
60
65
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thinking-validator.d.ts","sourceRoot":"","sources":["../../src/cliproxy/thinking-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAC1C,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,+CAA+C;IAC/C,KAAK,EAAE,OAAO,CAAC;IACf,oDAAoD;IACpD,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMzD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMtD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,gEAAiE,CAAC;AACpG,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE;;GAEG;AACH,eAAO,MAAM,oBAAoB,sCAAuC,CAAC;AACzE,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAQpC;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,2CAA4C,CAAC;AAC7E,eAAO,MAAM,mBAAmB,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"thinking-validator.d.ts","sourceRoot":"","sources":["../../src/cliproxy/thinking-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAC1C,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,+CAA+C;IAC/C,KAAK,EAAE,OAAO,CAAC;IACf,oDAAoD;IACpD,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMzD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMtD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,gEAAiE,CAAC;AACpG,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE;;GAEG;AACH,eAAO,MAAM,oBAAoB,sCAAuC,CAAC;AACzE,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAQpC;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,2CAA4C,CAAC;AAC7E,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAS1D;AAwCD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GAAG,MAAM,GACrB,wBAAwB,CAqE1B"}
|