@kaitranntt/ccs 8.4.0 → 8.5.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 +5 -2
- package/config/base-claude.settings.json +1 -1
- package/config/base-glm.settings.json +4 -4
- package/config/base-glmt.settings.json +4 -4
- package/config/base-km.settings.json +4 -4
- package/config/base-mm.settings.json +4 -4
- package/dist/api/services/cliproxy-profile-bridge.d.ts.map +1 -1
- package/dist/api/services/cliproxy-profile-bridge.js +20 -9
- package/dist/api/services/cliproxy-profile-bridge.js.map +1 -1
- package/dist/api/services/profile-lifecycle-validation.d.ts.map +1 -1
- package/dist/api/services/profile-lifecycle-validation.js +2 -0
- package/dist/api/services/profile-lifecycle-validation.js.map +1 -1
- package/dist/api/services/profile-writer.d.ts.map +1 -1
- package/dist/api/services/profile-writer.js +18 -8
- package/dist/api/services/profile-writer.js.map +1 -1
- package/dist/auth/commands/backup-command.d.ts.map +1 -1
- package/dist/auth/commands/backup-command.js +0 -1
- package/dist/auth/commands/backup-command.js.map +1 -1
- package/dist/auth/commands/create-command.d.ts.map +1 -1
- package/dist/auth/commands/create-command.js +4 -14
- package/dist/auth/commands/create-command.js.map +1 -1
- package/dist/auth/commands/default-command.d.ts.map +1 -1
- package/dist/auth/commands/default-command.js +0 -1
- package/dist/auth/commands/default-command.js.map +1 -1
- package/dist/auth/commands/index.d.ts +2 -1
- package/dist/auth/commands/index.d.ts.map +1 -1
- package/dist/auth/commands/index.js +0 -1
- package/dist/auth/commands/index.js.map +1 -1
- package/dist/auth/commands/remove-command.d.ts.map +1 -1
- package/dist/auth/commands/remove-command.js +0 -2
- package/dist/auth/commands/remove-command.js.map +1 -1
- package/dist/auth/commands/resources-command.d.ts.map +1 -1
- package/dist/auth/commands/resources-command.js +0 -1
- package/dist/auth/commands/resources-command.js.map +1 -1
- package/dist/auth/commands/show-command.d.ts.map +1 -1
- package/dist/auth/commands/show-command.js +0 -1
- package/dist/auth/commands/show-command.js.map +1 -1
- package/dist/auth/commands/types.d.ts.map +1 -1
- package/dist/auth/commands/types.js +0 -1
- package/dist/auth/commands/types.js.map +1 -1
- package/dist/auth/profile-registry.d.ts +3 -1
- package/dist/auth/profile-registry.d.ts.map +1 -1
- package/dist/auth/profile-registry.js +21 -15
- package/dist/auth/profile-registry.js.map +1 -1
- package/dist/ccs.js +27 -21
- package/dist/ccs.js.map +1 -1
- package/dist/cliproxy/accounts/account-safety.d.ts.map +1 -1
- package/dist/cliproxy/accounts/account-safety.js +56 -56
- package/dist/cliproxy/accounts/account-safety.js.map +1 -1
- package/dist/cliproxy/auth/antigravity-responsibility.d.ts.map +1 -1
- package/dist/cliproxy/auth/antigravity-responsibility.js +15 -15
- package/dist/cliproxy/auth/antigravity-responsibility.js.map +1 -1
- package/dist/cliproxy/auth/auth-token-manager.d.ts.map +1 -1
- package/dist/cliproxy/auth/auth-token-manager.js +2 -1
- package/dist/cliproxy/auth/auth-token-manager.js.map +1 -1
- package/dist/cliproxy/auth/auth-types.d.ts.map +1 -1
- package/dist/cliproxy/auth/auth-types.js +3 -2
- package/dist/cliproxy/auth/auth-types.js.map +1 -1
- package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
- package/dist/cliproxy/auth/oauth-handler.js +16 -5
- package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
- package/dist/cliproxy/auth/provider-refreshers/index.d.ts +2 -1
- package/dist/cliproxy/auth/provider-refreshers/index.d.ts.map +1 -1
- package/dist/cliproxy/auth/provider-refreshers/index.js +4 -2
- package/dist/cliproxy/auth/provider-refreshers/index.js.map +1 -1
- package/dist/cliproxy/auth/token-manager.d.ts +2 -1
- package/dist/cliproxy/auth/token-manager.d.ts.map +1 -1
- package/dist/cliproxy/auth/token-manager.js +2 -1
- package/dist/cliproxy/auth/token-manager.js.map +1 -1
- package/dist/cliproxy/binary/lifecycle.d.ts.map +1 -1
- package/dist/cliproxy/binary/lifecycle.js +3 -2
- package/dist/cliproxy/binary/lifecycle.js.map +1 -1
- package/dist/cliproxy/binary/platform-detector.d.ts +1 -1
- package/dist/cliproxy/binary/platform-detector.d.ts.map +1 -1
- package/dist/cliproxy/config/env-builder.d.ts +7 -2
- package/dist/cliproxy/config/env-builder.d.ts.map +1 -1
- package/dist/cliproxy/config/env-builder.js +53 -18
- package/dist/cliproxy/config/env-builder.js.map +1 -1
- package/dist/cliproxy/config/model-config.d.ts.map +1 -1
- package/dist/cliproxy/config/model-config.js +32 -32
- package/dist/cliproxy/config/model-config.js.map +1 -1
- package/dist/cliproxy/config/provider-route.d.ts +13 -0
- package/dist/cliproxy/config/provider-route.d.ts.map +1 -0
- package/dist/cliproxy/config/provider-route.js +38 -0
- package/dist/cliproxy/config/provider-route.js.map +1 -0
- package/dist/cliproxy/executor/arg-parser.d.ts.map +1 -1
- package/dist/cliproxy/executor/arg-parser.js +26 -26
- package/dist/cliproxy/executor/arg-parser.js.map +1 -1
- package/dist/cliproxy/executor/auth-coordinator.d.ts.map +1 -1
- package/dist/cliproxy/executor/auth-coordinator.js +15 -14
- package/dist/cliproxy/executor/auth-coordinator.js.map +1 -1
- package/dist/cliproxy/executor/browser-launch-setup.d.ts.map +1 -1
- package/dist/cliproxy/executor/browser-launch-setup.js +6 -2
- package/dist/cliproxy/executor/browser-launch-setup.js.map +1 -1
- package/dist/cliproxy/executor/env-resolver.d.ts.map +1 -1
- package/dist/cliproxy/executor/env-resolver.js +5 -1
- 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 +27 -17
- package/dist/cliproxy/executor/index.js.map +1 -1
- package/dist/cliproxy/executor/lifecycle-manager.d.ts.map +1 -1
- package/dist/cliproxy/executor/lifecycle-manager.js +18 -16
- package/dist/cliproxy/executor/lifecycle-manager.js.map +1 -1
- package/dist/cliproxy/executor/model-warnings.d.ts.map +1 -1
- package/dist/cliproxy/executor/model-warnings.js +24 -13
- package/dist/cliproxy/executor/model-warnings.js.map +1 -1
- package/dist/cliproxy/executor/proxy-chain-builder.d.ts.map +1 -1
- package/dist/cliproxy/executor/proxy-chain-builder.js +5 -1
- package/dist/cliproxy/executor/proxy-chain-builder.js.map +1 -1
- package/dist/cliproxy/executor/retry-handler.d.ts.map +1 -1
- package/dist/cliproxy/executor/retry-handler.js +13 -11
- package/dist/cliproxy/executor/retry-handler.js.map +1 -1
- package/dist/cliproxy/executor/session-bridge.d.ts.map +1 -1
- package/dist/cliproxy/executor/session-bridge.js +18 -10
- package/dist/cliproxy/executor/session-bridge.js.map +1 -1
- package/dist/cliproxy/management/remote-token-uploader.d.ts.map +1 -1
- package/dist/cliproxy/management/remote-token-uploader.js +11 -11
- package/dist/cliproxy/management/remote-token-uploader.js.map +1 -1
- 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 +28 -3
- package/dist/cliproxy/provider-capabilities.js.map +1 -1
- package/dist/cliproxy/proxy/https-tunnel-proxy.d.ts +5 -1
- package/dist/cliproxy/proxy/https-tunnel-proxy.d.ts.map +1 -1
- package/dist/cliproxy/proxy/https-tunnel-proxy.js +22 -10
- package/dist/cliproxy/proxy/https-tunnel-proxy.js.map +1 -1
- package/dist/cliproxy/proxy/tool-sanitization-proxy.d.ts +0 -12
- package/dist/cliproxy/proxy/tool-sanitization-proxy.d.ts.map +1 -1
- package/dist/cliproxy/proxy/tool-sanitization-proxy.js +42 -72
- package/dist/cliproxy/proxy/tool-sanitization-proxy.js.map +1 -1
- package/dist/cliproxy/quota/quota-fetcher/account-quota-fetcher.d.ts +21 -0
- package/dist/cliproxy/quota/quota-fetcher/account-quota-fetcher.d.ts.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher/account-quota-fetcher.js +154 -0
- package/dist/cliproxy/quota/quota-fetcher/account-quota-fetcher.js.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher/all-accounts-fetcher.d.ts +35 -0
- package/dist/cliproxy/quota/quota-fetcher/all-accounts-fetcher.d.ts.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher/all-accounts-fetcher.js +98 -0
- package/dist/cliproxy/quota/quota-fetcher/all-accounts-fetcher.js.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher/auth-file-reader.d.ts +22 -0
- package/dist/cliproxy/quota/quota-fetcher/auth-file-reader.d.ts.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher/auth-file-reader.js +111 -0
- package/dist/cliproxy/quota/quota-fetcher/auth-file-reader.js.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher/available-models-fetcher.d.ts +17 -0
- package/dist/cliproxy/quota/quota-fetcher/available-models-fetcher.d.ts.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher/available-models-fetcher.js +85 -0
- package/dist/cliproxy/quota/quota-fetcher/available-models-fetcher.js.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher/constants.d.ts +25 -0
- package/dist/cliproxy/quota/quota-fetcher/constants.d.ts.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher/constants.js +31 -0
- package/dist/cliproxy/quota/quota-fetcher/constants.js.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher/http-client.d.ts +29 -0
- package/dist/cliproxy/quota/quota-fetcher/http-client.d.ts.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher/http-client.js +199 -0
- package/dist/cliproxy/quota/quota-fetcher/http-client.js.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher/project-lookup.d.ts +16 -0
- package/dist/cliproxy/quota/quota-fetcher/project-lookup.d.ts.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher/project-lookup.js +89 -0
- package/dist/cliproxy/quota/quota-fetcher/project-lookup.js.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher/status-classifier.d.ts +29 -0
- package/dist/cliproxy/quota/quota-fetcher/status-classifier.d.ts.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher/status-classifier.js +168 -0
- package/dist/cliproxy/quota/quota-fetcher/status-classifier.js.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher/types.d.ts +165 -0
- package/dist/cliproxy/quota/quota-fetcher/types.d.ts.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher/types.js +9 -0
- package/dist/cliproxy/quota/quota-fetcher/types.js.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-claude.d.ts.map +1 -1
- package/dist/cliproxy/quota/quota-fetcher-claude.js +14 -3
- package/dist/cliproxy/quota/quota-fetcher-claude.js.map +1 -1
- package/dist/cliproxy/quota/quota-fetcher-codex.d.ts.map +1 -1
- package/dist/cliproxy/quota/quota-fetcher-codex.js +36 -9
- package/dist/cliproxy/quota/quota-fetcher-codex.js.map +1 -1
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/auth-file-discovery.d.ts +26 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/auth-file-discovery.d.ts.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/auth-file-discovery.js +132 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/auth-file-discovery.js.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/bucket-building.d.ts +23 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/bucket-building.d.ts.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/bucket-building.js +54 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/bucket-building.js.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/constants.d.ts +26 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/constants.d.ts.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/constants.js +29 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/constants.js.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/error-parsing.d.ts +61 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/error-parsing.d.ts.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/error-parsing.js +259 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/error-parsing.js.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/index.d.ts +20 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/index.d.ts.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/index.js +38 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/index.js.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/managed-request.d.ts +82 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/managed-request.d.ts.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/managed-request.js +263 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/managed-request.js.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/quota-fetcher.d.ts +46 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/quota-fetcher.d.ts.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/quota-fetcher.js +188 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/quota-fetcher.js.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/shared-utils.d.ts +35 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/shared-utils.d.ts.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/shared-utils.js +65 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/shared-utils.js.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/supplementary-metadata.d.ts +37 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/supplementary-metadata.d.ts.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/supplementary-metadata.js +117 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/supplementary-metadata.js.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/token-parsing.d.ts +31 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/token-parsing.d.ts.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/token-parsing.js +77 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/token-parsing.js.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/types.d.ts +114 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/types.d.ts.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/types.js +10 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli/types.js.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli.d.ts +13 -58
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli.d.ts.map +1 -1
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli.js +20 -819
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli.js.map +1 -1
- package/dist/cliproxy/quota/quota-fetcher-ghcp.d.ts.map +1 -1
- package/dist/cliproxy/quota/quota-fetcher-ghcp.js +19 -4
- package/dist/cliproxy/quota/quota-fetcher-ghcp.js.map +1 -1
- package/dist/cliproxy/quota/quota-fetcher.d.ts +12 -108
- package/dist/cliproxy/quota/quota-fetcher.d.ts.map +1 -1
- package/dist/cliproxy/quota/quota-fetcher.js +23 -766
- package/dist/cliproxy/quota/quota-fetcher.js.map +1 -1
- package/dist/cliproxy/quota/quota-manager.d.ts.map +1 -1
- package/dist/cliproxy/quota/quota-manager.js +7 -3
- package/dist/cliproxy/quota/quota-manager.js.map +1 -1
- package/dist/cliproxy/routing/routing-strategy.d.ts.map +1 -1
- package/dist/cliproxy/routing/routing-strategy.js +11 -3
- package/dist/cliproxy/routing/routing-strategy.js.map +1 -1
- package/dist/commands/api-command/create-command.d.ts.map +1 -1
- package/dist/commands/api-command/create-command.js +17 -8
- package/dist/commands/api-command/create-command.js.map +1 -1
- package/dist/commands/bar/bar-server-probe.d.ts +16 -3
- package/dist/commands/bar/bar-server-probe.d.ts.map +1 -1
- package/dist/commands/bar/bar-server-probe.js +83 -18
- package/dist/commands/bar/bar-server-probe.js.map +1 -1
- package/dist/commands/bar/help-subcommand.d.ts.map +1 -1
- package/dist/commands/bar/help-subcommand.js +3 -2
- package/dist/commands/bar/help-subcommand.js.map +1 -1
- package/dist/commands/bar/index.d.ts.map +1 -1
- package/dist/commands/bar/index.js +1 -0
- package/dist/commands/bar/index.js.map +1 -1
- package/dist/commands/bar/install-subcommand.d.ts +4 -10
- package/dist/commands/bar/install-subcommand.d.ts.map +1 -1
- package/dist/commands/bar/install-subcommand.js +44 -53
- package/dist/commands/bar/install-subcommand.js.map +1 -1
- package/dist/commands/bar/launch-subcommand.d.ts +11 -1
- package/dist/commands/bar/launch-subcommand.d.ts.map +1 -1
- package/dist/commands/bar/launch-subcommand.js +82 -15
- package/dist/commands/bar/launch-subcommand.js.map +1 -1
- package/dist/commands/cliproxy/help-subcommand.js +5 -5
- 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 +7 -2
- package/dist/commands/cliproxy/index.js.map +1 -1
- package/dist/commands/cliproxy/pool-subcommand.d.ts.map +1 -1
- package/dist/commands/cliproxy/pool-subcommand.js +4 -2
- package/dist/commands/cliproxy/pool-subcommand.js.map +1 -1
- package/dist/commands/cliproxy/proxy-lifecycle-subcommand.d.ts +1 -1
- package/dist/commands/cliproxy/proxy-lifecycle-subcommand.d.ts.map +1 -1
- package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js +13 -1
- package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js.map +1 -1
- package/dist/commands/cliproxy/quota-subcommand/claude-window-helpers.d.ts +26 -0
- package/dist/commands/cliproxy/quota-subcommand/claude-window-helpers.d.ts.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/claude-window-helpers.js +82 -0
- package/dist/commands/cliproxy/quota-subcommand/claude-window-helpers.js.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/codex-window-helpers.d.ts +41 -0
- package/dist/commands/cliproxy/quota-subcommand/codex-window-helpers.d.ts.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/codex-window-helpers.js +202 -0
- package/dist/commands/cliproxy/quota-subcommand/codex-window-helpers.js.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/format-helpers.d.ts +32 -0
- package/dist/commands/cliproxy/quota-subcommand/format-helpers.d.ts.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/format-helpers.js +90 -0
- package/dist/commands/cliproxy/quota-subcommand/format-helpers.js.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/handlers.d.ts +25 -0
- package/dist/commands/cliproxy/quota-subcommand/handlers.d.ts.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/handlers.js +245 -0
- package/dist/commands/cliproxy/quota-subcommand/handlers.js.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/profile-args.d.ts +10 -0
- package/dist/commands/cliproxy/quota-subcommand/profile-args.d.ts.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/profile-args.js +37 -0
- package/dist/commands/cliproxy/quota-subcommand/profile-args.js.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/provider-runtime.d.ts +12 -0
- package/dist/commands/cliproxy/quota-subcommand/provider-runtime.d.ts.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/provider-runtime.js +64 -0
- package/dist/commands/cliproxy/quota-subcommand/provider-runtime.js.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/quota-failure-display.d.ts +27 -0
- package/dist/commands/cliproxy/quota-subcommand/quota-failure-display.d.ts.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/quota-failure-display.js +74 -0
- package/dist/commands/cliproxy/quota-subcommand/quota-failure-display.js.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/sections/antigravity.d.ts +10 -0
- package/dist/commands/cliproxy/quota-subcommand/sections/antigravity.d.ts.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/sections/antigravity.js +46 -0
- package/dist/commands/cliproxy/quota-subcommand/sections/antigravity.js.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/sections/claude.d.ts +14 -0
- package/dist/commands/cliproxy/quota-subcommand/sections/claude.d.ts.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/sections/claude.js +68 -0
- package/dist/commands/cliproxy/quota-subcommand/sections/claude.js.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/sections/codex.d.ts +14 -0
- package/dist/commands/cliproxy/quota-subcommand/sections/codex.d.ts.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/sections/codex.js +82 -0
- package/dist/commands/cliproxy/quota-subcommand/sections/codex.js.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/sections/gemini-cli.d.ts +14 -0
- package/dist/commands/cliproxy/quota-subcommand/sections/gemini-cli.d.ts.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/sections/gemini-cli.js +61 -0
- package/dist/commands/cliproxy/quota-subcommand/sections/gemini-cli.js.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/sections/ghcp.d.ts +13 -0
- package/dist/commands/cliproxy/quota-subcommand/sections/ghcp.d.ts.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/sections/ghcp.js +63 -0
- package/dist/commands/cliproxy/quota-subcommand/sections/ghcp.js.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/test-exports.d.ts +19 -0
- package/dist/commands/cliproxy/quota-subcommand/test-exports.d.ts.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/test-exports.js +22 -0
- package/dist/commands/cliproxy/quota-subcommand/test-exports.js.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/types.d.ts +42 -0
- package/dist/commands/cliproxy/quota-subcommand/types.d.ts.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand/types.js +9 -0
- package/dist/commands/cliproxy/quota-subcommand/types.js.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand.d.ts +14 -36
- package/dist/commands/cliproxy/quota-subcommand.d.ts.map +1 -1
- package/dist/commands/cliproxy/quota-subcommand.js +21 -872
- package/dist/commands/cliproxy/quota-subcommand.js.map +1 -1
- package/dist/commands/command-catalog.js +1 -1
- package/dist/commands/command-catalog.js.map +1 -1
- package/dist/commands/config-channels-command.d.ts +1 -1
- package/dist/commands/config-channels-command.d.ts.map +1 -1
- package/dist/commands/config-channels-command.js +3 -3
- package/dist/commands/config-channels-command.js.map +1 -1
- package/dist/commands/config-command-options.d.ts.map +1 -1
- package/dist/commands/config-command-options.js +11 -2
- package/dist/commands/config-command-options.js.map +1 -1
- package/dist/commands/persist-command/arg-parsing.d.ts +14 -0
- package/dist/commands/persist-command/arg-parsing.d.ts.map +1 -0
- package/dist/commands/persist-command/arg-parsing.js +84 -0
- package/dist/commands/persist-command/arg-parsing.js.map +1 -0
- package/dist/commands/persist-command/backup-rotation.d.ts +23 -0
- package/dist/commands/persist-command/backup-rotation.d.ts.map +1 -0
- package/dist/commands/persist-command/backup-rotation.js +265 -0
- package/dist/commands/persist-command/backup-rotation.js.map +1 -0
- package/dist/commands/persist-command/handler.d.ts +10 -0
- package/dist/commands/persist-command/handler.d.ts.map +1 -0
- package/dist/commands/persist-command/handler.js +267 -0
- package/dist/commands/persist-command/handler.js.map +1 -0
- package/dist/commands/persist-command/help.d.ts +9 -0
- package/dist/commands/persist-command/help.d.ts.map +1 -0
- package/dist/commands/persist-command/help.js +86 -0
- package/dist/commands/persist-command/help.js.map +1 -0
- package/dist/commands/persist-command/receipt.d.ts +13 -0
- package/dist/commands/persist-command/receipt.d.ts.map +1 -0
- package/dist/commands/persist-command/receipt.js +102 -0
- package/dist/commands/persist-command/receipt.js.map +1 -0
- package/dist/commands/persist-command/secret-detection.d.ts +11 -0
- package/dist/commands/persist-command/secret-detection.d.ts.map +1 -0
- package/dist/commands/persist-command/secret-detection.js +54 -0
- package/dist/commands/persist-command/secret-detection.js.map +1 -0
- package/dist/commands/persist-command/secure-file.d.ts +21 -0
- package/dist/commands/persist-command/secure-file.d.ts.map +1 -0
- package/dist/commands/persist-command/secure-file.js +231 -0
- package/dist/commands/persist-command/secure-file.js.map +1 -0
- package/dist/commands/persist-command/types.d.ts +42 -0
- package/dist/commands/persist-command/types.d.ts.map +1 -0
- package/dist/commands/persist-command/types.js +34 -0
- package/dist/commands/persist-command/types.js.map +1 -0
- package/dist/commands/persist-command.d.ts +7 -2
- package/dist/commands/persist-command.d.ts.map +1 -1
- package/dist/commands/persist-command.js +17 -933
- package/dist/commands/persist-command.js.map +1 -1
- package/dist/commands/proxy-command.d.ts.map +1 -1
- package/dist/commands/proxy-command.js +7 -1
- package/dist/commands/proxy-command.js.map +1 -1
- package/dist/commands/setup-command.d.ts.map +1 -1
- package/dist/commands/setup-command.js +11 -1
- package/dist/commands/setup-command.js.map +1 -1
- package/dist/commands/tokens-command.d.ts.map +1 -1
- package/dist/commands/tokens-command.js +6 -0
- package/dist/commands/tokens-command.js.map +1 -1
- package/dist/config/config-loader-facade.d.ts +1 -1
- package/dist/config/config-loader-facade.d.ts.map +1 -1
- package/dist/config/config-loader-facade.js +3 -1
- package/dist/config/config-loader-facade.js.map +1 -1
- package/dist/config/loader/config-getters.d.ts +16 -0
- package/dist/config/loader/config-getters.d.ts.map +1 -1
- package/dist/config/loader/config-getters.js +33 -1
- package/dist/config/loader/config-getters.js.map +1 -1
- package/dist/config/loader/defaults-merger.d.ts.map +1 -1
- package/dist/config/loader/defaults-merger.js +4 -0
- package/dist/config/loader/defaults-merger.js.map +1 -1
- package/dist/config/loader/yaml-serializer.d.ts.map +1 -1
- package/dist/config/loader/yaml-serializer.js +13 -0
- package/dist/config/loader/yaml-serializer.js.map +1 -1
- package/dist/config/schemas/index.d.ts +2 -0
- package/dist/config/schemas/index.d.ts.map +1 -1
- package/dist/config/schemas/index.js +5 -1
- package/dist/config/schemas/index.js.map +1 -1
- package/dist/config/schemas/runtime.d.ts +57 -0
- package/dist/config/schemas/runtime.d.ts.map +1 -0
- package/dist/config/schemas/runtime.js +51 -0
- package/dist/config/schemas/runtime.js.map +1 -0
- package/dist/config/schemas/unified-config.d.ts +3 -0
- package/dist/config/schemas/unified-config.d.ts.map +1 -1
- package/dist/config/schemas/unified-config.js.map +1 -1
- package/dist/config/unified-config-loader.d.ts +1 -1
- package/dist/config/unified-config-loader.d.ts.map +1 -1
- package/dist/config/unified-config-loader.js +25 -13
- package/dist/config/unified-config-loader.js.map +1 -1
- package/dist/copilot/copilot-executor.js +25 -25
- package/dist/copilot/copilot-executor.js.map +1 -1
- package/dist/cursor/cursor-daemon-entry.d.ts.map +1 -1
- package/dist/cursor/cursor-daemon-entry.js +34 -9
- package/dist/cursor/cursor-daemon-entry.js.map +1 -1
- package/dist/cursor/cursor-daemon.d.ts.map +1 -1
- package/dist/cursor/cursor-daemon.js +1 -0
- package/dist/cursor/cursor-daemon.js.map +1 -1
- package/dist/cursor/cursor-profile-executor.d.ts.map +1 -1
- package/dist/cursor/cursor-profile-executor.js +18 -17
- package/dist/cursor/cursor-profile-executor.js.map +1 -1
- package/dist/delegation/delegation-handler.d.ts.map +1 -1
- package/dist/delegation/delegation-handler.js +29 -23
- package/dist/delegation/delegation-handler.js.map +1 -1
- package/dist/delegation/headless-executor.d.ts +1 -0
- package/dist/delegation/headless-executor.d.ts.map +1 -1
- package/dist/delegation/headless-executor.js +36 -15
- package/dist/delegation/headless-executor.js.map +1 -1
- package/dist/delegation/session-manager.d.ts.map +1 -1
- package/dist/delegation/session-manager.js +12 -4
- package/dist/delegation/session-manager.js.map +1 -1
- package/dist/dispatcher/cli-argument-parser.d.ts +1 -1
- package/dist/dispatcher/cli-argument-parser.d.ts.map +1 -1
- package/dist/dispatcher/cli-argument-parser.js +24 -23
- package/dist/dispatcher/cli-argument-parser.js.map +1 -1
- package/dist/dispatcher/flows/cliproxy-flow.d.ts.map +1 -1
- package/dist/dispatcher/flows/cliproxy-flow.js +12 -15
- package/dist/dispatcher/flows/cliproxy-flow.js.map +1 -1
- package/dist/dispatcher/flows/copilot-flow.js +1 -1
- package/dist/dispatcher/flows/copilot-flow.js.map +1 -1
- package/dist/dispatcher/flows/cursor-flow.js +1 -1
- package/dist/dispatcher/flows/cursor-flow.js.map +1 -1
- package/dist/dispatcher/flows/settings-flow.d.ts.map +1 -1
- package/dist/dispatcher/flows/settings-flow.js +32 -29
- package/dist/dispatcher/flows/settings-flow.js.map +1 -1
- package/dist/dispatcher/pre-dispatch.d.ts.map +1 -1
- package/dist/dispatcher/pre-dispatch.js +26 -10
- package/dist/dispatcher/pre-dispatch.js.map +1 -1
- package/dist/dispatcher/profile-resolver.d.ts +1 -1
- package/dist/dispatcher/profile-resolver.d.ts.map +1 -1
- package/dist/dispatcher/profile-resolver.js +36 -23
- package/dist/dispatcher/profile-resolver.js.map +1 -1
- package/dist/docker/supervisord-lifecycle.d.ts.map +1 -1
- package/dist/docker/supervisord-lifecycle.js +5 -1
- package/dist/docker/supervisord-lifecycle.js.map +1 -1
- package/dist/errors/error-types.d.ts +26 -22
- package/dist/errors/error-types.d.ts.map +1 -1
- package/dist/errors/error-types.js +15 -12
- package/dist/errors/error-types.js.map +1 -1
- package/dist/errors/exit-codes.d.ts +20 -13
- package/dist/errors/exit-codes.d.ts.map +1 -1
- package/dist/errors/exit-codes.js +32 -28
- package/dist/errors/exit-codes.js.map +1 -1
- package/dist/glmt/delta-accumulator.d.ts +1 -0
- package/dist/glmt/delta-accumulator.d.ts.map +1 -1
- package/dist/glmt/delta-accumulator.js +12 -4
- package/dist/glmt/delta-accumulator.js.map +1 -1
- package/dist/glmt/glmt-proxy.d.ts.map +1 -1
- package/dist/glmt/glmt-proxy.js +39 -10
- package/dist/glmt/glmt-proxy.js.map +1 -1
- package/dist/glmt/glmt-transformer.d.ts.map +1 -1
- package/dist/glmt/glmt-transformer.js +1 -4
- package/dist/glmt/glmt-transformer.js.map +1 -1
- package/dist/glmt/pipeline/request-transformer.d.ts.map +1 -1
- package/dist/glmt/pipeline/request-transformer.js +5 -1
- package/dist/glmt/pipeline/request-transformer.js.map +1 -1
- package/dist/glmt/pipeline/response-builder.d.ts.map +1 -1
- package/dist/glmt/pipeline/response-builder.js +7 -3
- package/dist/glmt/pipeline/response-builder.js.map +1 -1
- package/dist/glmt/pipeline/stream-parser.d.ts.map +1 -1
- package/dist/glmt/pipeline/stream-parser.js +11 -5
- package/dist/glmt/pipeline/stream-parser.js.map +1 -1
- package/dist/glmt/pipeline/tool-call-handler.d.ts.map +1 -1
- package/dist/glmt/pipeline/tool-call-handler.js +7 -1
- package/dist/glmt/pipeline/tool-call-handler.js.map +1 -1
- package/dist/glmt/sse-parser.d.ts +1 -0
- package/dist/glmt/sse-parser.d.ts.map +1 -1
- package/dist/glmt/sse-parser.js +7 -3
- package/dist/glmt/sse-parser.js.map +1 -1
- package/dist/management/checks/cliproxy-check.d.ts.map +1 -1
- package/dist/management/checks/cliproxy-check.js +15 -1
- package/dist/management/checks/cliproxy-check.js.map +1 -1
- package/dist/management/checks/config-check.d.ts.map +1 -1
- package/dist/management/checks/config-check.js +4 -1
- package/dist/management/checks/config-check.js.map +1 -1
- package/dist/management/checks/profile-check.d.ts.map +1 -1
- package/dist/management/checks/profile-check.js +10 -6
- package/dist/management/checks/profile-check.js.map +1 -1
- package/dist/management/doctor.d.ts +7 -0
- package/dist/management/doctor.d.ts.map +1 -1
- package/dist/management/doctor.js +31 -9
- package/dist/management/doctor.js.map +1 -1
- package/dist/management/shared-manager/fs-helpers.d.ts +69 -0
- package/dist/management/shared-manager/fs-helpers.d.ts.map +1 -0
- package/dist/management/shared-manager/fs-helpers.js +241 -0
- package/dist/management/shared-manager/fs-helpers.js.map +1 -0
- package/dist/management/shared-manager/migrations.d.ts +21 -0
- package/dist/management/shared-manager/migrations.d.ts.map +1 -0
- package/dist/management/shared-manager/migrations.js +187 -0
- package/dist/management/shared-manager/migrations.js.map +1 -0
- package/dist/management/shared-manager/orchestrator.d.ts +87 -0
- package/dist/management/shared-manager/orchestrator.d.ts.map +1 -0
- package/dist/management/shared-manager/orchestrator.js +161 -0
- package/dist/management/shared-manager/orchestrator.js.map +1 -0
- package/dist/management/shared-manager/plugin-layout-internals.d.ts +42 -0
- package/dist/management/shared-manager/plugin-layout-internals.d.ts.map +1 -0
- package/dist/management/shared-manager/plugin-layout-internals.js +192 -0
- package/dist/management/shared-manager/plugin-layout-internals.js.map +1 -0
- package/dist/management/shared-manager/plugin-metadata-normalizer.d.ts +53 -0
- package/dist/management/shared-manager/plugin-metadata-normalizer.d.ts.map +1 -0
- package/dist/management/shared-manager/plugin-metadata-normalizer.js +253 -0
- package/dist/management/shared-manager/plugin-metadata-normalizer.js.map +1 -0
- package/dist/management/shared-manager/project-context-sync.d.ts +36 -0
- package/dist/management/shared-manager/project-context-sync.d.ts.map +1 -0
- package/dist/management/shared-manager/project-context-sync.js +204 -0
- package/dist/management/shared-manager/project-context-sync.js.map +1 -0
- package/dist/management/shared-manager/project-memory-sync.d.ts +21 -0
- package/dist/management/shared-manager/project-memory-sync.d.ts.map +1 -0
- package/dist/management/shared-manager/project-memory-sync.js +113 -0
- package/dist/management/shared-manager/project-memory-sync.js.map +1 -0
- package/dist/management/shared-manager/shared-dir-linker.d.ts +41 -0
- package/dist/management/shared-manager/shared-dir-linker.d.ts.map +1 -0
- package/dist/management/shared-manager/shared-dir-linker.js +227 -0
- package/dist/management/shared-manager/shared-dir-linker.js.map +1 -0
- package/dist/management/shared-manager/symlink-helpers.d.ts +61 -0
- package/dist/management/shared-manager/symlink-helpers.d.ts.map +1 -0
- package/dist/management/shared-manager/symlink-helpers.js +243 -0
- package/dist/management/shared-manager/symlink-helpers.js.map +1 -0
- package/dist/management/shared-manager/types.d.ts +45 -0
- package/dist/management/shared-manager/types.d.ts.map +1 -0
- package/dist/management/shared-manager/types.js +57 -0
- package/dist/management/shared-manager/types.js.map +1 -0
- package/dist/management/shared-manager.d.ts +13 -160
- package/dist/management/shared-manager.d.ts.map +1 -1
- package/dist/management/shared-manager.js +18 -1294
- package/dist/management/shared-manager.js.map +1 -1
- package/dist/proxy/proxy-daemon-entry.js +1 -1
- package/dist/proxy/proxy-daemon-entry.js.map +1 -1
- package/dist/proxy/server/messages-route.d.ts +10 -0
- package/dist/proxy/server/messages-route.d.ts.map +1 -1
- package/dist/proxy/server/messages-route.js +34 -7
- package/dist/proxy/server/messages-route.js.map +1 -1
- package/dist/proxy/server/proxy-server.d.ts.map +1 -1
- package/dist/proxy/server/proxy-server.js +1 -1
- package/dist/proxy/server/proxy-server.js.map +1 -1
- package/dist/proxy/transformers/sse-stream-transformer.d.ts.map +1 -1
- package/dist/proxy/transformers/sse-stream-transformer.js +12 -17
- package/dist/proxy/transformers/sse-stream-transformer.js.map +1 -1
- package/dist/services/logging/index.d.ts +1 -1
- package/dist/services/logging/index.d.ts.map +1 -1
- package/dist/services/logging/index.js +6 -1
- package/dist/services/logging/index.js.map +1 -1
- package/dist/services/logging/log-context.d.ts +27 -2
- package/dist/services/logging/log-context.d.ts.map +1 -1
- package/dist/services/logging/log-context.js +43 -4
- package/dist/services/logging/log-context.js.map +1 -1
- package/dist/services/logging/log-redaction.d.ts +9 -0
- package/dist/services/logging/log-redaction.d.ts.map +1 -1
- package/dist/services/logging/log-redaction.js +31 -3
- package/dist/services/logging/log-redaction.js.map +1 -1
- package/dist/services/logging/logger.js +2 -2
- package/dist/services/logging/logger.js.map +1 -1
- package/dist/shared/provider-preset-catalog.d.ts +1 -1
- package/dist/shared/provider-preset-catalog.d.ts.map +1 -1
- package/dist/shared/provider-preset-catalog.js +21 -7
- package/dist/shared/provider-preset-catalog.js.map +1 -1
- package/dist/targets/claude-adapter.d.ts.map +1 -1
- package/dist/targets/claude-adapter.js +5 -0
- package/dist/targets/claude-adapter.js.map +1 -1
- package/dist/targets/codex-adapter.d.ts.map +1 -1
- package/dist/targets/codex-adapter.js +11 -10
- package/dist/targets/codex-adapter.js.map +1 -1
- package/dist/targets/codex-cliproxy-provider-config.d.ts.map +1 -1
- package/dist/targets/codex-cliproxy-provider-config.js +51 -14
- package/dist/targets/codex-cliproxy-provider-config.js.map +1 -1
- package/dist/targets/codex-detector.d.ts.map +1 -1
- package/dist/targets/codex-detector.js +14 -0
- package/dist/targets/codex-detector.js.map +1 -1
- package/dist/targets/droid-adapter.d.ts.map +1 -1
- package/dist/targets/droid-adapter.js +12 -12
- package/dist/targets/droid-adapter.js.map +1 -1
- package/dist/ui/assets/{Trans-RG_sMDEu.js → Trans-GYzYLs2D.js} +1 -1
- package/dist/ui/assets/{accounts-yTXURc-q.js → accounts-DC1QuyI9.js} +1 -1
- package/dist/ui/assets/{alert-dialog-DjvPgzFs.js → alert-dialog-6SiedqmE.js} +1 -1
- package/dist/ui/assets/{api-Ck1dtNEM.js → api-3s21dbNJ.js} +1 -1
- package/dist/ui/assets/{auth-section-DBnY_LPz.js → auth-section-XBfNgVN4.js} +1 -1
- package/dist/ui/assets/{backups-section-Ci-uL4Of.js → backups-section-BidiiVlq.js} +1 -1
- package/dist/ui/assets/{channels-BeS9O5q0.js → channels-pfgPUDGt.js} +1 -1
- package/dist/ui/assets/{checkbox-DFeFDZBp.js → checkbox-CJw_-nvC.js} +1 -1
- package/dist/ui/assets/{claude-extension-DS5qN19Z.js → claude-extension-BIIUOvTJ.js} +1 -1
- package/dist/ui/assets/{cliproxy-D7HJH4mZ.js → cliproxy-Cq8OX0Pu.js} +1 -1
- package/dist/ui/assets/{cliproxy-ai-providers-oJQZXrtc.js → cliproxy-ai-providers-DI760ZF0.js} +1 -1
- package/dist/ui/assets/{cliproxy-control-panel-2mRPEcRj.js → cliproxy-control-panel-CBqvpOqj.js} +1 -1
- package/dist/ui/assets/{codex-D0AUQ6jA.js → codex-DL4OLBUu.js} +1 -1
- package/dist/ui/assets/{confirm-dialog-B37-CVuq.js → confirm-dialog-CC_Cc3EO.js} +1 -1
- package/dist/ui/assets/{copilot-KaaW-mko.js → copilot-D2kEhTXR.js} +1 -1
- package/dist/ui/assets/{cursor-BKiTgYi5.js → cursor-BashLrYk.js} +1 -1
- package/dist/ui/assets/{droid-DHdqGnFw.js → droid-DaKTINFL.js} +1 -1
- package/dist/ui/assets/{globalenv-section-SfZO97nU.js → globalenv-section-BQicL8L0.js} +1 -1
- package/dist/ui/assets/{health-CSRS9O0D.js → health-bRbE_ADg.js} +1 -1
- package/dist/ui/assets/{index-CGgavq2X.js → index-B2JEyN3d.js} +36 -36
- package/dist/ui/assets/{index-Cu_F55_O.js → index-BwZdl1HU.js} +1 -1
- package/dist/ui/assets/{index-DWUuSBUe.js → index-CgeAb1-K.js} +1 -1
- package/dist/ui/assets/{index-iQuEEGbH.js → index-DAQ0qIQ_.js} +1 -1
- package/dist/ui/assets/{index-ChTYEBCZ.js → index-O2x1grGh.js} +1 -1
- package/dist/ui/assets/{index-DycwEe96.js → index-WA7tK6np.js} +1 -1
- package/dist/ui/assets/{index-DJ66NrBH.js → index-mf2X1GwS.js} +1 -1
- package/dist/ui/assets/{logs-tiZ_51mo.js → logs-qrBHUJ0H.js} +1 -1
- package/dist/ui/assets/{masked-input-D9FVoeMA.js → masked-input-CXwQ4E-g.js} +1 -1
- package/dist/ui/assets/{proxy-status-widget-2k26d8pS.js → proxy-status-widget-DPz4nCzR.js} +1 -1
- package/dist/ui/assets/{raw-json-settings-editor-panel-CguBh93H.js → raw-json-settings-editor-panel-CcvsWVh1.js} +1 -1
- package/dist/ui/assets/{searchable-select-C4wShshD.js → searchable-select-EXSjNCRu.js} +1 -1
- package/dist/ui/assets/{separator-mvGlDdEW.js → separator-D2CTfWBQ.js} +1 -1
- package/dist/ui/assets/{shared-Ck0yAwbs.js → shared-DpgzhFqe.js} +1 -1
- package/dist/ui/assets/{table-DrUJOxKL.js → table-DwbiGRYk.js} +1 -1
- package/dist/ui/assets/{updates-BVHBFcq8.js → updates-D8jfIb2y.js} +1 -1
- package/dist/ui/assets/{use-accounts-DLtuaniS.js → use-accounts-Bwtpnx-x.js} +1 -1
- package/dist/ui/index.html +1 -1
- package/dist/utils/bar-auth-token.d.ts +4 -0
- package/dist/utils/bar-auth-token.d.ts.map +1 -0
- package/dist/utils/bar-auth-token.js +60 -0
- package/dist/utils/bar-auth-token.js.map +1 -0
- package/dist/utils/browser/browser-settings.d.ts +3 -1
- package/dist/utils/browser/browser-settings.d.ts.map +1 -1
- package/dist/utils/browser/browser-settings.js +2 -2
- package/dist/utils/browser/browser-settings.js.map +1 -1
- package/dist/utils/browser/browser-setup.d.ts.map +1 -1
- package/dist/utils/browser/browser-setup.js +3 -1
- package/dist/utils/browser/browser-setup.js.map +1 -1
- package/dist/utils/browser/browser-status.d.ts.map +1 -1
- package/dist/utils/browser/browser-status.js +4 -2
- package/dist/utils/browser/browser-status.js.map +1 -1
- package/dist/utils/fetch-proxy-setup.d.ts +3 -2
- package/dist/utils/fetch-proxy-setup.d.ts.map +1 -1
- package/dist/utils/fetch-proxy-setup.js +10 -6
- package/dist/utils/fetch-proxy-setup.js.map +1 -1
- package/dist/utils/image-analysis/mcp-installer.d.ts.map +1 -1
- package/dist/utils/image-analysis/mcp-installer.js +16 -13
- package/dist/utils/image-analysis/mcp-installer.js.map +1 -1
- package/dist/utils/websearch/index.d.ts +1 -1
- package/dist/utils/websearch/index.d.ts.map +1 -1
- package/dist/utils/websearch/index.js +2 -1
- package/dist/utils/websearch/index.js.map +1 -1
- package/dist/utils/websearch/mcp-installer.d.ts +8 -0
- package/dist/utils/websearch/mcp-installer.d.ts.map +1 -1
- package/dist/utils/websearch/mcp-installer.js +34 -13
- package/dist/utils/websearch/mcp-installer.js.map +1 -1
- package/dist/utils/websearch-manager.d.ts +1 -1
- package/dist/utils/websearch-manager.d.ts.map +1 -1
- package/dist/utils/websearch-manager.js +2 -1
- package/dist/utils/websearch-manager.js.map +1 -1
- package/dist/web-server/middleware/request-logging-middleware.d.ts.map +1 -1
- package/dist/web-server/middleware/request-logging-middleware.js +14 -9
- package/dist/web-server/middleware/request-logging-middleware.js.map +1 -1
- package/dist/web-server/model-pricing.d.ts.map +1 -1
- package/dist/web-server/model-pricing.js +22 -2
- package/dist/web-server/model-pricing.js.map +1 -1
- package/dist/web-server/routes/bar-routes.d.ts +12 -1
- package/dist/web-server/routes/bar-routes.d.ts.map +1 -1
- package/dist/web-server/routes/bar-routes.js +22 -6
- package/dist/web-server/routes/bar-routes.js.map +1 -1
- package/dist/web-server/routes/claude-extension-routes.d.ts.map +1 -1
- package/dist/web-server/routes/claude-extension-routes.js +3 -2
- package/dist/web-server/routes/claude-extension-routes.js.map +1 -1
- package/dist/web-server/routes/cliproxy-auth-routes.d.ts +1 -0
- package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -1
- package/dist/web-server/routes/cliproxy-auth-routes.js +20 -5
- package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -1
- package/dist/web-server/routes/cliproxy-stats-routes/config-routes.d.ts +16 -0
- package/dist/web-server/routes/cliproxy-stats-routes/config-routes.d.ts.map +1 -0
- package/dist/web-server/routes/cliproxy-stats-routes/config-routes.js +219 -0
- package/dist/web-server/routes/cliproxy-stats-routes/config-routes.js.map +1 -0
- package/dist/web-server/routes/cliproxy-stats-routes/error-log-routes.d.ts +12 -0
- package/dist/web-server/routes/cliproxy-stats-routes/error-log-routes.d.ts.map +1 -0
- package/dist/web-server/routes/cliproxy-stats-routes/error-log-routes.js +153 -0
- package/dist/web-server/routes/cliproxy-stats-routes/error-log-routes.js.map +1 -0
- package/dist/web-server/routes/cliproxy-stats-routes/quota-helpers.d.ts +19 -0
- package/dist/web-server/routes/cliproxy-stats-routes/quota-helpers.d.ts.map +1 -0
- package/dist/web-server/routes/cliproxy-stats-routes/quota-helpers.js +38 -0
- package/dist/web-server/routes/cliproxy-stats-routes/quota-helpers.js.map +1 -0
- package/dist/web-server/routes/cliproxy-stats-routes/quota-routes.d.ts +13 -0
- package/dist/web-server/routes/cliproxy-stats-routes/quota-routes.d.ts.map +1 -0
- package/dist/web-server/routes/cliproxy-stats-routes/quota-routes.js +195 -0
- package/dist/web-server/routes/cliproxy-stats-routes/quota-routes.js.map +1 -0
- package/dist/web-server/routes/cliproxy-stats-routes/restart-route.d.ts +17 -0
- package/dist/web-server/routes/cliproxy-stats-routes/restart-route.d.ts.map +1 -0
- package/dist/web-server/routes/cliproxy-stats-routes/restart-route.js +34 -0
- package/dist/web-server/routes/cliproxy-stats-routes/restart-route.js.map +1 -0
- package/dist/web-server/routes/cliproxy-stats-routes/router.d.ts +10 -0
- package/dist/web-server/routes/cliproxy-stats-routes/router.d.ts.map +1 -0
- package/dist/web-server/routes/cliproxy-stats-routes/router.js +245 -0
- package/dist/web-server/routes/cliproxy-stats-routes/router.js.map +1 -0
- package/dist/web-server/routes/cliproxy-stats-routes/shared.d.ts +35 -0
- package/dist/web-server/routes/cliproxy-stats-routes/shared.d.ts.map +1 -0
- package/dist/web-server/routes/cliproxy-stats-routes/shared.js +59 -0
- package/dist/web-server/routes/cliproxy-stats-routes/shared.js.map +1 -0
- package/dist/web-server/routes/cliproxy-stats-routes/version-helpers.d.ts +44 -0
- package/dist/web-server/routes/cliproxy-stats-routes/version-helpers.d.ts.map +1 -0
- package/dist/web-server/routes/cliproxy-stats-routes/version-helpers.js +66 -0
- package/dist/web-server/routes/cliproxy-stats-routes/version-helpers.js.map +1 -0
- package/dist/web-server/routes/cliproxy-stats-routes.d.ts +16 -57
- package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -1
- package/dist/web-server/routes/cliproxy-stats-routes.js +25 -926
- package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -1
- package/dist/web-server/routes/cliproxy-sync-routes.d.ts.map +1 -1
- package/dist/web-server/routes/cliproxy-sync-routes.js +9 -2
- package/dist/web-server/routes/cliproxy-sync-routes.js.map +1 -1
- package/dist/web-server/routes/copilot-settings-routes.d.ts.map +1 -1
- package/dist/web-server/routes/copilot-settings-routes.js +2 -1
- package/dist/web-server/routes/copilot-settings-routes.js.map +1 -1
- package/dist/web-server/routes/cursor-routes.d.ts.map +1 -1
- package/dist/web-server/routes/cursor-routes.js +3 -1
- package/dist/web-server/routes/cursor-routes.js.map +1 -1
- package/dist/web-server/routes/image-analysis-routes.d.ts.map +1 -1
- package/dist/web-server/routes/image-analysis-routes.js +2 -1
- package/dist/web-server/routes/image-analysis-routes.js.map +1 -1
- package/dist/web-server/routes/index.d.ts.map +1 -1
- package/dist/web-server/routes/index.js +6 -0
- package/dist/web-server/routes/index.js.map +1 -1
- package/dist/web-server/routes/persist-routes.d.ts.map +1 -1
- package/dist/web-server/routes/persist-routes.js +8 -1
- package/dist/web-server/routes/persist-routes.js.map +1 -1
- package/dist/web-server/routes/proxy-routes.d.ts.map +1 -1
- package/dist/web-server/routes/proxy-routes.js +33 -5
- package/dist/web-server/routes/proxy-routes.js.map +1 -1
- package/dist/web-server/routes/route-helpers.d.ts.map +1 -1
- package/dist/web-server/routes/route-helpers.js +18 -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 +7 -6
- package/dist/web-server/routes/settings-routes.js.map +1 -1
- package/dist/web-server/usage/aggregator.d.ts.map +1 -1
- package/dist/web-server/usage/aggregator.js +8 -8
- package/dist/web-server/usage/aggregator.js.map +1 -1
- package/dist/web-server/usage/bar-analytics.d.ts +21 -0
- package/dist/web-server/usage/bar-analytics.d.ts.map +1 -1
- package/dist/web-server/usage/bar-analytics.js +78 -9
- package/dist/web-server/usage/bar-analytics.js.map +1 -1
- package/dist/web-server/usage/cliproxy-usage-transformer.d.ts.map +1 -1
- package/dist/web-server/usage/cliproxy-usage-transformer.js +9 -4
- package/dist/web-server/usage/cliproxy-usage-transformer.js.map +1 -1
- package/dist/web-server/usage/codex-local-quota-collector.d.ts +2 -2
- package/dist/web-server/usage/codex-local-quota-collector.d.ts.map +1 -1
- package/dist/web-server/usage/codex-local-quota-collector.js +39 -11
- package/dist/web-server/usage/codex-local-quota-collector.js.map +1 -1
- package/dist/web-server/usage/handlers.d.ts.map +1 -1
- package/dist/web-server/usage/handlers.js +1 -1
- package/dist/web-server/usage/handlers.js.map +1 -1
- package/dist/web-server/usage/native-quota-collector.d.ts +37 -9
- package/dist/web-server/usage/native-quota-collector.d.ts.map +1 -1
- package/dist/web-server/usage/native-quota-collector.js +226 -23
- package/dist/web-server/usage/native-quota-collector.js.map +1 -1
- package/package.json +1 -1
- package/scripts/ci-parity-gate.sh +31 -0
- package/scripts/generate-throw-error-baseline.js +103 -0
- package/scripts/github/stable-release-issue-cleanup-lib.mjs +51 -11
- package/scripts/hardening-inventory.js +62 -4
- package/scripts/maintainability-metrics.js +356 -0
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Top-level quota fetch orchestration for Gemini CLI accounts.
|
|
4
|
+
*
|
|
5
|
+
* Coordinates auth-file discovery, the managed/direct upstream quota request,
|
|
6
|
+
* supplementary tier/credit metadata, and structured failure-result building.
|
|
7
|
+
* Preserves the structured logging from the original god file (events:
|
|
8
|
+
* gemini_cli.fetch_start, gemini_cli.auth_file_missing, gemini_cli.token_expired,
|
|
9
|
+
* gemini_cli.missing_project_id, gemini_cli.api_status, gemini_cli.buckets_found,
|
|
10
|
+
* gemini_cli.quota_fetch_error). Token values are never logged.
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.fetchAllGeminiCliQuotas = exports.fetchGeminiCliQuota = exports.fetchWithAuthData = void 0;
|
|
14
|
+
const account_manager_1 = require("../../accounts/account-manager");
|
|
15
|
+
const auth_utils_1 = require("../../auth/auth-utils");
|
|
16
|
+
const provider_entitlement_evidence_1 = require("../../auth/provider-entitlement-evidence");
|
|
17
|
+
const auth_file_discovery_1 = require("./auth-file-discovery");
|
|
18
|
+
const bucket_building_1 = require("./bucket-building");
|
|
19
|
+
const error_parsing_1 = require("./error-parsing");
|
|
20
|
+
const managed_request_1 = require("./managed-request");
|
|
21
|
+
const supplementary_metadata_1 = require("./supplementary-metadata");
|
|
22
|
+
const shared_utils_1 = require("./shared-utils");
|
|
23
|
+
const constants_1 = require("./constants");
|
|
24
|
+
/**
|
|
25
|
+
* Internal helper: fetch quota with already-validated auth data.
|
|
26
|
+
*
|
|
27
|
+
* Extracted to support the auto-refresh retry path: the caller resolves auth
|
|
28
|
+
* data once (legacy file or managed), then this function performs the upstream
|
|
29
|
+
* quota request and supplementary metadata fetch in parallel. On success it
|
|
30
|
+
* persists the resolved tier back to the account via `setAccountTier`.
|
|
31
|
+
*/
|
|
32
|
+
async function fetchWithAuthData(authData, accountId, verbose) {
|
|
33
|
+
if (!authData.projectId) {
|
|
34
|
+
const error = 'Cannot resolve project ID from auth file';
|
|
35
|
+
if (verbose) {
|
|
36
|
+
shared_utils_1.logger.error('gemini_cli.missing_project_id', `Error: ${error}`, {
|
|
37
|
+
provider: 'gemini',
|
|
38
|
+
accountId,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
return (0, error_parsing_1.buildGeminiCliFailureResult)(accountId, null, {
|
|
42
|
+
error,
|
|
43
|
+
errorCode: 'missing_project_id',
|
|
44
|
+
actionHint: 'Run ccs gemini --auth to reconnect this account and recover the project ID.',
|
|
45
|
+
retryable: false,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
const authContext = {};
|
|
49
|
+
const supplementaryPromise = (0, supplementary_metadata_1.fetchGeminiCliSupplementary)(accountId, authData.accessToken, authData.projectId, verbose, authContext);
|
|
50
|
+
const requestBody = JSON.stringify({ project: authData.projectId });
|
|
51
|
+
try {
|
|
52
|
+
const response = await (0, managed_request_1.performGeminiCliRequest)(accountId, authData.accessToken, constants_1.GEMINI_CLI_QUOTA_URL, requestBody, authData.isExpired, authContext);
|
|
53
|
+
if (verbose) {
|
|
54
|
+
const source = response.viaManagement ? 'managed' : 'direct';
|
|
55
|
+
shared_utils_1.logger.info('gemini_cli.api_status', `Gemini CLI API status via ${source}: ${response.status}`, { provider: 'gemini', accountId, httpStatus: response.status, source });
|
|
56
|
+
}
|
|
57
|
+
if (response.status !== 200) {
|
|
58
|
+
return (0, error_parsing_1.buildGeminiCliHttpFailureResult)(accountId, authData.projectId, response.status, response.bodyText);
|
|
59
|
+
}
|
|
60
|
+
const data = response.json;
|
|
61
|
+
const rawBuckets = data?.buckets || [];
|
|
62
|
+
const buckets = (0, bucket_building_1.buildGeminiCliBuckets)(rawBuckets);
|
|
63
|
+
const supplementary = await supplementaryPromise;
|
|
64
|
+
if (verbose) {
|
|
65
|
+
shared_utils_1.logger.info('gemini_cli.buckets_found', `Gemini CLI buckets found: ${buckets.length}`, {
|
|
66
|
+
provider: 'gemini',
|
|
67
|
+
accountId,
|
|
68
|
+
bucketCount: buckets.length,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
if (supplementary.normalizedTier !== 'unknown') {
|
|
72
|
+
(0, account_manager_1.setAccountTier)('gemini', accountId, supplementary.normalizedTier);
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
success: true,
|
|
76
|
+
buckets,
|
|
77
|
+
projectId: authData.projectId,
|
|
78
|
+
tierLabel: supplementary.tierLabel,
|
|
79
|
+
tierId: supplementary.tierId,
|
|
80
|
+
creditBalance: supplementary.creditBalance,
|
|
81
|
+
entitlement: (0, provider_entitlement_evidence_1.buildProviderEntitlementEvidence)({
|
|
82
|
+
normalizedTier: supplementary.normalizedTier,
|
|
83
|
+
rawTierId: supplementary.tierId,
|
|
84
|
+
rawTierLabel: supplementary.tierLabel,
|
|
85
|
+
source: supplementary.tierId ? 'runtime_api' : 'runtime_inference',
|
|
86
|
+
confidence: supplementary.tierId ? 'high' : 'medium',
|
|
87
|
+
accessState: 'entitled',
|
|
88
|
+
capacityState: 'available',
|
|
89
|
+
}),
|
|
90
|
+
lastUpdated: Date.now(),
|
|
91
|
+
accountId,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
catch (err) {
|
|
95
|
+
if (err instanceof managed_request_1.GeminiManagedAuthUnavailableError) {
|
|
96
|
+
return (0, error_parsing_1.buildGeminiCliFailureResult)(accountId, authData.projectId, {
|
|
97
|
+
error: 'Gemini delegated auth refresh is temporarily unavailable',
|
|
98
|
+
errorCode: 'managed_auth_unavailable',
|
|
99
|
+
errorDetail: err.message,
|
|
100
|
+
actionHint: 'Retry later. CLIProxy management could not refresh this Gemini account.',
|
|
101
|
+
retryable: true,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
const errorMsg = err instanceof Error && err.name === 'AbortError'
|
|
105
|
+
? 'Request timeout'
|
|
106
|
+
: err instanceof Error
|
|
107
|
+
? err.message
|
|
108
|
+
: 'Unknown error';
|
|
109
|
+
if (verbose) {
|
|
110
|
+
shared_utils_1.logger.error('gemini_cli.quota_fetch_error', `Gemini CLI quota error: ${errorMsg}`, {
|
|
111
|
+
provider: 'gemini',
|
|
112
|
+
accountId,
|
|
113
|
+
err: err instanceof Error ? { name: err.name, message: errorMsg } : { message: errorMsg },
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
return (0, error_parsing_1.buildGeminiCliFailureResult)(accountId, authData.projectId, {
|
|
117
|
+
error: errorMsg,
|
|
118
|
+
errorCode: err instanceof Error && err.name === 'AbortError' ? 'network_timeout' : 'network_error',
|
|
119
|
+
actionHint: 'Retry later. This looks temporary.',
|
|
120
|
+
retryable: true,
|
|
121
|
+
httpStatus: err instanceof Error && err.name === 'AbortError' ? 408 : undefined,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
exports.fetchWithAuthData = fetchWithAuthData;
|
|
126
|
+
/**
|
|
127
|
+
* Fetch quota for a single Gemini CLI account.
|
|
128
|
+
*
|
|
129
|
+
* Reads the on-disk auth file, emits the structured `gemini_cli.fetch_start`
|
|
130
|
+
* and `gemini_cli.auth_file_missing` / `gemini_cli.token_expired` log events
|
|
131
|
+
* (gated on `verbose`), and delegates to {@link fetchWithAuthData}. Token
|
|
132
|
+
* values are never logged; only the expiry label is surfaced.
|
|
133
|
+
*
|
|
134
|
+
* @param accountId - Account identifier (email)
|
|
135
|
+
* @param verbose - Show detailed diagnostics
|
|
136
|
+
* @returns Quota result with buckets, percentages, tier, and entitlement evidence
|
|
137
|
+
*/
|
|
138
|
+
async function fetchGeminiCliQuota(accountId, verbose = false) {
|
|
139
|
+
if (verbose) {
|
|
140
|
+
shared_utils_1.logger.info('gemini_cli.fetch_start', `Fetching Gemini CLI quota for ${accountId}...`, {
|
|
141
|
+
provider: 'gemini',
|
|
142
|
+
accountId,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
const authData = (0, auth_file_discovery_1.readGeminiCliAuthData)(accountId);
|
|
146
|
+
if (!authData) {
|
|
147
|
+
const error = 'Auth file not found for Gemini account';
|
|
148
|
+
if (verbose) {
|
|
149
|
+
shared_utils_1.logger.error('gemini_cli.auth_file_missing', `Error: ${error}`, {
|
|
150
|
+
provider: 'gemini',
|
|
151
|
+
accountId,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
return (0, error_parsing_1.buildGeminiCliFailureResult)(accountId, null, {
|
|
155
|
+
error,
|
|
156
|
+
errorCode: 'auth_file_missing',
|
|
157
|
+
actionHint: 'Run ccs gemini --auth to reconnect this account.',
|
|
158
|
+
retryable: false,
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
if (authData.isExpired && verbose) {
|
|
162
|
+
const expiresAt = (0, auth_utils_1.getTokenExpiryTimestamp)(authData.expiresAt);
|
|
163
|
+
const expiryLabel = expiresAt ? new Date(expiresAt).toISOString() : 'unknown';
|
|
164
|
+
shared_utils_1.logger.info('gemini_cli.token_expired', `Gemini access token is expired (${expiryLabel}); quota requests will defer to managed auth when available.`, { provider: 'gemini', accountId, tokenExpired: true, expiresAt: expiryLabel });
|
|
165
|
+
}
|
|
166
|
+
return await fetchWithAuthData(authData, accountId, verbose);
|
|
167
|
+
}
|
|
168
|
+
exports.fetchGeminiCliQuota = fetchGeminiCliQuota;
|
|
169
|
+
/**
|
|
170
|
+
* Fetch quota for all configured Gemini CLI accounts in parallel.
|
|
171
|
+
*
|
|
172
|
+
* @param verbose - Show detailed diagnostics (forwarded to each per-account fetch)
|
|
173
|
+
* @returns Array of `{ account, quota }` entries, one per active Gemini account.
|
|
174
|
+
* Returns an empty array when there are no Gemini accounts configured.
|
|
175
|
+
*/
|
|
176
|
+
async function fetchAllGeminiCliQuotas(verbose = false) {
|
|
177
|
+
const accounts = (0, account_manager_1.getProviderAccounts)('gemini');
|
|
178
|
+
if (accounts.length === 0) {
|
|
179
|
+
return [];
|
|
180
|
+
}
|
|
181
|
+
const results = await Promise.all(accounts.map(async (account) => ({
|
|
182
|
+
account: account.id,
|
|
183
|
+
quota: await fetchGeminiCliQuota(account.id, verbose),
|
|
184
|
+
})));
|
|
185
|
+
return results;
|
|
186
|
+
}
|
|
187
|
+
exports.fetchAllGeminiCliQuotas = fetchAllGeminiCliQuotas;
|
|
188
|
+
//# sourceMappingURL=quota-fetcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quota-fetcher.js","sourceRoot":"","sources":["../../../../src/cliproxy/quota/quota-fetcher-gemini-cli/quota-fetcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utilities for the Gemini CLI quota fetcher submodule.
|
|
3
|
+
*
|
|
4
|
+
* Includes the diagnostic logger (provider context = cliproxy:quota:gemini-cli)
|
|
5
|
+
* and small value-normalization helpers used by multiple submodules. Token
|
|
6
|
+
* values are never logged here; accountId is attached as provider context
|
|
7
|
+
* only.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Diagnostic-only logger for Gemini CLI quota fetch progress, upstream HTTP
|
|
11
|
+
* status, and recovery hints. Token values live in auth files and are never
|
|
12
|
+
* read into log messages.
|
|
13
|
+
*/
|
|
14
|
+
export declare const logger: import("../../../services/logging").Logger;
|
|
15
|
+
/**
|
|
16
|
+
* Normalize a raw value into a trimmed non-empty string, or null.
|
|
17
|
+
* Returns null for empty strings, non-strings, or whitespace-only input.
|
|
18
|
+
*/
|
|
19
|
+
export declare function normalizeStringValue(value: unknown): string | null;
|
|
20
|
+
/**
|
|
21
|
+
* Normalize a raw value into a finite number, or null.
|
|
22
|
+
* Accepts actual numbers and numeric strings; rejects NaN/Infinity.
|
|
23
|
+
*/
|
|
24
|
+
export declare function normalizeNumberValue(value: unknown): number | null;
|
|
25
|
+
/**
|
|
26
|
+
* Best-effort JSON.parse that returns null on failure instead of throwing.
|
|
27
|
+
* Used when normalizing upstream response bodies into a `json` field.
|
|
28
|
+
*/
|
|
29
|
+
export declare function safeParseJson(bodyText: string): unknown;
|
|
30
|
+
/**
|
|
31
|
+
* Compute the remaining milliseconds available before a deadline, clamped
|
|
32
|
+
* to a minimum of 1ms so AbortController timeouts are always positive.
|
|
33
|
+
*/
|
|
34
|
+
export declare function getRemainingTimeoutMs(deadlineMs: number): number;
|
|
35
|
+
//# sourceMappingURL=shared-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-utils.d.ts","sourceRoot":"","sources":["../../../../src/cliproxy/quota/quota-fetcher-gemini-cli/shared-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;;;GAIG;AACH,eAAO,MAAM,MAAM,4CAA4C,CAAC;AAEhE;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAElE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAWlE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAMvD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEhE"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared utilities for the Gemini CLI quota fetcher submodule.
|
|
4
|
+
*
|
|
5
|
+
* Includes the diagnostic logger (provider context = cliproxy:quota:gemini-cli)
|
|
6
|
+
* and small value-normalization helpers used by multiple submodules. Token
|
|
7
|
+
* values are never logged here; accountId is attached as provider context
|
|
8
|
+
* only.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.getRemainingTimeoutMs = exports.safeParseJson = exports.normalizeNumberValue = exports.normalizeStringValue = exports.logger = void 0;
|
|
12
|
+
const logging_1 = require("../../../services/logging");
|
|
13
|
+
/**
|
|
14
|
+
* Diagnostic-only logger for Gemini CLI quota fetch progress, upstream HTTP
|
|
15
|
+
* status, and recovery hints. Token values live in auth files and are never
|
|
16
|
+
* read into log messages.
|
|
17
|
+
*/
|
|
18
|
+
exports.logger = (0, logging_1.createLogger)('cliproxy:quota:gemini-cli');
|
|
19
|
+
/**
|
|
20
|
+
* Normalize a raw value into a trimmed non-empty string, or null.
|
|
21
|
+
* Returns null for empty strings, non-strings, or whitespace-only input.
|
|
22
|
+
*/
|
|
23
|
+
function normalizeStringValue(value) {
|
|
24
|
+
return typeof value === 'string' && value.trim().length > 0 ? value.trim() : null;
|
|
25
|
+
}
|
|
26
|
+
exports.normalizeStringValue = normalizeStringValue;
|
|
27
|
+
/**
|
|
28
|
+
* Normalize a raw value into a finite number, or null.
|
|
29
|
+
* Accepts actual numbers and numeric strings; rejects NaN/Infinity.
|
|
30
|
+
*/
|
|
31
|
+
function normalizeNumberValue(value) {
|
|
32
|
+
if (typeof value === 'number' && Number.isFinite(value)) {
|
|
33
|
+
return value;
|
|
34
|
+
}
|
|
35
|
+
if (typeof value === 'string' && value.trim().length > 0) {
|
|
36
|
+
const parsed = Number(value);
|
|
37
|
+
if (Number.isFinite(parsed)) {
|
|
38
|
+
return parsed;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
exports.normalizeNumberValue = normalizeNumberValue;
|
|
44
|
+
/**
|
|
45
|
+
* Best-effort JSON.parse that returns null on failure instead of throwing.
|
|
46
|
+
* Used when normalizing upstream response bodies into a `json` field.
|
|
47
|
+
*/
|
|
48
|
+
function safeParseJson(bodyText) {
|
|
49
|
+
try {
|
|
50
|
+
return JSON.parse(bodyText);
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
exports.safeParseJson = safeParseJson;
|
|
57
|
+
/**
|
|
58
|
+
* Compute the remaining milliseconds available before a deadline, clamped
|
|
59
|
+
* to a minimum of 1ms so AbortController timeouts are always positive.
|
|
60
|
+
*/
|
|
61
|
+
function getRemainingTimeoutMs(deadlineMs) {
|
|
62
|
+
return Math.max(1, deadlineMs - Date.now());
|
|
63
|
+
}
|
|
64
|
+
exports.getRemainingTimeoutMs = getRemainingTimeoutMs;
|
|
65
|
+
//# sourceMappingURL=shared-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-utils.js","sourceRoot":"","sources":["../../../../src/cliproxy/quota/quota-fetcher-gemini-cli/shared-utils.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,uDAAyD;AAEzD;;;;GAIG;AACU,QAAA,MAAM,GAAG,IAAA,sBAAY,EAAC,2BAA2B,CAAC,CAAC;AAEhE;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,KAAc;IACjD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACpF,CAAC;AAFD,oDAEC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,KAAc;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAXD,oDAWC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAC,QAAgB;IAC5C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAND,sCAMC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,UAAkB;IACtD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9C,CAAC;AAFD,sDAEC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Supplementary tier/credit metadata fetcher for the Gemini CLI quota fetcher.
|
|
3
|
+
*
|
|
4
|
+
* Wraps the `loadCodeAssist` endpoint to resolve the account's tier label,
|
|
5
|
+
* tier id, normalized tier (free/pro/ultra/unknown), and Google One AI credit
|
|
6
|
+
* balance. Runs alongside the primary quota fetch and shares the same
|
|
7
|
+
* managed-auth context so auth-index lookups are deduped.
|
|
8
|
+
*/
|
|
9
|
+
import type { GeminiCliCodeAssistResponse, GeminiCliSupplementaryInfo, ManagedGeminiAuthContext } from './types';
|
|
10
|
+
/**
|
|
11
|
+
* Resolve the tier id from a loadCodeAssist response.
|
|
12
|
+
* Prefers the paid tier id, then the current tier id. Lowercased.
|
|
13
|
+
* Returns null if neither is present.
|
|
14
|
+
*/
|
|
15
|
+
export declare function resolveGeminiCliTierId(payload: GeminiCliCodeAssistResponse | null): string | null;
|
|
16
|
+
/**
|
|
17
|
+
* Resolve a human-readable tier label from the loadCodeAssist tier id.
|
|
18
|
+
* Returns null when the tier id cannot be mapped to a known label.
|
|
19
|
+
*/
|
|
20
|
+
export declare function resolveGeminiCliTierLabel(payload: GeminiCliCodeAssistResponse | null): string | null;
|
|
21
|
+
/**
|
|
22
|
+
* Resolve the Google One AI credit balance for the account from the
|
|
23
|
+
* loadCodeAssist response. Sums all credits with type `GOOGLE_ONE_AI` on the
|
|
24
|
+
* paid tier (preferred) or current tier. Returns null if no matching credits
|
|
25
|
+
* are present.
|
|
26
|
+
*/
|
|
27
|
+
export declare function resolveGeminiCliCreditBalance(payload: GeminiCliCodeAssistResponse | null): number | null;
|
|
28
|
+
/**
|
|
29
|
+
* Fetch supplementary tier/credit metadata for a Gemini account via the
|
|
30
|
+
* loadCodeAssist endpoint. Never throws: on any failure returns a
|
|
31
|
+
* supplementary info with `normalizedTier: 'unknown'` so the primary quota
|
|
32
|
+
* fetch can still complete. Diagnostic logging is gated on `verbose` and
|
|
33
|
+
* records only accountId, HTTP status, and the source (managed/direct);
|
|
34
|
+
* token values are never logged.
|
|
35
|
+
*/
|
|
36
|
+
export declare function fetchGeminiCliSupplementary(accountId: string, accessToken: string, projectId: string, verbose: boolean, authContext?: ManagedGeminiAuthContext): Promise<GeminiCliSupplementaryInfo>;
|
|
37
|
+
//# sourceMappingURL=supplementary-metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supplementary-metadata.d.ts","sourceRoot":"","sources":["../../../../src/cliproxy/quota/quota-fetcher-gemini-cli/supplementary-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,OAAO,KAAK,EACV,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACzB,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,2BAA2B,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAMjG;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,2BAA2B,GAAG,IAAI,GAC1C,MAAM,GAAG,IAAI,CAGf;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,2BAA2B,GAAG,IAAI,GAC1C,MAAM,GAAG,IAAI,CAuBf;AAED;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,WAAW,CAAC,EAAE,wBAAwB,GACrC,OAAO,CAAC,0BAA0B,CAAC,CAuDrC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Supplementary tier/credit metadata fetcher for the Gemini CLI quota fetcher.
|
|
4
|
+
*
|
|
5
|
+
* Wraps the `loadCodeAssist` endpoint to resolve the account's tier label,
|
|
6
|
+
* tier id, normalized tier (free/pro/ultra/unknown), and Google One AI credit
|
|
7
|
+
* balance. Runs alongside the primary quota fetch and shares the same
|
|
8
|
+
* managed-auth context so auth-index lookups are deduped.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.fetchGeminiCliSupplementary = exports.resolveGeminiCliCreditBalance = exports.resolveGeminiCliTierLabel = exports.resolveGeminiCliTierId = void 0;
|
|
12
|
+
const provider_entitlement_evidence_1 = require("../../auth/provider-entitlement-evidence");
|
|
13
|
+
const managed_request_1 = require("./managed-request");
|
|
14
|
+
const shared_utils_1 = require("./shared-utils");
|
|
15
|
+
const constants_1 = require("./constants");
|
|
16
|
+
/**
|
|
17
|
+
* Resolve the tier id from a loadCodeAssist response.
|
|
18
|
+
* Prefers the paid tier id, then the current tier id. Lowercased.
|
|
19
|
+
* Returns null if neither is present.
|
|
20
|
+
*/
|
|
21
|
+
function resolveGeminiCliTierId(payload) {
|
|
22
|
+
if (!payload)
|
|
23
|
+
return null;
|
|
24
|
+
const currentTier = payload.currentTier ?? payload.current_tier;
|
|
25
|
+
const paidTier = payload.paidTier ?? payload.paid_tier;
|
|
26
|
+
const rawId = (0, shared_utils_1.normalizeStringValue)(paidTier?.id) ?? (0, shared_utils_1.normalizeStringValue)(currentTier?.id);
|
|
27
|
+
return rawId ? rawId.toLowerCase() : null;
|
|
28
|
+
}
|
|
29
|
+
exports.resolveGeminiCliTierId = resolveGeminiCliTierId;
|
|
30
|
+
/**
|
|
31
|
+
* Resolve a human-readable tier label from the loadCodeAssist tier id.
|
|
32
|
+
* Returns null when the tier id cannot be mapped to a known label.
|
|
33
|
+
*/
|
|
34
|
+
function resolveGeminiCliTierLabel(payload) {
|
|
35
|
+
const tierId = resolveGeminiCliTierId(payload);
|
|
36
|
+
return (0, provider_entitlement_evidence_1.getProviderTierLabel)(tierId);
|
|
37
|
+
}
|
|
38
|
+
exports.resolveGeminiCliTierLabel = resolveGeminiCliTierLabel;
|
|
39
|
+
/**
|
|
40
|
+
* Resolve the Google One AI credit balance for the account from the
|
|
41
|
+
* loadCodeAssist response. Sums all credits with type `GOOGLE_ONE_AI` on the
|
|
42
|
+
* paid tier (preferred) or current tier. Returns null if no matching credits
|
|
43
|
+
* are present.
|
|
44
|
+
*/
|
|
45
|
+
function resolveGeminiCliCreditBalance(payload) {
|
|
46
|
+
if (!payload)
|
|
47
|
+
return null;
|
|
48
|
+
const paidTier = payload.paidTier ?? payload.paid_tier;
|
|
49
|
+
const currentTier = payload.currentTier ?? payload.current_tier;
|
|
50
|
+
const tier = paidTier ?? currentTier;
|
|
51
|
+
if (!tier)
|
|
52
|
+
return null;
|
|
53
|
+
const credits = tier.availableCredits ?? tier.available_credits ?? [];
|
|
54
|
+
let total = 0;
|
|
55
|
+
let found = false;
|
|
56
|
+
for (const credit of credits) {
|
|
57
|
+
const creditType = (0, shared_utils_1.normalizeStringValue)(credit.creditType ?? credit.credit_type);
|
|
58
|
+
if (creditType !== constants_1.GEMINI_CLI_G1_CREDIT_TYPE)
|
|
59
|
+
continue;
|
|
60
|
+
const amount = (0, shared_utils_1.normalizeNumberValue)(credit.creditAmount ?? credit.credit_amount);
|
|
61
|
+
if (amount !== null) {
|
|
62
|
+
total += amount;
|
|
63
|
+
found = true;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return found ? total : null;
|
|
67
|
+
}
|
|
68
|
+
exports.resolveGeminiCliCreditBalance = resolveGeminiCliCreditBalance;
|
|
69
|
+
/**
|
|
70
|
+
* Fetch supplementary tier/credit metadata for a Gemini account via the
|
|
71
|
+
* loadCodeAssist endpoint. Never throws: on any failure returns a
|
|
72
|
+
* supplementary info with `normalizedTier: 'unknown'` so the primary quota
|
|
73
|
+
* fetch can still complete. Diagnostic logging is gated on `verbose` and
|
|
74
|
+
* records only accountId, HTTP status, and the source (managed/direct);
|
|
75
|
+
* token values are never logged.
|
|
76
|
+
*/
|
|
77
|
+
async function fetchGeminiCliSupplementary(accountId, accessToken, projectId, verbose, authContext) {
|
|
78
|
+
const requestBody = JSON.stringify({
|
|
79
|
+
cloudaicompanionProject: projectId,
|
|
80
|
+
metadata: {
|
|
81
|
+
ideType: 'IDE_UNSPECIFIED',
|
|
82
|
+
platform: 'PLATFORM_UNSPECIFIED',
|
|
83
|
+
pluginType: 'GEMINI',
|
|
84
|
+
duetProject: projectId,
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
try {
|
|
88
|
+
const response = await (0, managed_request_1.performGeminiCliRequest)(accountId, accessToken, constants_1.GEMINI_CLI_CODE_ASSIST_URL, requestBody, false, authContext);
|
|
89
|
+
if (response.status !== 200) {
|
|
90
|
+
if (verbose) {
|
|
91
|
+
const source = response.viaManagement ? 'managed' : 'direct';
|
|
92
|
+
shared_utils_1.logger.info('gemini_cli.supplementary_metadata_unavailable', `Gemini CLI supplementary metadata unavailable via ${source}: HTTP ${response.status}`, { provider: 'gemini', accountId, httpStatus: response.status, source });
|
|
93
|
+
}
|
|
94
|
+
return { tierLabel: null, tierId: null, creditBalance: null, normalizedTier: 'unknown' };
|
|
95
|
+
}
|
|
96
|
+
const payload = response.json;
|
|
97
|
+
return {
|
|
98
|
+
tierLabel: resolveGeminiCliTierLabel(payload),
|
|
99
|
+
tierId: resolveGeminiCliTierId(payload),
|
|
100
|
+
creditBalance: resolveGeminiCliCreditBalance(payload),
|
|
101
|
+
normalizedTier: (0, provider_entitlement_evidence_1.normalizeProviderTierId)(resolveGeminiCliTierId(payload)),
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
if (verbose) {
|
|
106
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
107
|
+
shared_utils_1.logger.info('gemini_cli.supplementary_metadata_skipped', `Gemini CLI supplementary metadata skipped: ${message}`, {
|
|
108
|
+
provider: 'gemini',
|
|
109
|
+
accountId,
|
|
110
|
+
err: error instanceof Error ? { name: error.name, message } : { message },
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
return { tierLabel: null, tierId: null, creditBalance: null, normalizedTier: 'unknown' };
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
exports.fetchGeminiCliSupplementary = fetchGeminiCliSupplementary;
|
|
117
|
+
//# sourceMappingURL=supplementary-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supplementary-metadata.js","sourceRoot":"","sources":["../../../../src/cliproxy/quota/quota-fetcher-gemini-cli/supplementary-metadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token parsing helpers for Gemini CLI auth files.
|
|
3
|
+
*
|
|
4
|
+
* Extracts access tokens, expiry, and project IDs from the raw auth file
|
|
5
|
+
* payload. Gemini auth files come in two structural variants:
|
|
6
|
+
* - flat: { access_token, expired, project_id, account }
|
|
7
|
+
* - nested:{ token: { access_token, expiry }, project_id, account }
|
|
8
|
+
* These helpers handle both without throwing on shape mismatches.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Extract the access token from a Gemini auth file payload.
|
|
12
|
+
* Handles both flat (`access_token`) and nested (`token.access_token`) shapes.
|
|
13
|
+
* Returns null if no usable token is present.
|
|
14
|
+
*/
|
|
15
|
+
export declare function extractAccessToken(data: Record<string, unknown>): string | null;
|
|
16
|
+
/**
|
|
17
|
+
* Extract the token expiry from a Gemini auth file payload.
|
|
18
|
+
* Handles both flat (`expired`) and nested (`token.expiry`) shapes.
|
|
19
|
+
* Returns the raw string/number, or null if absent.
|
|
20
|
+
*/
|
|
21
|
+
export declare function extractExpiry(data: Record<string, unknown>): string | number | null;
|
|
22
|
+
/**
|
|
23
|
+
* Extract the project ID from an auth file's `account` field.
|
|
24
|
+
* Input shape: "user@example.com (cloudaicompanion-abc-123)"
|
|
25
|
+
* Returns the last parenthesized segment, or null if no match.
|
|
26
|
+
*
|
|
27
|
+
* Example:
|
|
28
|
+
* "user@example.com (cloudaicompanion-abc-123)" -> "cloudaicompanion-abc-123"
|
|
29
|
+
*/
|
|
30
|
+
export declare function resolveGeminiCliProjectId(accountField: string): string | null;
|
|
31
|
+
//# sourceMappingURL=token-parsing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-parsing.d.ts","sourceRoot":"","sources":["../../../../src/cliproxy/quota/quota-fetcher-gemini-cli/token-parsing.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAa/E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAmBnF;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ7E"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Token parsing helpers for Gemini CLI auth files.
|
|
4
|
+
*
|
|
5
|
+
* Extracts access tokens, expiry, and project IDs from the raw auth file
|
|
6
|
+
* payload. Gemini auth files come in two structural variants:
|
|
7
|
+
* - flat: { access_token, expired, project_id, account }
|
|
8
|
+
* - nested:{ token: { access_token, expiry }, project_id, account }
|
|
9
|
+
* These helpers handle both without throwing on shape mismatches.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.resolveGeminiCliProjectId = exports.extractExpiry = exports.extractAccessToken = void 0;
|
|
13
|
+
/**
|
|
14
|
+
* Extract the access token from a Gemini auth file payload.
|
|
15
|
+
* Handles both flat (`access_token`) and nested (`token.access_token`) shapes.
|
|
16
|
+
* Returns null if no usable token is present.
|
|
17
|
+
*/
|
|
18
|
+
function extractAccessToken(data) {
|
|
19
|
+
// Flat structure: { access_token: "..." }
|
|
20
|
+
if (typeof data.access_token === 'string') {
|
|
21
|
+
return data.access_token;
|
|
22
|
+
}
|
|
23
|
+
// Nested structure: { token: { access_token: "..." } }
|
|
24
|
+
if (data.token && typeof data.token === 'object') {
|
|
25
|
+
const token = data.token;
|
|
26
|
+
if (typeof token.access_token === 'string') {
|
|
27
|
+
return token.access_token;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
exports.extractAccessToken = extractAccessToken;
|
|
33
|
+
/**
|
|
34
|
+
* Extract the token expiry from a Gemini auth file payload.
|
|
35
|
+
* Handles both flat (`expired`) and nested (`token.expiry`) shapes.
|
|
36
|
+
* Returns the raw string/number, or null if absent.
|
|
37
|
+
*/
|
|
38
|
+
function extractExpiry(data) {
|
|
39
|
+
// Flat structure: { expired: "..." }
|
|
40
|
+
if (typeof data.expired === 'string') {
|
|
41
|
+
return data.expired;
|
|
42
|
+
}
|
|
43
|
+
if (typeof data.expired === 'number') {
|
|
44
|
+
return data.expired;
|
|
45
|
+
}
|
|
46
|
+
// Nested structure: { token: { expiry: "..." } }
|
|
47
|
+
if (data.token && typeof data.token === 'object') {
|
|
48
|
+
const token = data.token;
|
|
49
|
+
if (typeof token.expiry === 'string') {
|
|
50
|
+
return token.expiry;
|
|
51
|
+
}
|
|
52
|
+
if (typeof token.expiry === 'number') {
|
|
53
|
+
return token.expiry;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
exports.extractExpiry = extractExpiry;
|
|
59
|
+
/**
|
|
60
|
+
* Extract the project ID from an auth file's `account` field.
|
|
61
|
+
* Input shape: "user@example.com (cloudaicompanion-abc-123)"
|
|
62
|
+
* Returns the last parenthesized segment, or null if no match.
|
|
63
|
+
*
|
|
64
|
+
* Example:
|
|
65
|
+
* "user@example.com (cloudaicompanion-abc-123)" -> "cloudaicompanion-abc-123"
|
|
66
|
+
*/
|
|
67
|
+
function resolveGeminiCliProjectId(accountField) {
|
|
68
|
+
const regex = /\(([^()]+)\)/g;
|
|
69
|
+
let match;
|
|
70
|
+
let lastMatch = null;
|
|
71
|
+
while ((match = regex.exec(accountField)) !== null) {
|
|
72
|
+
lastMatch = match[1];
|
|
73
|
+
}
|
|
74
|
+
return lastMatch;
|
|
75
|
+
}
|
|
76
|
+
exports.resolveGeminiCliProjectId = resolveGeminiCliProjectId;
|
|
77
|
+
//# sourceMappingURL=token-parsing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-parsing.js","sourceRoot":"","sources":["../../../../src/cliproxy/quota/quota-fetcher-gemini-cli/token-parsing.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,IAA6B;IAC9D,0CAA0C;IAC1C,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IACD,uDAAuD;IACvD,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAgC,CAAC;QACpD,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC3C,OAAO,KAAK,CAAC,YAAY,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAbD,gDAaC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,IAA6B;IACzD,qCAAqC;IACrC,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,iDAAiD;IACjD,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAgC,CAAC;QACpD,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC,MAAM,CAAC;QACtB,CAAC;QACD,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC,MAAM,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAnBD,sCAmBC;AAED;;;;;;;GAOG;AACH,SAAgB,yBAAyB,CAAC,YAAoB;IAC5D,MAAM,KAAK,GAAG,eAAe,CAAC;IAC9B,IAAI,KAA6B,CAAC;IAClC,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACnD,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AARD,8DAQC"}
|