@kaitranntt/ccs 7.74.0 → 7.75.0-dev.10
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/dist/api/services/cliproxy-profile-bridge.js +4 -4
- package/dist/api/services/cliproxy-profile-bridge.js.map +1 -1
- package/dist/api/services/profile-lifecycle-validation.js +1 -1
- package/dist/api/services/profile-lifecycle-validation.js.map +1 -1
- package/dist/api/services/profile-writer.d.ts +1 -1
- package/dist/api/services/profile-writer.d.ts.map +1 -1
- package/dist/api/services/profile-writer.js +12 -6
- package/dist/api/services/profile-writer.js.map +1 -1
- package/dist/auth/profile-registry.d.ts.map +1 -1
- package/dist/auth/profile-registry.js +9 -0
- package/dist/auth/profile-registry.js.map +1 -1
- package/dist/bin/ccsxp-runtime.d.ts +8 -0
- package/dist/bin/ccsxp-runtime.d.ts.map +1 -1
- package/dist/bin/ccsxp-runtime.js +60 -3
- package/dist/bin/ccsxp-runtime.js.map +1 -1
- package/dist/ccs.js +29 -4
- package/dist/ccs.js.map +1 -1
- package/dist/cliproxy/{account-manager.d.ts → accounts/account-manager.d.ts} +2 -2
- package/dist/cliproxy/accounts/account-manager.d.ts.map +1 -0
- package/dist/cliproxy/{account-manager.js → accounts/account-manager.js} +34 -34
- package/dist/cliproxy/accounts/account-manager.js.map +1 -0
- package/dist/cliproxy/{account-safety.d.ts → accounts/account-safety.d.ts} +1 -1
- package/dist/cliproxy/accounts/account-safety.d.ts.map +1 -0
- package/dist/cliproxy/{account-safety.js → accounts/account-safety.js} +10 -5
- package/dist/cliproxy/accounts/account-safety.js.map +1 -0
- package/dist/cliproxy/accounts/account-stats-key.d.ts.map +1 -0
- package/dist/cliproxy/accounts/account-stats-key.js.map +1 -0
- package/dist/cliproxy/accounts/registry.js +1 -1
- package/dist/cliproxy/accounts/registry.js.map +1 -1
- package/dist/cliproxy/accounts/token-file-ops.js +1 -1
- package/dist/cliproxy/accounts/token-file-ops.js.map +1 -1
- package/dist/cliproxy/{codex-plan-compatibility.d.ts → ai-providers/codex-plan-compatibility.d.ts} +4 -4
- package/dist/cliproxy/ai-providers/codex-plan-compatibility.d.ts.map +1 -0
- package/dist/cliproxy/{codex-plan-compatibility.js → ai-providers/codex-plan-compatibility.js} +6 -5
- package/dist/cliproxy/ai-providers/codex-plan-compatibility.js.map +1 -0
- package/dist/cliproxy/ai-providers/codex-reasoning-proxy.d.ts.map +1 -0
- package/dist/cliproxy/{codex-reasoning-proxy.js → ai-providers/codex-reasoning-proxy.js} +1 -1
- package/dist/cliproxy/ai-providers/codex-reasoning-proxy.js.map +1 -0
- package/dist/cliproxy/ai-providers/config-store.js +3 -3
- package/dist/cliproxy/ai-providers/config-store.js.map +1 -1
- package/dist/cliproxy/{managed-model-prefixes.d.ts → ai-providers/managed-model-prefixes.d.ts} +1 -1
- package/dist/cliproxy/ai-providers/managed-model-prefixes.d.ts.map +1 -0
- package/dist/cliproxy/{managed-model-prefixes.js → ai-providers/managed-model-prefixes.js} +3 -3
- package/dist/cliproxy/ai-providers/managed-model-prefixes.js.map +1 -0
- package/dist/cliproxy/{model-id-normalizer.d.ts → ai-providers/model-id-normalizer.d.ts} +1 -1
- package/dist/cliproxy/ai-providers/model-id-normalizer.d.ts.map +1 -0
- package/dist/cliproxy/{model-id-normalizer.js → ai-providers/model-id-normalizer.js} +1 -1
- package/dist/cliproxy/ai-providers/model-id-normalizer.js.map +1 -0
- package/dist/cliproxy/ai-providers/openai-compat-manager.d.ts.map +1 -0
- package/dist/cliproxy/{openai-compat-manager.js → ai-providers/openai-compat-manager.js} +7 -6
- package/dist/cliproxy/ai-providers/openai-compat-manager.js.map +1 -0
- package/dist/cliproxy/ai-providers/schema-sanitizer.d.ts.map +1 -0
- package/dist/cliproxy/ai-providers/schema-sanitizer.js.map +1 -0
- package/dist/cliproxy/ai-providers/service.d.ts.map +1 -1
- package/dist/cliproxy/ai-providers/service.js +10 -3
- package/dist/cliproxy/ai-providers/service.js.map +1 -1
- package/dist/cliproxy/{tool-name-mapper.d.ts → ai-providers/tool-name-mapper.d.ts} +7 -2
- package/dist/cliproxy/ai-providers/tool-name-mapper.d.ts.map +1 -0
- package/dist/cliproxy/{tool-name-mapper.js → ai-providers/tool-name-mapper.js} +35 -21
- package/dist/cliproxy/ai-providers/tool-name-mapper.js.map +1 -0
- package/dist/cliproxy/{tool-name-sanitizer.d.ts → ai-providers/tool-name-sanitizer.d.ts} +2 -1
- package/dist/cliproxy/ai-providers/tool-name-sanitizer.d.ts.map +1 -0
- package/dist/cliproxy/{tool-name-sanitizer.js → ai-providers/tool-name-sanitizer.js} +23 -3
- package/dist/cliproxy/ai-providers/tool-name-sanitizer.js.map +1 -0
- package/dist/cliproxy/auth/antigravity-responsibility.d.ts.map +1 -0
- package/dist/cliproxy/{antigravity-responsibility.js → auth/antigravity-responsibility.js} +2 -2
- package/dist/cliproxy/auth/antigravity-responsibility.js.map +1 -0
- package/dist/cliproxy/{auth-handler.d.ts → auth/auth-handler.d.ts} +5 -5
- package/dist/cliproxy/auth/auth-handler.d.ts.map +1 -0
- package/dist/cliproxy/{auth-handler.js → auth/auth-handler.js} +23 -23
- package/dist/cliproxy/auth/auth-handler.js.map +1 -0
- package/dist/cliproxy/{auth-session-manager.d.ts → auth/auth-session-manager.d.ts} +1 -1
- package/dist/cliproxy/auth/auth-session-manager.d.ts.map +1 -0
- package/dist/cliproxy/{auth-session-manager.js → auth/auth-session-manager.js} +16 -9
- package/dist/cliproxy/auth/auth-session-manager.js.map +1 -0
- package/dist/cliproxy/auth/auth-token-manager.d.ts.map +1 -0
- package/dist/cliproxy/{auth-token-manager.js → auth/auth-token-manager.js} +6 -6
- package/dist/cliproxy/auth/auth-token-manager.js.map +1 -0
- 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-utils.d.ts.map +1 -0
- package/dist/cliproxy/auth/auth-utils.js.map +1 -0
- package/dist/cliproxy/auth/device-code-handler.d.ts.map +1 -0
- package/dist/cliproxy/auth/device-code-handler.js.map +1 -0
- package/dist/cliproxy/auth/kiro-import.js +1 -1
- package/dist/cliproxy/auth/kiro-import.js.map +1 -1
- package/dist/cliproxy/auth/oauth-handler.d.ts +2 -2
- package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
- package/dist/cliproxy/auth/oauth-handler.js +25 -5
- package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
- package/dist/cliproxy/auth/oauth-process.d.ts +1 -1
- package/dist/cliproxy/auth/oauth-process.d.ts.map +1 -1
- package/dist/cliproxy/auth/oauth-process.js +3 -3
- package/dist/cliproxy/auth/oauth-process.js.map +1 -1
- package/dist/cliproxy/auth/project-selection-handler.d.ts.map +1 -0
- package/dist/cliproxy/auth/project-selection-handler.js.map +1 -0
- package/dist/cliproxy/{provider-entitlement-evidence.d.ts → auth/provider-entitlement-evidence.d.ts} +1 -1
- package/dist/cliproxy/auth/provider-entitlement-evidence.d.ts.map +1 -0
- package/dist/cliproxy/auth/provider-entitlement-evidence.js.map +1 -0
- package/dist/cliproxy/{provider-entitlement-types.d.ts → auth/provider-entitlement-types.d.ts} +1 -1
- package/dist/cliproxy/auth/provider-entitlement-types.d.ts.map +1 -0
- package/dist/cliproxy/auth/provider-entitlement-types.js.map +1 -0
- package/dist/cliproxy/auth/provider-refreshers/index.js +1 -1
- package/dist/cliproxy/auth/provider-refreshers/index.js.map +1 -1
- package/dist/cliproxy/auth/token-expiry-checker.js +1 -1
- package/dist/cliproxy/auth/token-expiry-checker.js.map +1 -1
- package/dist/cliproxy/auth/token-manager.d.ts +1 -1
- package/dist/cliproxy/auth/token-manager.d.ts.map +1 -1
- package/dist/cliproxy/auth/token-manager.js +4 -4
- package/dist/cliproxy/auth/token-manager.js.map +1 -1
- package/dist/cliproxy/binary/extractor.js +1 -1
- package/dist/cliproxy/binary/extractor.js.map +1 -1
- package/dist/cliproxy/binary/installer.d.ts +1 -1
- package/dist/cliproxy/binary/installer.d.ts.map +1 -1
- package/dist/cliproxy/binary/installer.js +1 -1
- package/dist/cliproxy/binary/installer.js.map +1 -1
- package/dist/cliproxy/binary/lifecycle.d.ts.map +1 -1
- package/dist/cliproxy/binary/lifecycle.js +5 -4
- package/dist/cliproxy/binary/lifecycle.js.map +1 -1
- package/dist/cliproxy/{platform-detector.d.ts → binary/platform-detector.d.ts} +1 -1
- package/dist/cliproxy/binary/platform-detector.d.ts.map +1 -0
- package/dist/cliproxy/binary/platform-detector.js.map +1 -0
- package/dist/cliproxy/binary/tar-extractor.d.ts.map +1 -1
- package/dist/cliproxy/binary/tar-extractor.js +1 -1
- package/dist/cliproxy/binary/tar-extractor.js.map +1 -1
- package/dist/cliproxy/binary/version-cache.js +2 -2
- package/dist/cliproxy/binary/version-cache.js.map +1 -1
- package/dist/cliproxy/binary/version-checker.js +1 -1
- package/dist/cliproxy/binary/version-checker.js.map +1 -1
- package/dist/cliproxy/binary/zip-extractor.d.ts.map +1 -1
- package/dist/cliproxy/binary/zip-extractor.js +1 -1
- package/dist/cliproxy/binary/zip-extractor.js.map +1 -1
- package/dist/cliproxy/binary-manager.js +2 -2
- package/dist/cliproxy/binary-manager.js.map +1 -1
- package/dist/cliproxy/{base-config-loader.d.ts → config/base-config-loader.d.ts} +1 -1
- package/dist/cliproxy/config/base-config-loader.d.ts.map +1 -0
- package/dist/cliproxy/{base-config-loader.js → config/base-config-loader.js} +1 -1
- package/dist/cliproxy/config/base-config-loader.js.map +1 -0
- package/dist/cliproxy/config/composite-validator.d.ts.map +1 -0
- package/dist/cliproxy/{composite-validator.js → config/composite-validator.js} +2 -2
- package/dist/cliproxy/config/composite-validator.js.map +1 -0
- package/dist/cliproxy/{config-generator.d.ts → config/config-generator.d.ts} +1 -1
- package/dist/cliproxy/config/config-generator.d.ts.map +1 -0
- package/dist/cliproxy/{config-generator.js → config/config-generator.js} +1 -1
- package/dist/cliproxy/config/config-generator.js.map +1 -0
- package/dist/cliproxy/config/env-builder.js +3 -3
- package/dist/cliproxy/config/env-builder.js.map +1 -1
- package/dist/cliproxy/config/generator.d.ts +2 -1
- package/dist/cliproxy/config/generator.d.ts.map +1 -1
- package/dist/cliproxy/config/generator.js +28 -4
- package/dist/cliproxy/config/generator.js.map +1 -1
- package/dist/cliproxy/{model-config.d.ts → config/model-config.d.ts} +1 -1
- package/dist/cliproxy/config/model-config.d.ts.map +1 -0
- package/dist/cliproxy/{model-config.js → config/model-config.js} +5 -5
- package/dist/cliproxy/config/model-config.js.map +1 -0
- package/dist/cliproxy/config/thinking-config.js +1 -1
- package/dist/cliproxy/config/thinking-config.js.map +1 -1
- package/dist/cliproxy/{cliproxy-executor.d.ts → executor/cliproxy-executor.d.ts} +2 -2
- package/dist/cliproxy/executor/cliproxy-executor.d.ts.map +1 -0
- package/dist/cliproxy/{cliproxy-executor.js → executor/cliproxy-executor.js} +6 -6
- package/dist/cliproxy/executor/cliproxy-executor.js.map +1 -0
- package/dist/cliproxy/executor/env-resolver.d.ts +5 -5
- package/dist/cliproxy/executor/env-resolver.d.ts.map +1 -1
- package/dist/cliproxy/executor/env-resolver.js +3 -3
- package/dist/cliproxy/executor/env-resolver.js.map +1 -1
- package/dist/cliproxy/executor/index.d.ts +5 -0
- package/dist/cliproxy/executor/index.d.ts.map +1 -1
- package/dist/cliproxy/executor/index.js +39 -23
- package/dist/cliproxy/executor/index.js.map +1 -1
- package/dist/cliproxy/executor/lifecycle-manager.js +1 -1
- package/dist/cliproxy/executor/lifecycle-manager.js.map +1 -1
- package/dist/cliproxy/executor/retry-handler.js +4 -4
- 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 +3 -3
- package/dist/cliproxy/executor/session-bridge.js.map +1 -1
- package/dist/cliproxy/index.d.ts +31 -31
- package/dist/cliproxy/index.d.ts.map +1 -1
- package/dist/cliproxy/index.js +20 -20
- package/dist/cliproxy/index.js.map +1 -1
- package/dist/cliproxy/{management-api-client.d.ts → management/management-api-client.d.ts} +1 -1
- package/dist/cliproxy/management/management-api-client.d.ts.map +1 -0
- package/dist/cliproxy/{management-api-client.js → management/management-api-client.js} +4 -3
- package/dist/cliproxy/management/management-api-client.js.map +1 -0
- package/dist/cliproxy/management/management-api-types.d.ts.map +1 -0
- package/dist/cliproxy/management/management-api-types.js.map +1 -0
- package/dist/cliproxy/management/remote-token-uploader.d.ts.map +1 -0
- package/dist/cliproxy/{remote-token-uploader.js → management/remote-token-uploader.js} +2 -2
- package/dist/cliproxy/management/remote-token-uploader.js.map +1 -0
- package/dist/cliproxy/model-catalog.d.ts.map +1 -1
- package/dist/cliproxy/model-catalog.js +13 -1
- package/dist/cliproxy/model-catalog.js.map +1 -1
- package/dist/cliproxy/proxy/https-tunnel-proxy.d.ts.map +1 -0
- package/dist/cliproxy/{https-tunnel-proxy.js → proxy/https-tunnel-proxy.js} +7 -2
- package/dist/cliproxy/proxy/https-tunnel-proxy.js.map +1 -0
- package/dist/cliproxy/{proxy-config-resolver.d.ts → proxy/proxy-config-resolver.d.ts} +1 -1
- package/dist/cliproxy/proxy/proxy-config-resolver.d.ts.map +1 -0
- package/dist/cliproxy/{proxy-config-resolver.js → proxy/proxy-config-resolver.js} +3 -3
- package/dist/cliproxy/proxy/proxy-config-resolver.js.map +1 -0
- package/dist/cliproxy/{proxy-detector.d.ts → proxy/proxy-detector.d.ts} +1 -1
- package/dist/cliproxy/proxy/proxy-detector.d.ts.map +1 -0
- package/dist/cliproxy/{proxy-detector.js → proxy/proxy-detector.js} +7 -7
- package/dist/cliproxy/proxy/proxy-detector.js.map +1 -0
- package/dist/cliproxy/proxy/proxy-target-resolver.d.ts.map +1 -0
- package/dist/cliproxy/{proxy-target-resolver.js → proxy/proxy-target-resolver.js} +7 -7
- package/dist/cliproxy/proxy/proxy-target-resolver.js.map +1 -0
- package/dist/cliproxy/proxy/tool-sanitization-proxy.d.ts.map +1 -0
- package/dist/cliproxy/{tool-sanitization-proxy.js → proxy/tool-sanitization-proxy.js} +6 -6
- package/dist/cliproxy/proxy/tool-sanitization-proxy.js.map +1 -0
- package/dist/cliproxy/quota/gemini-cli-quota-normalizer.d.ts.map +1 -0
- package/dist/cliproxy/quota/gemini-cli-quota-normalizer.js.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-claude-normalizer.d.ts.map +1 -0
- package/dist/cliproxy/{quota-fetcher-claude-normalizer.js → quota/quota-fetcher-claude-normalizer.js} +17 -13
- package/dist/cliproxy/quota/quota-fetcher-claude-normalizer.js.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-claude.d.ts.map +1 -0
- package/dist/cliproxy/{quota-fetcher-claude.js → quota/quota-fetcher-claude.js} +3 -3
- package/dist/cliproxy/quota/quota-fetcher-claude.js.map +1 -0
- package/dist/cliproxy/{quota-fetcher-codex.d.ts → quota/quota-fetcher-codex.d.ts} +18 -3
- package/dist/cliproxy/quota/quota-fetcher-codex.d.ts.map +1 -0
- package/dist/cliproxy/{quota-fetcher-codex.js → quota/quota-fetcher-codex.js} +78 -28
- package/dist/cliproxy/quota/quota-fetcher-codex.js.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli.d.ts.map +1 -0
- package/dist/cliproxy/{quota-fetcher-gemini-cli.js → quota/quota-fetcher-gemini-cli.js} +6 -6
- package/dist/cliproxy/quota/quota-fetcher-gemini-cli.js.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-ghcp.d.ts.map +1 -0
- package/dist/cliproxy/{quota-fetcher-ghcp.js → quota/quota-fetcher-ghcp.js} +21 -10
- package/dist/cliproxy/quota/quota-fetcher-ghcp.js.map +1 -0
- package/dist/cliproxy/{quota-fetcher.d.ts → quota/quota-fetcher.d.ts} +3 -3
- package/dist/cliproxy/quota/quota-fetcher.d.ts.map +1 -0
- package/dist/cliproxy/{quota-fetcher.js → quota/quota-fetcher.js} +5 -5
- package/dist/cliproxy/quota/quota-fetcher.js.map +1 -0
- package/dist/cliproxy/{quota-manager.d.ts → quota/quota-manager.d.ts} +7 -4
- package/dist/cliproxy/quota/quota-manager.d.ts.map +1 -0
- package/dist/cliproxy/{quota-manager.js → quota/quota-manager.js} +184 -70
- package/dist/cliproxy/quota/quota-manager.js.map +1 -0
- package/dist/cliproxy/quota/quota-response-cache.d.ts.map +1 -0
- package/dist/cliproxy/quota/quota-response-cache.js.map +1 -0
- package/dist/cliproxy/{quota-types.d.ts → quota/quota-types.d.ts} +17 -3
- package/dist/cliproxy/quota/quota-types.d.ts.map +1 -0
- package/dist/cliproxy/quota/quota-types.js.map +1 -0
- package/dist/cliproxy/{routing-strategy-http.d.ts → routing/routing-strategy-http.d.ts} +2 -1
- package/dist/cliproxy/routing/routing-strategy-http.d.ts.map +1 -0
- package/dist/cliproxy/{routing-strategy-http.js → routing/routing-strategy-http.js} +8 -3
- package/dist/cliproxy/routing/routing-strategy-http.js.map +1 -0
- package/dist/cliproxy/routing/routing-strategy.d.ts +41 -0
- package/dist/cliproxy/routing/routing-strategy.d.ts.map +1 -0
- package/dist/cliproxy/routing/routing-strategy.js +272 -0
- package/dist/cliproxy/routing/routing-strategy.js.map +1 -0
- package/dist/cliproxy/service-manager.d.ts +17 -1
- package/dist/cliproxy/service-manager.d.ts.map +1 -1
- package/dist/cliproxy/service-manager.js +15 -10
- package/dist/cliproxy/service-manager.js.map +1 -1
- package/dist/cliproxy/services/binary-service.js +1 -1
- package/dist/cliproxy/services/binary-service.js.map +1 -1
- package/dist/cliproxy/{catalog-cache.d.ts → services/catalog-cache.d.ts} +3 -3
- package/dist/cliproxy/services/catalog-cache.d.ts.map +1 -0
- package/dist/cliproxy/{catalog-cache.js → services/catalog-cache.js} +4 -4
- package/dist/cliproxy/services/catalog-cache.js.map +1 -0
- package/dist/cliproxy/{catalog-routing.d.ts → services/catalog-routing.d.ts} +3 -3
- package/dist/cliproxy/services/catalog-routing.d.ts.map +1 -0
- package/dist/cliproxy/{catalog-routing.js → services/catalog-routing.js} +1 -1
- package/dist/cliproxy/services/catalog-routing.js.map +1 -0
- package/dist/cliproxy/services/proxy-lifecycle-service.js +1 -1
- package/dist/cliproxy/services/proxy-lifecycle-service.js.map +1 -1
- package/dist/cliproxy/{remote-auth-fetcher.d.ts → services/remote-auth-fetcher.d.ts} +2 -2
- package/dist/cliproxy/services/remote-auth-fetcher.d.ts.map +1 -0
- package/dist/cliproxy/{remote-auth-fetcher.js → services/remote-auth-fetcher.js} +2 -2
- package/dist/cliproxy/services/remote-auth-fetcher.js.map +1 -0
- package/dist/cliproxy/services/remote-proxy-client.d.ts.map +1 -0
- package/dist/cliproxy/{remote-proxy-client.js → services/remote-proxy-client.js} +1 -1
- package/dist/cliproxy/services/remote-proxy-client.js.map +1 -0
- package/dist/cliproxy/services/startup-lock.d.ts.map +1 -0
- package/dist/cliproxy/{startup-lock.js → services/startup-lock.js} +2 -2
- package/dist/cliproxy/services/startup-lock.js.map +1 -0
- package/dist/cliproxy/services/stats-fetcher.d.ts.map +1 -0
- package/dist/cliproxy/{stats-fetcher.js → services/stats-fetcher.js} +2 -2
- package/dist/cliproxy/services/stats-fetcher.js.map +1 -0
- package/dist/cliproxy/services/stats-transformer.d.ts.map +1 -0
- package/dist/cliproxy/{stats-transformer.js → services/stats-transformer.js} +3 -3
- package/dist/cliproxy/services/stats-transformer.js.map +1 -0
- package/dist/cliproxy/services/variant-config-adapter.js +1 -1
- package/dist/cliproxy/services/variant-config-adapter.js.map +1 -1
- package/dist/cliproxy/services/variant-service.js +3 -3
- package/dist/cliproxy/services/variant-service.js.map +1 -1
- package/dist/cliproxy/services/variant-settings.js +3 -3
- package/dist/cliproxy/services/variant-settings.js.map +1 -1
- package/dist/cliproxy/session-tracker.js +2 -2
- package/dist/cliproxy/session-tracker.js.map +1 -1
- package/dist/cliproxy/sync/local-config-sync.js +1 -1
- package/dist/cliproxy/sync/local-config-sync.js.map +1 -1
- package/dist/cliproxy/sync/profile-mapper.d.ts +1 -1
- package/dist/cliproxy/sync/profile-mapper.d.ts.map +1 -1
- package/dist/cliproxy/sync/profile-mapper.js +21 -0
- package/dist/cliproxy/sync/profile-mapper.js.map +1 -1
- package/dist/cliproxy/types/binary-types.d.ts +48 -0
- package/dist/cliproxy/types/binary-types.d.ts.map +1 -0
- package/dist/cliproxy/types/binary-types.js +6 -0
- package/dist/cliproxy/types/binary-types.js.map +1 -0
- package/dist/cliproxy/types/config-types.d.ts +89 -0
- package/dist/cliproxy/types/config-types.d.ts.map +1 -0
- package/dist/cliproxy/types/config-types.js +6 -0
- package/dist/cliproxy/types/config-types.js.map +1 -0
- package/dist/cliproxy/types/index.d.ts +5 -0
- package/dist/cliproxy/types/index.d.ts.map +1 -0
- package/dist/cliproxy/types/index.js +21 -0
- package/dist/cliproxy/types/index.js.map +1 -0
- package/dist/cliproxy/types/platform-types.d.ts +17 -0
- package/dist/cliproxy/types/platform-types.d.ts.map +1 -0
- package/dist/cliproxy/types/platform-types.js +6 -0
- package/dist/cliproxy/types/platform-types.js.map +1 -0
- package/dist/cliproxy/types/provider-types.d.ts +27 -0
- package/dist/cliproxy/types/provider-types.d.ts.map +1 -0
- package/dist/cliproxy/types/provider-types.js +16 -0
- package/dist/cliproxy/types/provider-types.js.map +1 -0
- package/dist/cliproxy/types.d.ts +4 -273
- package/dist/cliproxy/types.d.ts.map +1 -1
- package/dist/cliproxy/types.js +18 -14
- package/dist/cliproxy/types.js.map +1 -1
- package/dist/commands/api-command/create-command.d.ts.map +1 -1
- package/dist/commands/api-command/create-command.js +4 -1
- package/dist/commands/api-command/create-command.js.map +1 -1
- package/dist/commands/api-command/help.d.ts.map +1 -1
- package/dist/commands/api-command/help.js +4 -0
- package/dist/commands/api-command/help.js.map +1 -1
- package/dist/commands/api-command/shared.d.ts +2 -1
- package/dist/commands/api-command/shared.d.ts.map +1 -1
- package/dist/commands/api-command/shared.js +9 -0
- package/dist/commands/api-command/shared.js.map +1 -1
- package/dist/commands/cleanup-command.js +1 -1
- package/dist/commands/cleanup-command.js.map +1 -1
- package/dist/commands/cliproxy/auth-subcommand.js +1 -1
- package/dist/commands/cliproxy/auth-subcommand.js.map +1 -1
- package/dist/commands/cliproxy/catalog-subcommand.js +4 -4
- package/dist/commands/cliproxy/catalog-subcommand.js.map +1 -1
- package/dist/commands/cliproxy/help-subcommand.d.ts.map +1 -1
- package/dist/commands/cliproxy/help-subcommand.js +4 -2
- 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 +12 -0
- package/dist/commands/cliproxy/index.js.map +1 -1
- package/dist/commands/cliproxy/install-subcommand.js +1 -1
- package/dist/commands/cliproxy/install-subcommand.js.map +1 -1
- package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js +1 -1
- package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js.map +1 -1
- package/dist/commands/cliproxy/quota-subcommand.d.ts +1 -1
- package/dist/commands/cliproxy/quota-subcommand.d.ts.map +1 -1
- package/dist/commands/cliproxy/quota-subcommand.js +87 -31
- package/dist/commands/cliproxy/quota-subcommand.js.map +1 -1
- package/dist/commands/cliproxy/routing-subcommand.d.ts +3 -0
- package/dist/commands/cliproxy/routing-subcommand.d.ts.map +1 -1
- package/dist/commands/cliproxy/routing-subcommand.js +128 -3
- package/dist/commands/cliproxy/routing-subcommand.js.map +1 -1
- package/dist/commands/cliproxy/variant-subcommand.js +4 -4
- package/dist/commands/cliproxy/variant-subcommand.js.map +1 -1
- package/dist/commands/command-catalog.d.ts.map +1 -1
- package/dist/commands/command-catalog.js +4 -1
- package/dist/commands/command-catalog.js.map +1 -1
- package/dist/commands/completion-backend.d.ts.map +1 -1
- package/dist/commands/completion-backend.js +16 -1
- package/dist/commands/completion-backend.js.map +1 -1
- package/dist/commands/config-command.js +1 -1
- package/dist/commands/config-command.js.map +1 -1
- package/dist/commands/config-dashboard-host.d.ts.map +1 -1
- package/dist/commands/config-dashboard-host.js +14 -2
- package/dist/commands/config-dashboard-host.js.map +1 -1
- package/dist/commands/doctor-command.d.ts.map +1 -1
- package/dist/commands/doctor-command.js +9 -0
- package/dist/commands/doctor-command.js.map +1 -1
- package/dist/commands/tokens-command.js +1 -1
- package/dist/commands/tokens-command.js.map +1 -1
- package/dist/config/config-loader-facade.d.ts +57 -0
- package/dist/config/config-loader-facade.d.ts.map +1 -0
- package/dist/config/config-loader-facade.js +131 -0
- package/dist/config/config-loader-facade.js.map +1 -0
- package/dist/config/schemas/auth.d.ts +97 -0
- package/dist/config/schemas/auth.d.ts.map +1 -0
- package/dist/config/schemas/auth.js +25 -0
- package/dist/config/schemas/auth.js.map +1 -0
- package/dist/config/schemas/browser.d.ts +53 -0
- package/dist/config/schemas/browser.d.ts.map +1 -0
- package/dist/config/schemas/browser.js +27 -0
- package/dist/config/schemas/browser.js.map +1 -0
- package/dist/config/schemas/channels.d.ts +27 -0
- package/dist/config/schemas/channels.d.ts.map +1 -0
- package/dist/config/schemas/channels.js +19 -0
- package/dist/config/schemas/channels.js.map +1 -0
- package/dist/config/schemas/cliproxy.d.ts +140 -0
- package/dist/config/schemas/cliproxy.d.ts.map +1 -0
- package/dist/config/schemas/cliproxy.js +18 -0
- package/dist/config/schemas/cliproxy.js.map +1 -0
- package/dist/config/schemas/copilot-cursor.d.ts +75 -0
- package/dist/config/schemas/copilot-cursor.d.ts.map +1 -0
- package/dist/config/schemas/copilot-cursor.js +36 -0
- package/dist/config/schemas/copilot-cursor.js.map +1 -0
- package/dist/config/schemas/index.d.ts +28 -0
- package/dist/config/schemas/index.d.ts.map +1 -0
- package/dist/config/schemas/index.js +51 -0
- package/dist/config/schemas/index.js.map +1 -0
- package/dist/config/schemas/logging.d.ts +43 -0
- package/dist/config/schemas/logging.d.ts.map +1 -0
- package/dist/config/schemas/logging.js +23 -0
- package/dist/config/schemas/logging.js.map +1 -0
- package/dist/config/schemas/providers.d.ts +14 -0
- package/dist/config/schemas/providers.d.ts.map +1 -0
- package/dist/config/schemas/providers.js +21 -0
- package/dist/config/schemas/providers.js.map +1 -0
- package/dist/config/schemas/proxy-server.d.ts +141 -0
- package/dist/config/schemas/proxy-server.d.ts.map +1 -0
- package/dist/config/schemas/proxy-server.js +71 -0
- package/dist/config/schemas/proxy-server.js.map +1 -0
- package/dist/config/schemas/quota.d.ts +88 -0
- package/dist/config/schemas/quota.d.ts.map +1 -0
- package/dist/config/schemas/quota.js +47 -0
- package/dist/config/schemas/quota.js.map +1 -0
- package/dist/config/schemas/thinking.d.ts +50 -0
- package/dist/config/schemas/thinking.d.ts.map +1 -0
- package/dist/config/schemas/thinking.js +26 -0
- package/dist/config/schemas/thinking.js.map +1 -0
- package/dist/config/schemas/unified-config.d.ts +74 -0
- package/dist/config/schemas/unified-config.d.ts.map +1 -0
- package/dist/config/schemas/unified-config.js +131 -0
- package/dist/config/schemas/unified-config.js.map +1 -0
- package/dist/config/schemas/version.d.ts +23 -0
- package/dist/config/schemas/version.d.ts.map +1 -0
- package/dist/config/schemas/version.js +26 -0
- package/dist/config/schemas/version.js.map +1 -0
- package/dist/config/schemas/websearch.d.ts +138 -0
- package/dist/config/schemas/websearch.d.ts.map +1 -0
- package/dist/config/schemas/websearch.js +12 -0
- package/dist/config/schemas/websearch.js.map +1 -0
- package/dist/config/unified-config-loader.d.ts.map +1 -1
- package/dist/config/unified-config-loader.js +27 -1
- package/dist/config/unified-config-loader.js.map +1 -1
- package/dist/config/unified-config-types.d.ts +3 -814
- package/dist/config/unified-config-types.d.ts.map +1 -1
- package/dist/config/unified-config-types.js +19 -317
- package/dist/config/unified-config-types.js.map +1 -1
- package/dist/copilot/copilot-auth.d.ts.map +1 -1
- package/dist/copilot/copilot-auth.js +22 -0
- package/dist/copilot/copilot-auth.js.map +1 -1
- package/dist/copilot/copilot-daemon.d.ts.map +1 -1
- package/dist/copilot/copilot-daemon.js +26 -0
- package/dist/copilot/copilot-daemon.js.map +1 -1
- package/dist/copilot/copilot-executor.d.ts +1 -1
- package/dist/copilot/copilot-executor.d.ts.map +1 -1
- package/dist/copilot/copilot-executor.js +23 -1
- package/dist/copilot/copilot-executor.js.map +1 -1
- package/dist/cursor/cursor-daemon.d.ts.map +1 -1
- package/dist/cursor/cursor-daemon.js +28 -1
- package/dist/cursor/cursor-daemon.js.map +1 -1
- package/dist/cursor/cursor-executor.d.ts.map +1 -1
- package/dist/cursor/cursor-executor.js +17 -1
- package/dist/cursor/cursor-executor.js.map +1 -1
- package/dist/delegation/headless-executor.d.ts.map +1 -1
- package/dist/delegation/headless-executor.js +17 -2
- package/dist/delegation/headless-executor.js.map +1 -1
- package/dist/docker/docker-bootstrap.js +1 -1
- package/dist/docker/docker-bootstrap.js.map +1 -1
- package/dist/errors/error-types.d.ts +9 -0
- package/dist/errors/error-types.d.ts.map +1 -1
- package/dist/errors/error-types.js +15 -1
- package/dist/errors/error-types.js.map +1 -1
- package/dist/errors/index.d.ts +1 -1
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +3 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/glmt/glmt-proxy.d.ts.map +1 -1
- package/dist/glmt/glmt-proxy.js +7 -0
- 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 -3
- package/dist/glmt/glmt-transformer.js.map +1 -1
- package/dist/management/checks/image-analysis-check.js +2 -2
- package/dist/management/checks/image-analysis-check.js.map +1 -1
- package/dist/management/instance-manager.d.ts.map +1 -1
- package/dist/management/instance-manager.js +9 -0
- package/dist/management/instance-manager.js.map +1 -1
- package/dist/management/plugin-path-normalizer.d.ts +7 -0
- package/dist/management/plugin-path-normalizer.d.ts.map +1 -0
- package/dist/management/plugin-path-normalizer.js +82 -0
- package/dist/management/plugin-path-normalizer.js.map +1 -0
- package/dist/management/shared-manager.d.ts +1 -2
- package/dist/management/shared-manager.d.ts.map +1 -1
- package/dist/management/shared-manager.js +8 -56
- package/dist/management/shared-manager.js.map +1 -1
- package/dist/proxy/server/messages-route.d.ts.map +1 -1
- package/dist/proxy/server/messages-route.js +50 -9
- 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 +24 -6
- package/dist/proxy/server/proxy-server.js.map +1 -1
- package/dist/proxy/transformers/request-transformer.d.ts +1 -0
- package/dist/proxy/transformers/request-transformer.d.ts.map +1 -1
- package/dist/proxy/transformers/request-transformer.js +10 -9
- package/dist/proxy/transformers/request-transformer.js.map +1 -1
- package/dist/services/logging/index.d.ts +6 -1
- package/dist/services/logging/index.d.ts.map +1 -1
- package/dist/services/logging/index.js +16 -1
- package/dist/services/logging/index.js.map +1 -1
- package/dist/services/logging/log-context.d.ts +41 -0
- package/dist/services/logging/log-context.d.ts.map +1 -0
- package/dist/services/logging/log-context.js +51 -0
- package/dist/services/logging/log-context.js.map +1 -0
- package/dist/services/logging/log-redaction.d.ts +8 -0
- package/dist/services/logging/log-redaction.d.ts.map +1 -1
- package/dist/services/logging/log-redaction.js +40 -3
- package/dist/services/logging/log-redaction.js.map +1 -1
- package/dist/services/logging/log-types.d.ts +30 -0
- package/dist/services/logging/log-types.d.ts.map +1 -1
- package/dist/services/logging/log-types.js +15 -1
- package/dist/services/logging/log-types.js.map +1 -1
- package/dist/services/logging/logger.d.ts +17 -0
- package/dist/services/logging/logger.d.ts.map +1 -1
- package/dist/services/logging/logger.js +23 -4
- package/dist/services/logging/logger.js.map +1 -1
- package/dist/shared/claude-extension-setup.js +1 -1
- package/dist/shared/claude-extension-setup.js.map +1 -1
- package/dist/targets/claude-adapter.d.ts.map +1 -1
- package/dist/targets/claude-adapter.js +11 -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 -0
- package/dist/targets/codex-adapter.js.map +1 -1
- package/dist/targets/droid-adapter.d.ts.map +1 -1
- package/dist/targets/droid-adapter.js +11 -0
- package/dist/targets/droid-adapter.js.map +1 -1
- package/dist/targets/target-metadata.js +1 -1
- package/dist/targets/target-metadata.js.map +1 -1
- package/dist/ui/assets/{accounts-D0Z5AVKW.js → accounts-CDgKt-GZ.js} +1 -1
- package/dist/ui/assets/{alert-dialog-CzJucE0e.js → alert-dialog-CRqbTpjm.js} +1 -1
- package/dist/ui/assets/{api-DXAf4i-v.js → api-C7W2ibtd.js} +1 -1
- package/dist/ui/assets/{auth-section-BrnnHBi-.js → auth-section-RBgQQrdk.js} +1 -1
- package/dist/ui/assets/{backups-section-DCBcfZ-C.js → backups-section-DptarTls.js} +1 -1
- package/dist/ui/assets/{channels-BSapONLx.js → channels-BMQs4wmY.js} +1 -1
- package/dist/ui/assets/{charts-BBPXh0Ar.js → charts-CeK2xCSo.js} +1 -1
- package/dist/ui/assets/{checkbox-Bd7X5Xud.js → checkbox-BrRyK0T3.js} +1 -1
- package/dist/ui/assets/{claude-extension-BYJxm4B5.js → claude-extension-DrSuOyf4.js} +1 -1
- package/dist/ui/assets/cliproxy-CdqYwRJH.js +3 -0
- package/dist/ui/assets/{cliproxy-ai-providers-D7r2Us_Y.js → cliproxy-ai-providers-B8aZTWIe.js} +1 -1
- package/dist/ui/assets/{cliproxy-control-panel-Cmo3ArVL.js → cliproxy-control-panel-BpXgvmht.js} +1 -1
- package/dist/ui/assets/{code-highlight-BRUf_pqB.js → code-highlight-D4E79GKQ.js} +1 -1
- package/dist/ui/assets/codex-CYoq5g4z.js +27 -0
- package/dist/ui/assets/{confirm-dialog--zJgz4y0.js → confirm-dialog-CP-4T1Wp.js} +1 -1
- package/dist/ui/assets/{copilot-2ARJ9YVb.js → copilot-aEdlrY3S.js} +1 -1
- package/dist/ui/assets/{cursor-CQNCrVt0.js → cursor-CSJ0aqxS.js} +1 -1
- package/dist/ui/assets/{droid-Dl5wRjDv.js → droid-DTdvqOvV.js} +1 -1
- package/dist/ui/assets/{form-utils-Bcoyqxpq.js → form-utils-CuHzLhJZ.js} +1 -1
- package/dist/ui/assets/{globalenv-section-T1imQsSA.js → globalenv-section-DXbRVgOM.js} +1 -1
- package/dist/ui/assets/health-CDce37cB.js +1 -0
- package/dist/ui/assets/icons-DQFHtVq5.js +1 -0
- package/dist/ui/assets/index-6xrth3Oz.css +1 -0
- package/dist/ui/assets/index-Bm9k7s_T.js +1 -0
- package/dist/ui/assets/{index-DFgCoUVv.js → index-D_FmvtnX.js} +1 -1
- package/dist/ui/assets/{index-CqJFugM4.js → index-DjxqZO4B.js} +1 -1
- package/dist/ui/assets/index-Fd17BSGq.js +72 -0
- package/dist/ui/assets/index-KK76yIJk.js +1 -0
- package/dist/ui/assets/{index-fV5BBuAO.js → index-dnIWLkjb.js} +1 -1
- package/dist/ui/assets/{index-DH916Tyi.js → index-vN-yw8kw.js} +1 -1
- package/dist/ui/assets/logs-C_MtpQIE.js +1 -0
- package/dist/ui/assets/masked-input-BAWBYIqo.js +1 -0
- package/dist/ui/assets/{notifications-B2HqRBj7.js → notifications-B4_o8bcr.js} +1 -1
- package/dist/ui/assets/proxy-C4-M_9kB.js +9 -0
- package/dist/ui/assets/proxy-status-widget-DUqasX3c.js +1 -0
- package/dist/ui/assets/{radix-ui-Zb8sVEtn.js → radix-ui-nu4wz29m.js} +1 -1
- package/dist/ui/assets/{raw-json-settings-editor-panel-DNmb_vR-.js → raw-json-settings-editor-panel-DuVlOXFi.js} +1 -1
- package/dist/ui/assets/{react-vendor-CNOkPC89.js → react-vendor-Bjx91N7w.js} +1 -1
- package/dist/ui/assets/{searchable-select--iFe00dY.js → searchable-select-BCxZHr8N.js} +1 -1
- package/dist/ui/assets/{separator-CaGbNw8E.js → separator-BV4BKMsB.js} +1 -1
- package/dist/ui/assets/{shared-Cgk48Wu3.js → shared-D-Cu_o1h.js} +1 -1
- package/dist/ui/assets/{table-CKuoPAz4.js → table-DW66THR9.js} +1 -1
- package/dist/ui/assets/{tanstack-CrmUhA7Z.js → tanstack-bhJxV1h8.js} +1 -1
- package/dist/ui/assets/updates-V0D_Q8n4.js +1 -0
- package/dist/ui/index.html +9 -9
- package/dist/utils/hooks/get-image-analysis-hook-env.d.ts +1 -1
- package/dist/utils/hooks/get-image-analysis-hook-env.d.ts.map +1 -1
- package/dist/utils/hooks/get-image-analysis-hook-env.js +2 -2
- package/dist/utils/hooks/get-image-analysis-hook-env.js.map +1 -1
- package/dist/utils/hooks/image-analysis-backend-resolver.js +1 -1
- package/dist/utils/hooks/image-analysis-backend-resolver.js.map +1 -1
- package/dist/utils/hooks/image-analysis-runtime-status.d.ts +4 -4
- package/dist/utils/hooks/image-analysis-runtime-status.d.ts.map +1 -1
- package/dist/utils/hooks/image-analysis-runtime-status.js +5 -5
- package/dist/utils/hooks/image-analysis-runtime-status.js.map +1 -1
- package/dist/utils/openai-compat-launch-settings.d.ts +7 -0
- package/dist/utils/openai-compat-launch-settings.d.ts.map +1 -0
- package/dist/utils/openai-compat-launch-settings.js +61 -0
- package/dist/utils/openai-compat-launch-settings.js.map +1 -0
- package/dist/utils/retry-strategy.d.ts +37 -0
- package/dist/utils/retry-strategy.d.ts.map +1 -0
- package/dist/utils/retry-strategy.js +99 -0
- package/dist/utils/retry-strategy.js.map +1 -0
- package/dist/utils/shell-executor.d.ts +1 -1
- package/dist/utils/shell-executor.d.ts.map +1 -1
- package/dist/utils/shell-executor.js +11 -1
- package/dist/utils/shell-executor.js.map +1 -1
- package/dist/web-server/health/cliproxy-checks.js +2 -2
- package/dist/web-server/health/cliproxy-checks.js.map +1 -1
- package/dist/web-server/index.js +2 -2
- package/dist/web-server/index.js.map +1 -1
- package/dist/web-server/jsonl-parser.d.ts.map +1 -1
- package/dist/web-server/jsonl-parser.js +22 -4
- package/dist/web-server/jsonl-parser.js.map +1 -1
- package/dist/web-server/model-pricing.d.ts +8 -6
- package/dist/web-server/model-pricing.d.ts.map +1 -1
- package/dist/web-server/model-pricing.js +80 -29
- package/dist/web-server/model-pricing.js.map +1 -1
- package/dist/web-server/models-dev/pricing-resolver.d.ts +18 -0
- package/dist/web-server/models-dev/pricing-resolver.d.ts.map +1 -0
- package/dist/web-server/models-dev/pricing-resolver.js +153 -0
- package/dist/web-server/models-dev/pricing-resolver.js.map +1 -0
- package/dist/web-server/models-dev/registry-cache.d.ts +19 -0
- package/dist/web-server/models-dev/registry-cache.d.ts.map +1 -0
- package/dist/web-server/models-dev/registry-cache.js +155 -0
- package/dist/web-server/models-dev/registry-cache.js.map +1 -0
- package/dist/web-server/models-dev/types.d.ts +39 -0
- package/dist/web-server/models-dev/types.d.ts.map +1 -0
- package/dist/web-server/models-dev/types.js +3 -0
- package/dist/web-server/models-dev/types.js.map +1 -0
- package/dist/web-server/overview-routes.js +1 -1
- package/dist/web-server/overview-routes.js.map +1 -1
- package/dist/web-server/routes/account-routes.js +1 -1
- package/dist/web-server/routes/account-routes.js.map +1 -1
- package/dist/web-server/routes/catalog-routes.js +1 -1
- package/dist/web-server/routes/catalog-routes.js.map +1 -1
- package/dist/web-server/routes/cliproxy-auth-routes.js +10 -10
- package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -1
- package/dist/web-server/routes/cliproxy-routing-routes.d.ts.map +1 -1
- package/dist/web-server/routes/cliproxy-routing-routes.js +36 -1
- package/dist/web-server/routes/cliproxy-routing-routes.js.map +1 -1
- package/dist/web-server/routes/cliproxy-stats-routes.js +10 -10
- package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -1
- package/dist/web-server/routes/image-analysis-routes.js +1 -1
- package/dist/web-server/routes/image-analysis-routes.js.map +1 -1
- package/dist/web-server/routes/profile-routes.d.ts.map +1 -1
- package/dist/web-server/routes/profile-routes.js +13 -3
- package/dist/web-server/routes/profile-routes.js.map +1 -1
- package/dist/web-server/routes/provider-routes.js +1 -1
- package/dist/web-server/routes/provider-routes.js.map +1 -1
- package/dist/web-server/routes/proxy-routes.js +2 -2
- package/dist/web-server/routes/proxy-routes.js.map +1 -1
- package/dist/web-server/routes/route-helpers.d.ts +1 -0
- package/dist/web-server/routes/route-helpers.d.ts.map +1 -1
- package/dist/web-server/routes/route-helpers.js +12 -1
- package/dist/web-server/routes/route-helpers.js.map +1 -1
- package/dist/web-server/routes/settings-routes.js +2 -2
- package/dist/web-server/routes/settings-routes.js.map +1 -1
- package/dist/web-server/routes/variant-routes.js +1 -1
- package/dist/web-server/routes/variant-routes.js.map +1 -1
- package/dist/web-server/services/cliproxy-dashboard-install-service.js +1 -1
- package/dist/web-server/services/cliproxy-dashboard-install-service.js.map +1 -1
- package/dist/web-server/usage/aggregator.d.ts +1 -0
- package/dist/web-server/usage/aggregator.d.ts.map +1 -1
- package/dist/web-server/usage/aggregator.js +121 -20
- package/dist/web-server/usage/aggregator.js.map +1 -1
- package/dist/web-server/usage/cliproxy-usage-syncer.d.ts +1 -16
- package/dist/web-server/usage/cliproxy-usage-syncer.d.ts.map +1 -1
- package/dist/web-server/usage/cliproxy-usage-syncer.js +160 -56
- package/dist/web-server/usage/cliproxy-usage-syncer.js.map +1 -1
- package/dist/web-server/usage/cliproxy-usage-transformer.d.ts +23 -7
- package/dist/web-server/usage/cliproxy-usage-transformer.d.ts.map +1 -1
- package/dist/web-server/usage/cliproxy-usage-transformer.js +191 -28
- package/dist/web-server/usage/cliproxy-usage-transformer.js.map +1 -1
- package/dist/web-server/usage/codex-native-usage-collector.d.ts +11 -0
- package/dist/web-server/usage/codex-native-usage-collector.d.ts.map +1 -0
- package/dist/web-server/usage/codex-native-usage-collector.js +177 -0
- package/dist/web-server/usage/codex-native-usage-collector.js.map +1 -0
- package/dist/web-server/usage/data-aggregator.d.ts.map +1 -1
- package/dist/web-server/usage/data-aggregator.js +45 -46
- package/dist/web-server/usage/data-aggregator.js.map +1 -1
- package/dist/web-server/usage/droid-native-usage-collector.d.ts +14 -0
- package/dist/web-server/usage/droid-native-usage-collector.d.ts.map +1 -0
- package/dist/web-server/usage/droid-native-usage-collector.js +201 -0
- package/dist/web-server/usage/droid-native-usage-collector.js.map +1 -0
- package/dist/web-server/usage/handlers.d.ts +1 -0
- package/dist/web-server/usage/handlers.d.ts.map +1 -1
- package/dist/web-server/usage/handlers.js +155 -45
- package/dist/web-server/usage/handlers.js.map +1 -1
- package/dist/web-server/usage/model-identity.d.ts +16 -0
- package/dist/web-server/usage/model-identity.d.ts.map +1 -0
- package/dist/web-server/usage/model-identity.js +70 -0
- package/dist/web-server/usage/model-identity.js.map +1 -0
- package/dist/web-server/usage/sqlite-cli.d.ts +3 -0
- package/dist/web-server/usage/sqlite-cli.d.ts.map +1 -0
- package/dist/web-server/usage/sqlite-cli.js +62 -0
- package/dist/web-server/usage/sqlite-cli.js.map +1 -0
- package/dist/web-server/usage/types.d.ts +6 -0
- package/dist/web-server/usage/types.d.ts.map +1 -1
- package/dist/web-server/websocket.js +2 -2
- package/dist/web-server/websocket.js.map +1 -1
- package/lib/mcp/ccs-browser-server.cjs +309 -121
- package/package.json +1 -1
- package/scripts/dev-release.sh +4 -2
- package/scripts/run-test-bucket.js +2 -1
- package/dist/cliproxy/account-manager.d.ts.map +0 -1
- package/dist/cliproxy/account-manager.js.map +0 -1
- package/dist/cliproxy/account-safety.d.ts.map +0 -1
- package/dist/cliproxy/account-safety.js.map +0 -1
- package/dist/cliproxy/account-stats-key.d.ts.map +0 -1
- package/dist/cliproxy/account-stats-key.js.map +0 -1
- package/dist/cliproxy/antigravity-responsibility.d.ts.map +0 -1
- package/dist/cliproxy/antigravity-responsibility.js.map +0 -1
- package/dist/cliproxy/auth-handler.d.ts.map +0 -1
- package/dist/cliproxy/auth-handler.js.map +0 -1
- package/dist/cliproxy/auth-session-manager.d.ts.map +0 -1
- package/dist/cliproxy/auth-session-manager.js.map +0 -1
- package/dist/cliproxy/auth-token-manager.d.ts.map +0 -1
- package/dist/cliproxy/auth-token-manager.js.map +0 -1
- package/dist/cliproxy/auth-utils.d.ts.map +0 -1
- package/dist/cliproxy/auth-utils.js.map +0 -1
- package/dist/cliproxy/base-config-loader.d.ts.map +0 -1
- package/dist/cliproxy/base-config-loader.js.map +0 -1
- package/dist/cliproxy/catalog-cache.d.ts.map +0 -1
- package/dist/cliproxy/catalog-cache.js.map +0 -1
- package/dist/cliproxy/catalog-routing.d.ts.map +0 -1
- package/dist/cliproxy/catalog-routing.js.map +0 -1
- package/dist/cliproxy/cliproxy-executor.d.ts.map +0 -1
- package/dist/cliproxy/cliproxy-executor.js.map +0 -1
- package/dist/cliproxy/codex-plan-compatibility.d.ts.map +0 -1
- package/dist/cliproxy/codex-plan-compatibility.js.map +0 -1
- package/dist/cliproxy/codex-reasoning-proxy.d.ts.map +0 -1
- package/dist/cliproxy/codex-reasoning-proxy.js.map +0 -1
- package/dist/cliproxy/composite-validator.d.ts.map +0 -1
- package/dist/cliproxy/composite-validator.js.map +0 -1
- package/dist/cliproxy/config-generator.d.ts.map +0 -1
- package/dist/cliproxy/config-generator.js.map +0 -1
- package/dist/cliproxy/device-code-handler.d.ts.map +0 -1
- package/dist/cliproxy/device-code-handler.js.map +0 -1
- package/dist/cliproxy/gemini-cli-quota-normalizer.d.ts.map +0 -1
- package/dist/cliproxy/gemini-cli-quota-normalizer.js.map +0 -1
- package/dist/cliproxy/https-tunnel-proxy.d.ts.map +0 -1
- package/dist/cliproxy/https-tunnel-proxy.js.map +0 -1
- package/dist/cliproxy/managed-model-prefixes.d.ts.map +0 -1
- package/dist/cliproxy/managed-model-prefixes.js.map +0 -1
- package/dist/cliproxy/management-api-client.d.ts.map +0 -1
- package/dist/cliproxy/management-api-client.js.map +0 -1
- package/dist/cliproxy/management-api-types.d.ts.map +0 -1
- package/dist/cliproxy/management-api-types.js.map +0 -1
- package/dist/cliproxy/model-config.d.ts.map +0 -1
- package/dist/cliproxy/model-config.js.map +0 -1
- package/dist/cliproxy/model-id-normalizer.d.ts.map +0 -1
- package/dist/cliproxy/model-id-normalizer.js.map +0 -1
- package/dist/cliproxy/openai-compat-manager.d.ts.map +0 -1
- package/dist/cliproxy/openai-compat-manager.js.map +0 -1
- package/dist/cliproxy/platform-detector.d.ts.map +0 -1
- package/dist/cliproxy/platform-detector.js.map +0 -1
- package/dist/cliproxy/project-selection-handler.d.ts.map +0 -1
- package/dist/cliproxy/project-selection-handler.js.map +0 -1
- package/dist/cliproxy/provider-entitlement-evidence.d.ts.map +0 -1
- package/dist/cliproxy/provider-entitlement-evidence.js.map +0 -1
- package/dist/cliproxy/provider-entitlement-types.d.ts.map +0 -1
- package/dist/cliproxy/provider-entitlement-types.js.map +0 -1
- package/dist/cliproxy/proxy-config-resolver.d.ts.map +0 -1
- package/dist/cliproxy/proxy-config-resolver.js.map +0 -1
- package/dist/cliproxy/proxy-detector.d.ts.map +0 -1
- package/dist/cliproxy/proxy-detector.js.map +0 -1
- package/dist/cliproxy/proxy-target-resolver.d.ts.map +0 -1
- package/dist/cliproxy/proxy-target-resolver.js.map +0 -1
- package/dist/cliproxy/quota-fetcher-claude-normalizer.d.ts.map +0 -1
- package/dist/cliproxy/quota-fetcher-claude-normalizer.js.map +0 -1
- package/dist/cliproxy/quota-fetcher-claude.d.ts.map +0 -1
- package/dist/cliproxy/quota-fetcher-claude.js.map +0 -1
- package/dist/cliproxy/quota-fetcher-codex.d.ts.map +0 -1
- package/dist/cliproxy/quota-fetcher-codex.js.map +0 -1
- package/dist/cliproxy/quota-fetcher-gemini-cli.d.ts.map +0 -1
- package/dist/cliproxy/quota-fetcher-gemini-cli.js.map +0 -1
- package/dist/cliproxy/quota-fetcher-ghcp.d.ts.map +0 -1
- package/dist/cliproxy/quota-fetcher-ghcp.js.map +0 -1
- package/dist/cliproxy/quota-fetcher.d.ts.map +0 -1
- package/dist/cliproxy/quota-fetcher.js.map +0 -1
- package/dist/cliproxy/quota-manager.d.ts.map +0 -1
- package/dist/cliproxy/quota-manager.js.map +0 -1
- package/dist/cliproxy/quota-response-cache.d.ts.map +0 -1
- package/dist/cliproxy/quota-response-cache.js.map +0 -1
- package/dist/cliproxy/quota-types.d.ts.map +0 -1
- package/dist/cliproxy/quota-types.js.map +0 -1
- package/dist/cliproxy/remote-auth-fetcher.d.ts.map +0 -1
- package/dist/cliproxy/remote-auth-fetcher.js.map +0 -1
- package/dist/cliproxy/remote-proxy-client.d.ts.map +0 -1
- package/dist/cliproxy/remote-proxy-client.js.map +0 -1
- package/dist/cliproxy/remote-token-uploader.d.ts.map +0 -1
- package/dist/cliproxy/remote-token-uploader.js.map +0 -1
- package/dist/cliproxy/routing-strategy-http.d.ts.map +0 -1
- package/dist/cliproxy/routing-strategy-http.js.map +0 -1
- package/dist/cliproxy/routing-strategy.d.ts +0 -18
- package/dist/cliproxy/routing-strategy.d.ts.map +0 -1
- package/dist/cliproxy/routing-strategy.js +0 -126
- package/dist/cliproxy/routing-strategy.js.map +0 -1
- package/dist/cliproxy/schema-sanitizer.d.ts.map +0 -1
- package/dist/cliproxy/schema-sanitizer.js.map +0 -1
- package/dist/cliproxy/startup-lock.d.ts.map +0 -1
- package/dist/cliproxy/startup-lock.js.map +0 -1
- package/dist/cliproxy/stats-fetcher.d.ts.map +0 -1
- package/dist/cliproxy/stats-fetcher.js.map +0 -1
- package/dist/cliproxy/stats-transformer.d.ts.map +0 -1
- package/dist/cliproxy/stats-transformer.js.map +0 -1
- package/dist/cliproxy/tool-name-mapper.d.ts.map +0 -1
- package/dist/cliproxy/tool-name-mapper.js.map +0 -1
- package/dist/cliproxy/tool-name-sanitizer.d.ts.map +0 -1
- package/dist/cliproxy/tool-name-sanitizer.js.map +0 -1
- package/dist/cliproxy/tool-sanitization-proxy.d.ts.map +0 -1
- package/dist/cliproxy/tool-sanitization-proxy.js.map +0 -1
- package/dist/ui/assets/cliproxy-G5JuFm2j.js +0 -3
- package/dist/ui/assets/codex-4VNBJ4Nb.js +0 -27
- package/dist/ui/assets/health-CNous3WN.js +0 -1
- package/dist/ui/assets/icons-DyorC3Xk.js +0 -1
- package/dist/ui/assets/index-2X8-14xr.js +0 -72
- package/dist/ui/assets/index-BcLnqcxD.js +0 -1
- package/dist/ui/assets/index-Be3dhMW3.js +0 -9
- package/dist/ui/assets/index-DuTB1_9r.css +0 -1
- package/dist/ui/assets/logs-CZsWbq7X.js +0 -1
- package/dist/ui/assets/masked-input-_EkW1Pzo.js +0 -1
- package/dist/ui/assets/proxy-status-widget-D82T2X4F.js +0 -1
- package/dist/ui/assets/updates-Dr8Yq-Pm.js +0 -1
- /package/dist/cliproxy/{account-stats-key.d.ts → accounts/account-stats-key.d.ts} +0 -0
- /package/dist/cliproxy/{account-stats-key.js → accounts/account-stats-key.js} +0 -0
- /package/dist/cliproxy/{codex-reasoning-proxy.d.ts → ai-providers/codex-reasoning-proxy.d.ts} +0 -0
- /package/dist/cliproxy/{openai-compat-manager.d.ts → ai-providers/openai-compat-manager.d.ts} +0 -0
- /package/dist/cliproxy/{schema-sanitizer.d.ts → ai-providers/schema-sanitizer.d.ts} +0 -0
- /package/dist/cliproxy/{schema-sanitizer.js → ai-providers/schema-sanitizer.js} +0 -0
- /package/dist/cliproxy/{antigravity-responsibility.d.ts → auth/antigravity-responsibility.d.ts} +0 -0
- /package/dist/cliproxy/{auth-token-manager.d.ts → auth/auth-token-manager.d.ts} +0 -0
- /package/dist/cliproxy/{auth-utils.d.ts → auth/auth-utils.d.ts} +0 -0
- /package/dist/cliproxy/{auth-utils.js → auth/auth-utils.js} +0 -0
- /package/dist/cliproxy/{device-code-handler.d.ts → auth/device-code-handler.d.ts} +0 -0
- /package/dist/cliproxy/{device-code-handler.js → auth/device-code-handler.js} +0 -0
- /package/dist/cliproxy/{project-selection-handler.d.ts → auth/project-selection-handler.d.ts} +0 -0
- /package/dist/cliproxy/{project-selection-handler.js → auth/project-selection-handler.js} +0 -0
- /package/dist/cliproxy/{provider-entitlement-evidence.js → auth/provider-entitlement-evidence.js} +0 -0
- /package/dist/cliproxy/{provider-entitlement-types.js → auth/provider-entitlement-types.js} +0 -0
- /package/dist/cliproxy/{platform-detector.js → binary/platform-detector.js} +0 -0
- /package/dist/cliproxy/{composite-validator.d.ts → config/composite-validator.d.ts} +0 -0
- /package/dist/cliproxy/{management-api-types.d.ts → management/management-api-types.d.ts} +0 -0
- /package/dist/cliproxy/{management-api-types.js → management/management-api-types.js} +0 -0
- /package/dist/cliproxy/{remote-token-uploader.d.ts → management/remote-token-uploader.d.ts} +0 -0
- /package/dist/cliproxy/{https-tunnel-proxy.d.ts → proxy/https-tunnel-proxy.d.ts} +0 -0
- /package/dist/cliproxy/{proxy-target-resolver.d.ts → proxy/proxy-target-resolver.d.ts} +0 -0
- /package/dist/cliproxy/{tool-sanitization-proxy.d.ts → proxy/tool-sanitization-proxy.d.ts} +0 -0
- /package/dist/cliproxy/{gemini-cli-quota-normalizer.d.ts → quota/gemini-cli-quota-normalizer.d.ts} +0 -0
- /package/dist/cliproxy/{gemini-cli-quota-normalizer.js → quota/gemini-cli-quota-normalizer.js} +0 -0
- /package/dist/cliproxy/{quota-fetcher-claude-normalizer.d.ts → quota/quota-fetcher-claude-normalizer.d.ts} +0 -0
- /package/dist/cliproxy/{quota-fetcher-claude.d.ts → quota/quota-fetcher-claude.d.ts} +0 -0
- /package/dist/cliproxy/{quota-fetcher-gemini-cli.d.ts → quota/quota-fetcher-gemini-cli.d.ts} +0 -0
- /package/dist/cliproxy/{quota-fetcher-ghcp.d.ts → quota/quota-fetcher-ghcp.d.ts} +0 -0
- /package/dist/cliproxy/{quota-response-cache.d.ts → quota/quota-response-cache.d.ts} +0 -0
- /package/dist/cliproxy/{quota-response-cache.js → quota/quota-response-cache.js} +0 -0
- /package/dist/cliproxy/{quota-types.js → quota/quota-types.js} +0 -0
- /package/dist/cliproxy/{remote-proxy-client.d.ts → services/remote-proxy-client.d.ts} +0 -0
- /package/dist/cliproxy/{startup-lock.d.ts → services/startup-lock.d.ts} +0 -0
- /package/dist/cliproxy/{stats-fetcher.d.ts → services/stats-fetcher.d.ts} +0 -0
- /package/dist/cliproxy/{stats-transformer.d.ts → services/stats-transformer.d.ts} +0 -0
|
@@ -35,18 +35,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
35
35
|
exports.stopCliproxySync = exports.startCliproxySync = exports.syncCliproxyUsage = exports.loadCachedCliproxyData = void 0;
|
|
36
36
|
const fs = __importStar(require("fs"));
|
|
37
37
|
const path = __importStar(require("path"));
|
|
38
|
-
const stats_fetcher_1 = require("../../cliproxy/stats-fetcher");
|
|
38
|
+
const stats_fetcher_1 = require("../../cliproxy/services/stats-fetcher");
|
|
39
39
|
const cliproxy_usage_transformer_1 = require("./cliproxy-usage-transformer");
|
|
40
40
|
const config_manager_1 = require("../../utils/config-manager");
|
|
41
41
|
const ui_1 = require("../../utils/ui");
|
|
42
|
-
const SNAPSHOT_VERSION =
|
|
42
|
+
const SNAPSHOT_VERSION = 3;
|
|
43
|
+
const SNAPSHOT_MAX_AGE_MS = 7 * 24 * 60 * 60 * 1000;
|
|
44
|
+
const HISTORY_RETENTION_DAYS = Math.max(30, parseInt(process.env.CCS_CLIPROXY_HISTORY_RETENTION_DAYS ?? '365', 10) || 365);
|
|
45
|
+
const HISTORY_RETENTION_MS = HISTORY_RETENTION_DAYS * 24 * 60 * 60 * 1000;
|
|
46
|
+
const MAX_WRITE_ATTEMPTS = 3;
|
|
43
47
|
/** Sync interval in ms, configurable via CCS_CLIPROXY_SYNC_INTERVAL env var (default: 5 min) */
|
|
44
48
|
const SYNC_INTERVAL_MS = Math.max(30000, parseInt(process.env.CCS_CLIPROXY_SYNC_INTERVAL ?? '300000', 10) || 300000);
|
|
45
|
-
// Module-level interval ID
|
|
46
49
|
let syncIntervalId = null;
|
|
47
|
-
|
|
48
|
-
// Cache directory helpers
|
|
49
|
-
// ---------------------------------------------------------------------------
|
|
50
|
+
let snapshotTimestampOrdinal = 0;
|
|
50
51
|
function getCliproxyCacheDir() {
|
|
51
52
|
return path.join((0, config_manager_1.getCcsDir)(), 'cache', 'cliproxy-usage');
|
|
52
53
|
}
|
|
@@ -59,41 +60,172 @@ function ensureCliproxyCacheDir() {
|
|
|
59
60
|
fs.mkdirSync(dir, { recursive: true });
|
|
60
61
|
}
|
|
61
62
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
63
|
+
function getSnapshotTimestamp() {
|
|
64
|
+
snapshotTimestampOrdinal = (snapshotTimestampOrdinal + 1) % 1000;
|
|
65
|
+
return Date.now() + snapshotTimestampOrdinal / 1000;
|
|
66
|
+
}
|
|
67
|
+
function buildHourlyTimestamp(hour) {
|
|
68
|
+
return `${hour.replace(' ', 'T')}:00.000Z`;
|
|
69
|
+
}
|
|
70
|
+
function buildDailyTimestamp(date) {
|
|
71
|
+
return `${date}T00:00:00.000Z`;
|
|
72
|
+
}
|
|
73
|
+
function distributeRequestCounts(total, buckets) {
|
|
74
|
+
if (buckets <= 0)
|
|
75
|
+
return [];
|
|
76
|
+
const normalizedTotal = Math.max(buckets, total);
|
|
77
|
+
const base = Math.floor(normalizedTotal / buckets);
|
|
78
|
+
const remainder = normalizedTotal % buckets;
|
|
79
|
+
return Array.from({ length: buckets }, (_value, index) => base + (index < remainder ? 1 : 0));
|
|
80
|
+
}
|
|
81
|
+
function buildLegacyHistoryDetails(snapshot) {
|
|
82
|
+
const details = [];
|
|
83
|
+
const coveredDailyKeys = new Set();
|
|
84
|
+
for (const hour of snapshot.hourly ?? []) {
|
|
85
|
+
const requestCounts = distributeRequestCounts(hour.requestCount ?? hour.modelBreakdowns.length, hour.modelBreakdowns.length);
|
|
86
|
+
hour.modelBreakdowns.forEach((breakdown, index) => {
|
|
87
|
+
details.push({
|
|
88
|
+
model: breakdown.modelName,
|
|
89
|
+
timestamp: buildHourlyTimestamp(hour.hour),
|
|
90
|
+
source: hour.source,
|
|
91
|
+
authIndex: 'legacy-hourly',
|
|
92
|
+
inputTokens: breakdown.inputTokens,
|
|
93
|
+
outputTokens: breakdown.outputTokens,
|
|
94
|
+
cacheReadTokens: breakdown.cacheReadTokens,
|
|
95
|
+
requestCount: requestCounts[index] ?? 1,
|
|
96
|
+
cost: breakdown.cost,
|
|
97
|
+
failed: false,
|
|
98
|
+
});
|
|
99
|
+
coveredDailyKeys.add(`${hour.hour.slice(0, 10)}|${breakdown.modelName}`);
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
for (const day of snapshot.daily ?? []) {
|
|
103
|
+
for (const breakdown of day.modelBreakdowns) {
|
|
104
|
+
const key = `${day.date}|${breakdown.modelName}`;
|
|
105
|
+
if (coveredDailyKeys.has(key)) {
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
details.push({
|
|
109
|
+
model: breakdown.modelName,
|
|
110
|
+
timestamp: buildDailyTimestamp(day.date),
|
|
111
|
+
source: day.source,
|
|
112
|
+
authIndex: 'legacy-daily',
|
|
113
|
+
inputTokens: breakdown.inputTokens,
|
|
114
|
+
outputTokens: breakdown.outputTokens,
|
|
115
|
+
cacheReadTokens: breakdown.cacheReadTokens,
|
|
116
|
+
requestCount: 1,
|
|
117
|
+
cost: breakdown.cost,
|
|
118
|
+
failed: false,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return details;
|
|
123
|
+
}
|
|
124
|
+
function migrateLegacySnapshot(snapshot, emitWarnings) {
|
|
125
|
+
const details = buildLegacyHistoryDetails(snapshot);
|
|
126
|
+
if (details.length === 0) {
|
|
127
|
+
if (emitWarnings) {
|
|
128
|
+
console.log((0, ui_1.info)('CLIProxy legacy snapshot had no migratable history, will refresh on next sync'));
|
|
129
|
+
}
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
if (emitWarnings) {
|
|
133
|
+
console.log((0, ui_1.info)('Loaded legacy CLIProxy snapshot into historical format'));
|
|
134
|
+
}
|
|
135
|
+
const { daily, hourly, monthly } = (0, cliproxy_usage_transformer_1.buildCliproxyUsageHistoryAggregates)(details);
|
|
136
|
+
return {
|
|
137
|
+
version: SNAPSHOT_VERSION,
|
|
138
|
+
timestamp: Number.isFinite(snapshot.timestamp) ? Number(snapshot.timestamp) : Date.now(),
|
|
139
|
+
details,
|
|
140
|
+
daily,
|
|
141
|
+
hourly,
|
|
142
|
+
monthly,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
function readSnapshot(emitWarnings = true) {
|
|
71
146
|
try {
|
|
72
147
|
const snapshotPath = getLatestSnapshotPath();
|
|
73
148
|
if (!fs.existsSync(snapshotPath)) {
|
|
74
|
-
return
|
|
149
|
+
return null;
|
|
75
150
|
}
|
|
76
151
|
const raw = fs.readFileSync(snapshotPath, 'utf-8');
|
|
77
152
|
const snapshot = JSON.parse(raw);
|
|
78
|
-
if (snapshot.version
|
|
153
|
+
if (snapshot.version === SNAPSHOT_VERSION) {
|
|
154
|
+
if (!Number.isFinite(snapshot.timestamp)) {
|
|
155
|
+
if (emitWarnings) {
|
|
156
|
+
console.log((0, ui_1.info)('CLIProxy snapshot timestamp invalid, will refresh on next sync'));
|
|
157
|
+
}
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
if (!Array.isArray(snapshot.details)) {
|
|
161
|
+
if (emitWarnings) {
|
|
162
|
+
console.log((0, ui_1.info)('CLIProxy snapshot details missing, will refresh on next sync'));
|
|
163
|
+
}
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
return snapshot;
|
|
167
|
+
}
|
|
168
|
+
if (snapshot.version === 1 || snapshot.version === 2) {
|
|
169
|
+
return migrateLegacySnapshot(snapshot, emitWarnings);
|
|
170
|
+
}
|
|
171
|
+
if (emitWarnings) {
|
|
79
172
|
console.log((0, ui_1.info)('CLIProxy snapshot version mismatch, will refresh on next sync'));
|
|
80
|
-
return empty;
|
|
81
173
|
}
|
|
82
|
-
return
|
|
174
|
+
return null;
|
|
83
175
|
}
|
|
84
176
|
catch (err) {
|
|
85
|
-
|
|
177
|
+
if (emitWarnings) {
|
|
178
|
+
console.log((0, ui_1.warn)('Failed to read CLIProxy snapshot:') + ` ${err.message}`);
|
|
179
|
+
}
|
|
180
|
+
return null;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
function buildSnapshot(baseDetails, incomingDetails) {
|
|
184
|
+
const mergedDetails = (0, cliproxy_usage_transformer_1.pruneCliproxyUsageHistoryDetails)((0, cliproxy_usage_transformer_1.mergeCliproxyUsageHistoryDetails)(baseDetails, incomingDetails), Date.now() - HISTORY_RETENTION_MS);
|
|
185
|
+
const { daily, hourly, monthly } = (0, cliproxy_usage_transformer_1.buildCliproxyUsageHistoryAggregates)(mergedDetails);
|
|
186
|
+
return {
|
|
187
|
+
version: SNAPSHOT_VERSION,
|
|
188
|
+
timestamp: getSnapshotTimestamp(),
|
|
189
|
+
details: mergedDetails,
|
|
190
|
+
daily,
|
|
191
|
+
hourly,
|
|
192
|
+
monthly,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
async function writeSnapshotWithMerge(incomingDetails) {
|
|
196
|
+
ensureCliproxyCacheDir();
|
|
197
|
+
const snapshotPath = getLatestSnapshotPath();
|
|
198
|
+
for (let attempt = 0; attempt < MAX_WRITE_ATTEMPTS; attempt++) {
|
|
199
|
+
const baseSnapshot = readSnapshot(false);
|
|
200
|
+
const baseTimestamp = baseSnapshot?.timestamp ?? -Infinity;
|
|
201
|
+
const snapshot = buildSnapshot(baseSnapshot?.details ?? [], incomingDetails);
|
|
202
|
+
const tempFile = `${snapshotPath}.${process.pid}.${snapshot.timestamp}.tmp`;
|
|
203
|
+
fs.writeFileSync(tempFile, JSON.stringify(snapshot), 'utf-8');
|
|
204
|
+
const latestSnapshot = readSnapshot(false);
|
|
205
|
+
const latestTimestamp = latestSnapshot?.timestamp ?? -Infinity;
|
|
206
|
+
if (latestTimestamp > baseTimestamp) {
|
|
207
|
+
fs.rmSync(tempFile, { force: true });
|
|
208
|
+
continue;
|
|
209
|
+
}
|
|
210
|
+
fs.renameSync(tempFile, snapshotPath);
|
|
211
|
+
console.log((0, ui_1.ok)('CLIProxy usage snapshot updated'));
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
throw new Error('Failed to write CLIProxy snapshot after repeated overlap retries');
|
|
215
|
+
}
|
|
216
|
+
async function loadCachedCliproxyData() {
|
|
217
|
+
const empty = { daily: [], hourly: [], monthly: [] };
|
|
218
|
+
const snapshot = readSnapshot();
|
|
219
|
+
if (!snapshot) {
|
|
86
220
|
return empty;
|
|
87
221
|
}
|
|
222
|
+
const age = Date.now() - snapshot.timestamp;
|
|
223
|
+
if (age > SNAPSHOT_MAX_AGE_MS) {
|
|
224
|
+
console.log((0, ui_1.info)('Using stale CLIProxy snapshot while proxy sync is unavailable'));
|
|
225
|
+
}
|
|
226
|
+
return { daily: snapshot.daily, hourly: snapshot.hourly, monthly: snapshot.monthly };
|
|
88
227
|
}
|
|
89
228
|
exports.loadCachedCliproxyData = loadCachedCliproxyData;
|
|
90
|
-
// ---------------------------------------------------------------------------
|
|
91
|
-
// Sync
|
|
92
|
-
// ---------------------------------------------------------------------------
|
|
93
|
-
/**
|
|
94
|
-
* Fetch latest CLIProxy usage data and persist a snapshot to disk.
|
|
95
|
-
* Non-fatal: logs warning and returns early if CLIProxy is unavailable.
|
|
96
|
-
*/
|
|
97
229
|
async function syncCliproxyUsage(fetchRaw = stats_fetcher_1.fetchCliproxyUsageRaw) {
|
|
98
230
|
const raw = await fetchRaw();
|
|
99
231
|
if (raw === null) {
|
|
@@ -101,53 +233,25 @@ async function syncCliproxyUsage(fetchRaw = stats_fetcher_1.fetchCliproxyUsageRa
|
|
|
101
233
|
return;
|
|
102
234
|
}
|
|
103
235
|
try {
|
|
104
|
-
|
|
105
|
-
const daily = (0, cliproxy_usage_transformer_1.transformCliproxyToDailyUsage)(raw);
|
|
106
|
-
const hourly = (0, cliproxy_usage_transformer_1.transformCliproxyToHourlyUsage)(raw);
|
|
107
|
-
const monthly = (0, cliproxy_usage_transformer_1.transformCliproxyToMonthlyUsage)(raw);
|
|
108
|
-
const snapshot = {
|
|
109
|
-
version: SNAPSHOT_VERSION,
|
|
110
|
-
timestamp: Date.now(),
|
|
111
|
-
daily,
|
|
112
|
-
hourly,
|
|
113
|
-
monthly,
|
|
114
|
-
};
|
|
115
|
-
// Atomic write: temp file + rename
|
|
116
|
-
const snapshotPath = getLatestSnapshotPath();
|
|
117
|
-
const tempFile = snapshotPath + '.tmp';
|
|
118
|
-
fs.writeFileSync(tempFile, JSON.stringify(snapshot), 'utf-8');
|
|
119
|
-
fs.renameSync(tempFile, snapshotPath);
|
|
120
|
-
console.log((0, ui_1.ok)('CLIProxy usage snapshot updated'));
|
|
236
|
+
await writeSnapshotWithMerge((0, cliproxy_usage_transformer_1.extractCliproxyUsageHistoryDetails)(raw));
|
|
121
237
|
}
|
|
122
238
|
catch (err) {
|
|
123
|
-
// Non-fatal - stale snapshot will continue to be served
|
|
124
239
|
console.log((0, ui_1.warn)('Failed to write CLIProxy snapshot:') + ` ${err.message}`);
|
|
125
240
|
}
|
|
126
241
|
}
|
|
127
242
|
exports.syncCliproxyUsage = syncCliproxyUsage;
|
|
128
|
-
// ---------------------------------------------------------------------------
|
|
129
|
-
// Interval management
|
|
130
|
-
// ---------------------------------------------------------------------------
|
|
131
|
-
/**
|
|
132
|
-
* Start periodic CLIProxy usage sync (every 5 minutes).
|
|
133
|
-
* Performs an immediate sync on startup.
|
|
134
|
-
*/
|
|
135
243
|
function startCliproxySync(syncNow = () => syncCliproxyUsage()) {
|
|
136
244
|
if (syncIntervalId !== null) {
|
|
137
245
|
return;
|
|
138
246
|
}
|
|
139
247
|
const intervalMin = Math.round(SYNC_INTERVAL_MS / 60000);
|
|
140
248
|
console.log((0, ui_1.info)(`Starting CLIProxy usage sync (interval: ${intervalMin} min)`));
|
|
141
|
-
// Fire-and-forget initial sync
|
|
142
249
|
void syncNow();
|
|
143
250
|
syncIntervalId = setInterval(() => {
|
|
144
251
|
void syncNow();
|
|
145
252
|
}, SYNC_INTERVAL_MS);
|
|
146
253
|
}
|
|
147
254
|
exports.startCliproxySync = startCliproxySync;
|
|
148
|
-
/**
|
|
149
|
-
* Stop periodic CLIProxy usage sync.
|
|
150
|
-
*/
|
|
151
255
|
function stopCliproxySync() {
|
|
152
256
|
if (syncIntervalId !== null) {
|
|
153
257
|
clearInterval(syncIntervalId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliproxy-usage-syncer.js","sourceRoot":"","sources":["../../../src/web-server/usage/cliproxy-usage-syncer.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"cliproxy-usage-syncer.js","sourceRoot":"","sources":["../../../src/web-server/usage/cliproxy-usage-syncer.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,23 +4,39 @@
|
|
|
4
4
|
* Transforms CLIProxy's usage API response into DailyUsage/HourlyUsage/MonthlyUsage
|
|
5
5
|
* types compatible with the CCS analytics dashboard.
|
|
6
6
|
*/
|
|
7
|
-
import type { CliproxyUsageApiResponse
|
|
7
|
+
import type { CliproxyUsageApiResponse } from '../../cliproxy/services/stats-fetcher';
|
|
8
8
|
import type { DailyUsage, HourlyUsage, MonthlyUsage } from './types';
|
|
9
|
-
/**
|
|
10
|
-
interface
|
|
9
|
+
/** Persisted request detail used to rebuild historical CLIProxy analytics buckets */
|
|
10
|
+
export interface CliproxyUsageHistoryDetail {
|
|
11
11
|
model: string;
|
|
12
|
-
|
|
12
|
+
provider?: string;
|
|
13
|
+
timestamp: string;
|
|
14
|
+
source: string;
|
|
15
|
+
authIndex: string;
|
|
16
|
+
inputTokens: number;
|
|
17
|
+
outputTokens: number;
|
|
18
|
+
cacheReadTokens: number;
|
|
19
|
+
requestCount: number;
|
|
20
|
+
cost: number;
|
|
21
|
+
failed: boolean;
|
|
13
22
|
}
|
|
14
23
|
/**
|
|
15
24
|
* Flatten the nested response.usage.apis[provider].models[model].details[]
|
|
16
|
-
* structure into
|
|
25
|
+
* structure into normalized history details. Failed requests are retained only
|
|
26
|
+
* when they still report tracked token usage that analytics can account for.
|
|
17
27
|
*/
|
|
18
|
-
export declare function
|
|
28
|
+
export declare function extractCliproxyUsageHistoryDetails(response: CliproxyUsageApiResponse): CliproxyUsageHistoryDetail[];
|
|
29
|
+
export declare function mergeCliproxyUsageHistoryDetails(existing: CliproxyUsageHistoryDetail[], incoming: CliproxyUsageHistoryDetail[]): CliproxyUsageHistoryDetail[];
|
|
30
|
+
export declare function pruneCliproxyUsageHistoryDetails(details: CliproxyUsageHistoryDetail[], oldestTimestamp: number): CliproxyUsageHistoryDetail[];
|
|
19
31
|
/** Transform CLIProxy usage response into DailyUsage array (sorted descending by date) */
|
|
20
32
|
export declare function transformCliproxyToDailyUsage(response: CliproxyUsageApiResponse): DailyUsage[];
|
|
21
33
|
/** Transform CLIProxy usage response into HourlyUsage array (sorted descending by hour) */
|
|
22
34
|
export declare function transformCliproxyToHourlyUsage(response: CliproxyUsageApiResponse): HourlyUsage[];
|
|
23
35
|
/** Transform CLIProxy usage response into MonthlyUsage array (sorted descending by month) */
|
|
24
36
|
export declare function transformCliproxyToMonthlyUsage(response: CliproxyUsageApiResponse): MonthlyUsage[];
|
|
25
|
-
export {
|
|
37
|
+
export declare function buildCliproxyUsageHistoryAggregates(details: CliproxyUsageHistoryDetail[]): {
|
|
38
|
+
daily: DailyUsage[];
|
|
39
|
+
hourly: HourlyUsage[];
|
|
40
|
+
monthly: MonthlyUsage[];
|
|
41
|
+
};
|
|
26
42
|
//# sourceMappingURL=cliproxy-usage-transformer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliproxy-usage-transformer.d.ts","sourceRoot":"","sources":["../../../src/web-server/usage/cliproxy-usage-transformer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"cliproxy-usage-transformer.d.ts","sourceRoot":"","sources":["../../../src/web-server/usage/cliproxy-usage-transformer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,wBAAwB,EAEzB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAkB,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAOrF,qFAAqF;AACrF,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAuED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,wBAAwB,GACjC,0BAA0B,EAAE,CAkB9B;AAiBD,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,0BAA0B,EAAE,EACtC,QAAQ,EAAE,0BAA0B,EAAE,GACrC,0BAA0B,EAAE,CAyC9B;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,0BAA0B,EAAE,EACrC,eAAe,EAAE,MAAM,GACtB,0BAA0B,EAAE,CAK9B;AAoED,0FAA0F;AAC1F,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,wBAAwB,GAAG,UAAU,EAAE,CAsB9F;AAED,2FAA2F;AAC3F,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,wBAAwB,GAAG,WAAW,EAAE,CA2BhG;AAED,6FAA6F;AAC7F,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,wBAAwB,GACjC,YAAY,EAAE,CAkBhB;AAED,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,0BAA0B,EAAE,GAAG;IAC1F,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB,CAgEA"}
|