@kaitranntt/ccs 8.10.0-dev.2 → 8.10.0-dev.20
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 +17 -5
- package/claude-mods/ccs-notices/.claude-plugin/plugin.json +1 -0
- package/claude-mods/ccs-notices/hooks/hooks.json +1 -0
- package/claude-mods/ccs-notices/hooks/register.ts +67 -0
- package/claude-mods/ccs-notices/tsconfig.json +3 -0
- package/dist/cliproxy/accounts/account-safety.d.ts +3 -2
- package/dist/cliproxy/accounts/account-safety.d.ts.map +1 -1
- package/dist/cliproxy/accounts/account-safety.js +23 -35
- package/dist/cliproxy/accounts/account-safety.js.map +1 -1
- package/dist/cliproxy/accounts/claude-pool-policy-api.d.ts +12 -0
- package/dist/cliproxy/accounts/claude-pool-policy-api.d.ts.map +1 -0
- package/dist/cliproxy/accounts/claude-pool-policy-api.js +74 -0
- package/dist/cliproxy/accounts/claude-pool-policy-api.js.map +1 -0
- package/dist/cliproxy/accounts/claude-pool-policy-lease.d.ts +11 -0
- package/dist/cliproxy/accounts/claude-pool-policy-lease.d.ts.map +1 -0
- package/dist/cliproxy/accounts/claude-pool-policy-lease.js +55 -0
- package/dist/cliproxy/accounts/claude-pool-policy-lease.js.map +1 -0
- package/dist/cliproxy/accounts/claude-pool-policy-reconciliation.d.ts +13 -0
- package/dist/cliproxy/accounts/claude-pool-policy-reconciliation.d.ts.map +1 -0
- package/dist/cliproxy/accounts/claude-pool-policy-reconciliation.js +215 -0
- package/dist/cliproxy/accounts/claude-pool-policy-reconciliation.js.map +1 -0
- package/dist/cliproxy/accounts/claude-pool-policy-runtime.d.ts +19 -0
- package/dist/cliproxy/accounts/claude-pool-policy-runtime.d.ts.map +1 -0
- package/dist/cliproxy/accounts/claude-pool-policy-runtime.js +65 -0
- package/dist/cliproxy/accounts/claude-pool-policy-runtime.js.map +1 -0
- package/dist/cliproxy/accounts/claude-pool-policy-state.d.ts +37 -0
- package/dist/cliproxy/accounts/claude-pool-policy-state.d.ts.map +1 -0
- package/dist/cliproxy/accounts/claude-pool-policy-state.js +205 -0
- package/dist/cliproxy/accounts/claude-pool-policy-state.js.map +1 -0
- package/dist/cliproxy/accounts/claude-pool-policy.d.ts +48 -0
- package/dist/cliproxy/accounts/claude-pool-policy.d.ts.map +1 -0
- package/dist/cliproxy/accounts/claude-pool-policy.js +401 -0
- package/dist/cliproxy/accounts/claude-pool-policy.js.map +1 -0
- package/dist/cliproxy/accounts/drain-order.d.ts +1 -1
- package/dist/cliproxy/accounts/drain-order.d.ts.map +1 -1
- package/dist/cliproxy/accounts/drain-order.js +17 -0
- package/dist/cliproxy/accounts/drain-order.js.map +1 -1
- package/dist/cliproxy/accounts/email-account-identity.d.ts.map +1 -1
- package/dist/cliproxy/accounts/email-account-identity.js +3 -1
- package/dist/cliproxy/accounts/email-account-identity.js.map +1 -1
- package/dist/cliproxy/accounts/pool-state.d.ts +1 -1
- package/dist/cliproxy/accounts/pool-state.d.ts.map +1 -1
- package/dist/cliproxy/accounts/registry-config.d.ts +4 -0
- package/dist/cliproxy/accounts/registry-config.d.ts.map +1 -0
- package/dist/cliproxy/accounts/registry-config.js +46 -0
- package/dist/cliproxy/accounts/registry-config.js.map +1 -0
- package/dist/cliproxy/accounts/registry.d.ts.map +1 -1
- package/dist/cliproxy/accounts/registry.js +38 -16
- package/dist/cliproxy/accounts/registry.js.map +1 -1
- package/dist/cliproxy/accounts/session-notices.d.ts +35 -0
- package/dist/cliproxy/accounts/session-notices.d.ts.map +1 -0
- package/dist/cliproxy/accounts/session-notices.js +147 -0
- package/dist/cliproxy/accounts/session-notices.js.map +1 -0
- package/dist/cliproxy/accounts/token-file-ops.d.ts +1 -2
- package/dist/cliproxy/accounts/token-file-ops.d.ts.map +1 -1
- package/dist/cliproxy/accounts/token-file-ops.js +2 -7
- package/dist/cliproxy/accounts/token-file-ops.js.map +1 -1
- package/dist/cliproxy/accounts/types.d.ts +1 -1
- package/dist/cliproxy/accounts/types.d.ts.map +1 -1
- package/dist/cliproxy/ai-providers/codex-plan-compatibility.d.ts.map +1 -1
- package/dist/cliproxy/ai-providers/codex-plan-compatibility.js +10 -8
- package/dist/cliproxy/ai-providers/codex-plan-compatibility.js.map +1 -1
- package/dist/cliproxy/ai-providers/codex-reasoning-proxy.d.ts +12 -2
- package/dist/cliproxy/ai-providers/codex-reasoning-proxy.d.ts.map +1 -1
- package/dist/cliproxy/ai-providers/codex-reasoning-proxy.js +107 -88
- package/dist/cliproxy/ai-providers/codex-reasoning-proxy.js.map +1 -1
- package/dist/cliproxy/ai-providers/model-id-normalizer.d.ts +1 -1
- package/dist/cliproxy/ai-providers/model-id-normalizer.d.ts.map +1 -1
- package/dist/cliproxy/ai-providers/model-id-normalizer.js +1 -1
- package/dist/cliproxy/ai-providers/model-id-normalizer.js.map +1 -1
- package/dist/cliproxy/ai-providers/schema-sanitizer.d.ts +3 -1
- package/dist/cliproxy/ai-providers/schema-sanitizer.d.ts.map +1 -1
- package/dist/cliproxy/ai-providers/schema-sanitizer.js +3 -1
- package/dist/cliproxy/ai-providers/schema-sanitizer.js.map +1 -1
- package/dist/cliproxy/config/env-builder.d.ts.map +1 -1
- package/dist/cliproxy/config/env-builder.js +8 -1
- package/dist/cliproxy/config/env-builder.js.map +1 -1
- package/dist/cliproxy/config/fallback-chain-serializer.d.ts +8 -0
- package/dist/cliproxy/config/fallback-chain-serializer.d.ts.map +1 -0
- package/dist/cliproxy/config/fallback-chain-serializer.js +67 -0
- package/dist/cliproxy/config/fallback-chain-serializer.js.map +1 -0
- package/dist/cliproxy/config/generator.d.ts +9 -1
- package/dist/cliproxy/config/generator.d.ts.map +1 -1
- package/dist/cliproxy/config/generator.js +162 -10
- package/dist/cliproxy/config/generator.js.map +1 -1
- package/dist/cliproxy/config/thinking-config.js +5 -5
- package/dist/cliproxy/config/thinking-config.js.map +1 -1
- package/dist/cliproxy/executor/account-resolution.d.ts.map +1 -1
- package/dist/cliproxy/executor/account-resolution.js +7 -1
- package/dist/cliproxy/executor/account-resolution.js.map +1 -1
- package/dist/cliproxy/executor/claude-launcher.d.ts.map +1 -1
- package/dist/cliproxy/executor/claude-launcher.js +23 -3
- package/dist/cliproxy/executor/claude-launcher.js.map +1 -1
- package/dist/cliproxy/executor/claude-mods.d.ts +33 -0
- package/dist/cliproxy/executor/claude-mods.d.ts.map +1 -0
- package/dist/cliproxy/executor/claude-mods.js +121 -0
- package/dist/cliproxy/executor/claude-mods.js.map +1 -0
- package/dist/cliproxy/executor/env-resolver.js +1 -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 +2 -1
- package/dist/cliproxy/executor/index.js.map +1 -1
- package/dist/cliproxy/executor/proxy-chain-builder.d.ts.map +1 -1
- package/dist/cliproxy/executor/proxy-chain-builder.js +4 -0
- package/dist/cliproxy/executor/proxy-chain-builder.js.map +1 -1
- package/dist/cliproxy/model-catalog.d.ts +1 -1
- package/dist/cliproxy/model-catalog.d.ts.map +1 -1
- package/dist/cliproxy/model-catalog.js +103 -10
- package/dist/cliproxy/model-catalog.js.map +1 -1
- package/dist/cliproxy/proxy/content-encoding.d.ts +20 -0
- package/dist/cliproxy/proxy/content-encoding.d.ts.map +1 -0
- package/dist/cliproxy/proxy/content-encoding.js +37 -0
- package/dist/cliproxy/proxy/content-encoding.js.map +1 -0
- package/dist/cliproxy/proxy/tool-sanitization-proxy.d.ts +7 -1
- package/dist/cliproxy/proxy/tool-sanitization-proxy.d.ts.map +1 -1
- package/dist/cliproxy/proxy/tool-sanitization-proxy.js +71 -109
- package/dist/cliproxy/proxy/tool-sanitization-proxy.js.map +1 -1
- package/dist/cliproxy/proxy/upstream-response-timeout.d.ts +13 -0
- package/dist/cliproxy/proxy/upstream-response-timeout.d.ts.map +1 -1
- package/dist/cliproxy/proxy/upstream-response-timeout.js +26 -1
- package/dist/cliproxy/proxy/upstream-response-timeout.js.map +1 -1
- package/dist/cliproxy/quota/quota-fetcher-claude-normalizer.d.ts +17 -4
- package/dist/cliproxy/quota/quota-fetcher-claude-normalizer.d.ts.map +1 -1
- package/dist/cliproxy/quota/quota-fetcher-claude-normalizer.js +246 -153
- package/dist/cliproxy/quota/quota-fetcher-claude-normalizer.js.map +1 -1
- package/dist/cliproxy/quota/quota-fetcher-claude-probe-state.d.ts +47 -0
- package/dist/cliproxy/quota/quota-fetcher-claude-probe-state.d.ts.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-claude-probe-state.js +160 -0
- package/dist/cliproxy/quota/quota-fetcher-claude-probe-state.js.map +1 -0
- package/dist/cliproxy/quota/quota-fetcher-claude.d.ts +4 -4
- package/dist/cliproxy/quota/quota-fetcher-claude.d.ts.map +1 -1
- package/dist/cliproxy/quota/quota-fetcher-claude.js +188 -21
- package/dist/cliproxy/quota/quota-fetcher-claude.js.map +1 -1
- package/dist/cliproxy/quota/quota-label-sanitizer.d.ts +3 -2
- package/dist/cliproxy/quota/quota-label-sanitizer.d.ts.map +1 -1
- package/dist/cliproxy/quota/quota-label-sanitizer.js +6 -5
- package/dist/cliproxy/quota/quota-label-sanitizer.js.map +1 -1
- package/dist/cliproxy/quota/quota-manager.d.ts.map +1 -1
- package/dist/cliproxy/quota/quota-manager.js +3 -9
- package/dist/cliproxy/quota/quota-manager.js.map +1 -1
- package/dist/cliproxy/quota/quota-types.d.ts +17 -0
- package/dist/cliproxy/quota/quota-types.d.ts.map +1 -1
- package/dist/cliproxy/services/stats-fetcher.d.ts +4 -0
- package/dist/cliproxy/services/stats-fetcher.d.ts.map +1 -1
- package/dist/cliproxy/services/stats-fetcher.js +14 -1
- package/dist/cliproxy/services/stats-fetcher.js.map +1 -1
- package/dist/cliproxy/services/usage-compatibility-transformer.d.ts +5 -0
- package/dist/cliproxy/services/usage-compatibility-transformer.d.ts.map +1 -1
- package/dist/cliproxy/services/usage-compatibility-transformer.js +77 -6
- package/dist/cliproxy/services/usage-compatibility-transformer.js.map +1 -1
- package/dist/cliproxy/types/config-types.d.ts +3 -0
- package/dist/cliproxy/types/config-types.d.ts.map +1 -1
- package/dist/commands/api-command/help.d.ts.map +1 -1
- package/dist/commands/api-command/help.js +2 -0
- package/dist/commands/api-command/help.js.map +1 -1
- package/dist/commands/cliproxy/help-subcommand.d.ts.map +1 -1
- package/dist/commands/cliproxy/help-subcommand.js +9 -0
- package/dist/commands/cliproxy/help-subcommand.js.map +1 -1
- package/dist/commands/cliproxy/order-subcommand.d.ts.map +1 -1
- package/dist/commands/cliproxy/order-subcommand.js +86 -44
- package/dist/commands/cliproxy/order-subcommand.js.map +1 -1
- package/dist/commands/cliproxy/pool-state-renderer.d.ts.map +1 -1
- package/dist/commands/cliproxy/pool-state-renderer.js +9 -2
- package/dist/commands/cliproxy/pool-state-renderer.js.map +1 -1
- package/dist/commands/cliproxy/quota-subcommand/claude-window-helpers.d.ts +1 -2
- package/dist/commands/cliproxy/quota-subcommand/claude-window-helpers.d.ts.map +1 -1
- package/dist/commands/cliproxy/quota-subcommand/claude-window-helpers.js +5 -16
- package/dist/commands/cliproxy/quota-subcommand/claude-window-helpers.js.map +1 -1
- package/dist/commands/cliproxy/quota-subcommand/sections/claude.d.ts.map +1 -1
- package/dist/commands/cliproxy/quota-subcommand/sections/claude.js +4 -1
- package/dist/commands/cliproxy/quota-subcommand/sections/claude.js.map +1 -1
- package/dist/config/schemas/cliproxy.d.ts +16 -1
- package/dist/config/schemas/cliproxy.d.ts.map +1 -1
- package/dist/config/schemas/cliproxy.js.map +1 -1
- package/dist/cursor/cursor-daemon-entry.d.ts.map +1 -1
- package/dist/cursor/cursor-daemon-entry.js +11 -49
- 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 +7 -4
- package/dist/cursor/cursor-daemon.js.map +1 -1
- package/dist/dispatcher/flows/cliproxy-flow.d.ts.map +1 -1
- package/dist/dispatcher/flows/cliproxy-flow.js +1 -0
- package/dist/dispatcher/flows/cliproxy-flow.js.map +1 -1
- package/dist/dispatcher/flows/settings-flow.d.ts.map +1 -1
- package/dist/dispatcher/flows/settings-flow.js +3 -1
- package/dist/dispatcher/flows/settings-flow.js.map +1 -1
- package/dist/docker/docker-bootstrap.d.ts.map +1 -1
- package/dist/docker/docker-bootstrap.js +29 -5
- package/dist/docker/docker-bootstrap.js.map +1 -1
- package/dist/glmt/glmt-proxy.d.ts +0 -4
- package/dist/glmt/glmt-proxy.d.ts.map +1 -1
- package/dist/glmt/glmt-proxy.js +6 -21
- package/dist/glmt/glmt-proxy.js.map +1 -1
- package/dist/management/shared-manager/plugin-layout-internals.d.ts.map +1 -1
- package/dist/management/shared-manager/plugin-layout-internals.js +8 -0
- package/dist/management/shared-manager/plugin-layout-internals.js.map +1 -1
- package/dist/management/shared-manager/plugin-metadata-normalizer.d.ts.map +1 -1
- package/dist/management/shared-manager/plugin-metadata-normalizer.js +72 -21
- package/dist/management/shared-manager/plugin-metadata-normalizer.js.map +1 -1
- package/dist/management/shared-manager/shared-dir-linker.d.ts.map +1 -1
- package/dist/management/shared-manager/shared-dir-linker.js +5 -0
- package/dist/management/shared-manager/shared-dir-linker.js.map +1 -1
- package/dist/management/shared-manager/types.d.ts.map +1 -1
- package/dist/management/shared-manager/types.js +4 -1
- package/dist/management/shared-manager/types.js.map +1 -1
- package/dist/proxy/server/http-helpers.d.ts +6 -1
- package/dist/proxy/server/http-helpers.d.ts.map +1 -1
- package/dist/proxy/server/http-helpers.js +19 -77
- package/dist/proxy/server/http-helpers.js.map +1 -1
- package/dist/proxy/server/messages-route.d.ts.map +1 -1
- package/dist/proxy/server/messages-route.js +11 -5
- package/dist/proxy/server/messages-route.js.map +1 -1
- package/dist/shared/claude-pool-policy.d.ts +20 -0
- package/dist/shared/claude-pool-policy.d.ts.map +1 -0
- package/dist/shared/claude-pool-policy.js +3 -0
- package/dist/shared/claude-pool-policy.js.map +1 -0
- 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 +80 -7
- package/dist/shared/provider-preset-catalog.js.map +1 -1
- package/dist/targets/droid-provider.d.ts.map +1 -1
- package/dist/targets/droid-provider.js +10 -8
- package/dist/targets/droid-provider.js.map +1 -1
- package/dist/ui/assets/{Trans-BFurXtDk.js → Trans-Dlb02vqu.js} +1 -1
- package/dist/ui/assets/{accounts-B_ik6YOD.js → accounts-NMmfEBnl.js} +1 -1
- package/dist/ui/assets/{alert-dialog-C6fhMbXC.js → alert-dialog-CLeTz0Di.js} +1 -1
- package/dist/ui/assets/{api-CxCFoBC0.js → api-DxGxeHbw.js} +2 -2
- package/dist/ui/assets/{auth-section-CtmO77JA.js → auth-section-AI2YNrUB.js} +1 -1
- package/dist/ui/assets/{backups-section-BYKnAWUa.js → backups-section-CxyuzCda.js} +1 -1
- package/dist/ui/assets/{channels-3uR41jWp.js → channels-SBcIEMn0.js} +1 -1
- package/dist/ui/assets/{checkbox-fCmjUiDn.js → checkbox-C1D6YcRy.js} +1 -1
- package/dist/ui/assets/{claude-extension-BplTVbCF.js → claude-extension-C3Ik79tl.js} +1 -1
- package/dist/ui/assets/cliproxy-BySCuRxu.js +4 -0
- package/dist/ui/assets/{cliproxy-ai-providers-D4OTiwA3.js → cliproxy-ai-providers-B8LPZhj3.js} +6 -6
- package/dist/ui/assets/{cliproxy-control-panel-DCyhsdm1.js → cliproxy-control-panel-Dsv31SI_.js} +1 -1
- package/dist/ui/assets/{codex-BGF20GsK.js → codex-CWZlSLEn.js} +5 -5
- package/dist/ui/assets/{confirm-dialog-BtMwDW6c.js → confirm-dialog-tpU9d5TR.js} +1 -1
- package/dist/ui/assets/{copilot-r1b0KLFf.js → copilot-C5uwBK-k.js} +1 -1
- package/dist/ui/assets/{cursor-BhVKTiz1.js → cursor-BwoYXKM4.js} +1 -1
- package/dist/ui/assets/{droid-lol9hAdK.js → droid-Cv6mZctn.js} +2 -2
- package/dist/ui/assets/{globalenv-section-B0gg-kuR.js → globalenv-section-CKc1Udhj.js} +1 -1
- package/dist/ui/assets/{health-Bu6RFYCP.js → health-Ctfcm6p0.js} +1 -1
- package/dist/ui/assets/{index-BbPI5sU_.js → index--TAxR0Iy.js} +1 -1
- package/dist/ui/assets/index-0hASk2BU.css +1 -0
- package/dist/ui/assets/{index-Pn_n_HFQ.js → index-C2ABCKof.js} +1 -1
- package/dist/ui/assets/{index-Djse8iLV.js → index-C5YaR--I.js} +1 -1
- package/dist/ui/assets/{index-BmjgsjcO.js → index-CBKaNavQ.js} +1 -1
- package/dist/ui/assets/{index-ptYEAEzZ.js → index-DnnSa3K6.js} +1 -1
- package/dist/ui/assets/{index-awbhDVzL.js → index-G9JzuSyw.js} +1 -1
- package/dist/ui/assets/index-gX7Mi5Ws.js +56 -0
- package/dist/ui/assets/{logs-B5Sbi4IG.js → logs-D6LiKkzU.js} +1 -1
- package/dist/ui/assets/{masked-input-BnrL_TdT.js → masked-input-CmtENW5h.js} +1 -1
- package/dist/ui/assets/proxy-status-widget-DqVBhfEP.js +1 -0
- package/dist/ui/assets/{raw-json-settings-editor-panel-PStRjNEl.js → raw-json-settings-editor-panel-C9-_RC57.js} +1 -1
- package/dist/ui/assets/{searchable-select-BDpwwNsP.js → searchable-select-BeEQJh2E.js} +1 -1
- package/dist/ui/assets/{separator-CJCyWDRS.js → separator-CB-e5SCL.js} +1 -1
- package/dist/ui/assets/{shared-6BrToCad.js → shared-GU9wziRt.js} +3 -3
- package/dist/ui/assets/{table-CnZev3Iu.js → table-BFrniqUJ.js} +1 -1
- package/dist/ui/assets/{updates-BiS0o8aM.js → updates-DYhBCREi.js} +1 -1
- package/dist/ui/assets/{use-accounts-89FOqhFc.js → use-accounts-xaNW9KeG.js} +1 -1
- package/dist/ui/index.html +2 -2
- package/dist/utils/delegation-validator.d.ts.map +1 -1
- package/dist/utils/delegation-validator.js +29 -8
- package/dist/utils/delegation-validator.js.map +1 -1
- package/dist/utils/openai-compat-launch-settings.d.ts +11 -1
- package/dist/utils/openai-compat-launch-settings.d.ts.map +1 -1
- package/dist/utils/openai-compat-launch-settings.js +55 -5
- package/dist/utils/openai-compat-launch-settings.js.map +1 -1
- package/dist/utils/request-body.d.ts +40 -0
- package/dist/utils/request-body.d.ts.map +1 -0
- package/dist/utils/request-body.js +142 -0
- package/dist/utils/request-body.js.map +1 -0
- package/dist/web-server/index.d.ts +1 -1
- package/dist/web-server/index.d.ts.map +1 -1
- package/dist/web-server/index.js +4 -1
- package/dist/web-server/index.js.map +1 -1
- package/dist/web-server/jsonl-parser.d.ts +2 -0
- package/dist/web-server/jsonl-parser.d.ts.map +1 -1
- package/dist/web-server/jsonl-parser.js +54 -4
- package/dist/web-server/jsonl-parser.js.map +1 -1
- package/dist/web-server/model-pricing.d.ts.map +1 -1
- package/dist/web-server/model-pricing.js +99 -1
- package/dist/web-server/model-pricing.js.map +1 -1
- package/dist/web-server/routes/bar-pool-account-quota-adapter.d.ts.map +1 -1
- package/dist/web-server/routes/bar-pool-account-quota-adapter.js +1 -3
- package/dist/web-server/routes/bar-pool-account-quota-adapter.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 +16 -0
- package/dist/web-server/routes/cliproxy-routing-routes.js.map +1 -1
- package/dist/web-server/shutdown.d.ts +2 -3
- package/dist/web-server/shutdown.d.ts.map +1 -1
- package/dist/web-server/shutdown.js +16 -8
- package/dist/web-server/shutdown.js.map +1 -1
- package/dist/web-server/usage/cliproxy-usage-transformer.d.ts +6 -0
- package/dist/web-server/usage/cliproxy-usage-transformer.d.ts.map +1 -1
- package/dist/web-server/usage/cliproxy-usage-transformer.js +57 -1
- package/dist/web-server/usage/cliproxy-usage-transformer.js.map +1 -1
- package/dist/web-server/usage/codex-native-usage-collector.d.ts.map +1 -1
- package/dist/web-server/usage/codex-native-usage-collector.js +7 -4
- package/dist/web-server/usage/codex-native-usage-collector.js.map +1 -1
- package/dist/web-server/usage/native-quota-collector.d.ts.map +1 -1
- package/dist/web-server/usage/native-quota-collector.js +35 -67
- package/dist/web-server/usage/native-quota-collector.js.map +1 -1
- package/package.json +3 -1
- package/scripts/run-test-bucket.js +4 -0
- package/dist/ui/assets/cliproxy-BdW2ctsn.js +0 -4
- package/dist/ui/assets/index-DzFlVVV3.css +0 -1
- package/dist/ui/assets/index-pHOoeHgY.js +0 -56
- package/dist/ui/assets/proxy-status-widget-ColaQQXh.js +0 -1
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared probe state for CLIProxy-managed Claude accounts.
|
|
4
|
+
*
|
|
5
|
+
* Anthropic's /api/oauth/usage endpoint rate-limits hard (429, usually with
|
|
6
|
+
* `retry-after: 0`). Every CCS process probes it on its own: the dashboard
|
|
7
|
+
* server, and the runtime quota monitor in each running `ccs claude` session.
|
|
8
|
+
* In-memory caches can't coordinate those, so this state lives on disk under
|
|
9
|
+
* ~/.ccs/cache/claude-quota/<account>.json and gives all of them:
|
|
10
|
+
*
|
|
11
|
+
* - a short shared TTL, so N processes polling one account make one call
|
|
12
|
+
* - a 429 cooldown with exponential backoff, honored by every process
|
|
13
|
+
* - the last successful result, served (marked stale) while probes fail
|
|
14
|
+
*/
|
|
15
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
18
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
19
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
20
|
+
}
|
|
21
|
+
Object.defineProperty(o, k2, desc);
|
|
22
|
+
}) : (function(o, m, k, k2) {
|
|
23
|
+
if (k2 === undefined) k2 = k;
|
|
24
|
+
o[k2] = m[k];
|
|
25
|
+
}));
|
|
26
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
27
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
28
|
+
}) : function(o, v) {
|
|
29
|
+
o["default"] = v;
|
|
30
|
+
});
|
|
31
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.buildStaleClaudeResult = exports.computeClaudeProbeCooldownMs = exports.parseRetryAfterMs = exports.writeClaudeProbeState = exports.readClaudeProbeState = exports.CLAUDE_QUOTA_NORMALIZATION_VERSION = exports.CLAUDE_PROBE_STALE_MAX_AGE_MS = exports.CLAUDE_PROBE_COOLDOWN_MAX_MS = exports.CLAUDE_PROBE_COOLDOWN_BASE_MS = exports.CLAUDE_PROBE_SHARED_TTL_MS = void 0;
|
|
40
|
+
const fs = __importStar(require("node:fs"));
|
|
41
|
+
const path = __importStar(require("node:path"));
|
|
42
|
+
const config_manager_1 = require("../../utils/config-manager");
|
|
43
|
+
const auth_utils_1 = require("../auth/auth-utils");
|
|
44
|
+
const quota_fetcher_claude_normalizer_1 = require("./quota-fetcher-claude-normalizer");
|
|
45
|
+
/** Reuse another process's successful result for this long instead of probing. */
|
|
46
|
+
exports.CLAUDE_PROBE_SHARED_TTL_MS = 60000;
|
|
47
|
+
/** First 429 cooldown; doubles per consecutive 429 up to the max. */
|
|
48
|
+
exports.CLAUDE_PROBE_COOLDOWN_BASE_MS = 2 * 60000;
|
|
49
|
+
exports.CLAUDE_PROBE_COOLDOWN_MAX_MS = 15 * 60000;
|
|
50
|
+
/** Upper bound for a server-sent Retry-After. */
|
|
51
|
+
const CLAUDE_PROBE_RETRY_AFTER_MAX_MS = 60 * 60000;
|
|
52
|
+
/** Never serve a last-good result older than this, even if no window reset has passed. */
|
|
53
|
+
exports.CLAUDE_PROBE_STALE_MAX_AGE_MS = 6 * 60 * 60000;
|
|
54
|
+
const STATE_VERSION = 1;
|
|
55
|
+
exports.CLAUDE_QUOTA_NORMALIZATION_VERSION = 4;
|
|
56
|
+
function emptyState() {
|
|
57
|
+
return {
|
|
58
|
+
version: STATE_VERSION,
|
|
59
|
+
normalizationVersion: exports.CLAUDE_QUOTA_NORMALIZATION_VERSION,
|
|
60
|
+
lastGood: null,
|
|
61
|
+
consecutive429: 0,
|
|
62
|
+
cooldownUntil: 0,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function getStateFile(accountId) {
|
|
66
|
+
return path.join((0, config_manager_1.getCcsDir)(), 'cache', 'claude-quota', `${(0, auth_utils_1.sanitizeEmail)(accountId)}.json`);
|
|
67
|
+
}
|
|
68
|
+
function readClaudeProbeState(accountId) {
|
|
69
|
+
try {
|
|
70
|
+
const parsed = JSON.parse(fs.readFileSync(getStateFile(accountId), 'utf-8'));
|
|
71
|
+
if (typeof parsed !== 'object' || parsed === null)
|
|
72
|
+
return emptyState();
|
|
73
|
+
const state = parsed;
|
|
74
|
+
if (state.version !== STATE_VERSION)
|
|
75
|
+
return emptyState();
|
|
76
|
+
const lastGood = state.normalizationVersion === exports.CLAUDE_QUOTA_NORMALIZATION_VERSION &&
|
|
77
|
+
state.lastGood &&
|
|
78
|
+
state.lastGood.success === true &&
|
|
79
|
+
Array.isArray(state.lastGood.windows)
|
|
80
|
+
? state.lastGood
|
|
81
|
+
: null;
|
|
82
|
+
return {
|
|
83
|
+
version: STATE_VERSION,
|
|
84
|
+
normalizationVersion: exports.CLAUDE_QUOTA_NORMALIZATION_VERSION,
|
|
85
|
+
lastGood,
|
|
86
|
+
consecutive429: Number.isFinite(state.consecutive429) ? Number(state.consecutive429) : 0,
|
|
87
|
+
cooldownUntil: Number.isFinite(state.cooldownUntil) ? Number(state.cooldownUntil) : 0,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
return emptyState();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.readClaudeProbeState = readClaudeProbeState;
|
|
95
|
+
/** Atomic write (tmp + rename) so concurrent readers never see a partial file. */
|
|
96
|
+
function writeClaudeProbeState(accountId, state) {
|
|
97
|
+
const file = getStateFile(accountId);
|
|
98
|
+
const tmp = `${file}.${process.pid}.${Date.now()}.tmp`;
|
|
99
|
+
try {
|
|
100
|
+
fs.mkdirSync(path.dirname(file), { recursive: true, mode: 0o700 });
|
|
101
|
+
fs.writeFileSync(tmp, JSON.stringify({ ...state, normalizationVersion: exports.CLAUDE_QUOTA_NORMALIZATION_VERSION }), { mode: 0o600 });
|
|
102
|
+
fs.renameSync(tmp, file);
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
// Best effort: losing the shared state only costs extra upstream calls.
|
|
106
|
+
try {
|
|
107
|
+
fs.rmSync(tmp, { force: true });
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
// ignore
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.writeClaudeProbeState = writeClaudeProbeState;
|
|
115
|
+
/** Parse `retry-after:<seconds|HTTP-date>` from errorDetail into ms. */
|
|
116
|
+
function parseRetryAfterMs(detail, now) {
|
|
117
|
+
const match = detail ? /retry-after:(.+)$/.exec(detail) : null;
|
|
118
|
+
if (!match)
|
|
119
|
+
return null;
|
|
120
|
+
const raw = match[1].trim();
|
|
121
|
+
const seconds = Number(raw);
|
|
122
|
+
const ms = Number.isFinite(seconds) ? seconds * 1000 : Date.parse(raw) - now;
|
|
123
|
+
if (!Number.isFinite(ms))
|
|
124
|
+
return null;
|
|
125
|
+
return Math.min(Math.max(0, ms), CLAUDE_PROBE_RETRY_AFTER_MAX_MS);
|
|
126
|
+
}
|
|
127
|
+
exports.parseRetryAfterMs = parseRetryAfterMs;
|
|
128
|
+
/** Cooldown after the Nth consecutive 429 (1-based); Retry-After wins when longer. */
|
|
129
|
+
function computeClaudeProbeCooldownMs(consecutive429, retryAfterMs) {
|
|
130
|
+
const exponent = Math.max(0, consecutive429 - 1);
|
|
131
|
+
const backoff = Math.min(exports.CLAUDE_PROBE_COOLDOWN_BASE_MS * 2 ** exponent, exports.CLAUDE_PROBE_COOLDOWN_MAX_MS);
|
|
132
|
+
return Math.max(backoff, retryAfterMs ?? 0);
|
|
133
|
+
}
|
|
134
|
+
exports.computeClaudeProbeCooldownMs = computeClaudeProbeCooldownMs;
|
|
135
|
+
function hasReset(resetAt, now) {
|
|
136
|
+
if (!resetAt)
|
|
137
|
+
return false;
|
|
138
|
+
const parsed = Date.parse(resetAt);
|
|
139
|
+
return Number.isFinite(parsed) && parsed <= now;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Build the stale result served while probes fail. Windows whose reset time has
|
|
143
|
+
* passed are dropped (their numbers are known to be wrong); returns null when
|
|
144
|
+
* the result is too old or no window survives.
|
|
145
|
+
*/
|
|
146
|
+
function buildStaleClaudeResult(lastGood, now) {
|
|
147
|
+
if (now - lastGood.lastUpdated > exports.CLAUDE_PROBE_STALE_MAX_AGE_MS)
|
|
148
|
+
return null;
|
|
149
|
+
const windows = lastGood.windows.filter((window) => !hasReset(window.resetAt, now));
|
|
150
|
+
if (windows.length === 0)
|
|
151
|
+
return null;
|
|
152
|
+
return {
|
|
153
|
+
...lastGood,
|
|
154
|
+
windows,
|
|
155
|
+
coreUsage: (0, quota_fetcher_claude_normalizer_1.buildClaudeCoreUsageSummary)(windows),
|
|
156
|
+
stale: true,
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
exports.buildStaleClaudeResult = buildStaleClaudeResult;
|
|
160
|
+
//# sourceMappingURL=quota-fetcher-claude-probe-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quota-fetcher-claude-probe-state.js","sourceRoot":"","sources":["../../../src/cliproxy/quota/quota-fetcher-claude-probe-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* Fetches OAuth usage windows from Claude API and normalizes 5h + weekly windows.
|
|
5
5
|
*/
|
|
6
6
|
import type { ClaudeQuotaResult } from './quota-types';
|
|
7
|
-
import { buildClaudeQuotaWindows, buildClaudeCoreUsageSummary } from './quota-fetcher-claude-normalizer';
|
|
8
|
-
export { buildClaudeQuotaWindows, buildClaudeCoreUsageSummary };
|
|
7
|
+
import { buildClaudeQuotaWindows, buildClaudeCoreUsageSummary, buildClaudeGeneralWindowPresence } from './quota-fetcher-claude-normalizer';
|
|
8
|
+
export { buildClaudeQuotaWindows, buildClaudeCoreUsageSummary, buildClaudeGeneralWindowPresence };
|
|
9
9
|
export declare const CLAUDE_OAUTH_USAGE_URL = "https://api.anthropic.com/api/oauth/usage";
|
|
10
10
|
/**
|
|
11
11
|
* Fetch quota using a directly-supplied native OAuth access token.
|
|
@@ -15,11 +15,11 @@ export declare const CLAUDE_OAUTH_USAGE_URL = "https://api.anthropic.com/api/oau
|
|
|
15
15
|
* than a CLIProxy-managed auth file). Lives in this file so it can share the
|
|
16
16
|
* file-private beta header, timeout, attempt count, and branch logic.
|
|
17
17
|
*/
|
|
18
|
-
export declare function fetchClaudeQuotaWithToken(accessToken: string, accountId?: string, verbose?: boolean): Promise<ClaudeQuotaResult>;
|
|
18
|
+
export declare function fetchClaudeQuotaWithToken(accessToken: string, accountId?: string, verbose?: boolean, signal?: AbortSignal): Promise<ClaudeQuotaResult>;
|
|
19
19
|
/**
|
|
20
20
|
* Fetch quota for a single Claude account.
|
|
21
21
|
*/
|
|
22
|
-
export declare function fetchClaudeQuota(accountId: string, verbose?: boolean): Promise<ClaudeQuotaResult>;
|
|
22
|
+
export declare function fetchClaudeQuota(accountId: string, verbose?: boolean, signal?: AbortSignal): Promise<ClaudeQuotaResult>;
|
|
23
23
|
/**
|
|
24
24
|
* Fetch quota for all Claude accounts.
|
|
25
25
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-fetcher-claude.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/quota/quota-fetcher-claude.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EACL,uBAAuB,EACvB,2BAA2B,
|
|
1
|
+
{"version":3,"file":"quota-fetcher-claude.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/quota/quota-fetcher-claude.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,gCAAgC,EACjC,MAAM,mCAAmC,CAAC;AAa3C,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,gCAAgC,EAAE,CAAC;AAElG,eAAO,MAAM,sBAAsB,8CAA8C,CAAC;AAyZlF;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,WAAW,EAAE,MAAM,EACnB,SAAS,SAAgB,EACzB,OAAO,UAAQ,EACf,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,iBAAiB,CAAC,CAM5B;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,OAAO,UAAQ,EACf,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,iBAAiB,CAAC,CAoC5B;AAkID;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,UAAQ,GACd,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,EAAE,CAAC,CAS1D"}
|
|
@@ -28,7 +28,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
28
28
|
return result;
|
|
29
29
|
};
|
|
30
30
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
-
exports.fetchAllClaudeQuotas = exports.fetchClaudeQuota = exports.fetchClaudeQuotaWithToken = exports.CLAUDE_OAUTH_USAGE_URL = exports.buildClaudeCoreUsageSummary = exports.buildClaudeQuotaWindows = void 0;
|
|
31
|
+
exports.fetchAllClaudeQuotas = exports.fetchClaudeQuota = exports.fetchClaudeQuotaWithToken = exports.CLAUDE_OAUTH_USAGE_URL = exports.buildClaudeGeneralWindowPresence = exports.buildClaudeCoreUsageSummary = exports.buildClaudeQuotaWindows = void 0;
|
|
32
32
|
const path = __importStar(require("node:path"));
|
|
33
33
|
const fsp = __importStar(require("node:fs/promises"));
|
|
34
34
|
const config_generator_1 = require("../config/config-generator");
|
|
@@ -37,13 +37,46 @@ const auth_utils_1 = require("../auth/auth-utils");
|
|
|
37
37
|
const quota_fetcher_claude_normalizer_1 = require("./quota-fetcher-claude-normalizer");
|
|
38
38
|
Object.defineProperty(exports, "buildClaudeQuotaWindows", { enumerable: true, get: function () { return quota_fetcher_claude_normalizer_1.buildClaudeQuotaWindows; } });
|
|
39
39
|
Object.defineProperty(exports, "buildClaudeCoreUsageSummary", { enumerable: true, get: function () { return quota_fetcher_claude_normalizer_1.buildClaudeCoreUsageSummary; } });
|
|
40
|
+
Object.defineProperty(exports, "buildClaudeGeneralWindowPresence", { enumerable: true, get: function () { return quota_fetcher_claude_normalizer_1.buildClaudeGeneralWindowPresence; } });
|
|
40
41
|
const logging_1 = require("../../services/logging");
|
|
42
|
+
const quota_fetcher_claude_probe_state_1 = require("./quota-fetcher-claude-probe-state");
|
|
41
43
|
const logger = (0, logging_1.createLogger)('cliproxy:quota:claude');
|
|
42
44
|
exports.CLAUDE_OAUTH_USAGE_URL = 'https://api.anthropic.com/api/oauth/usage';
|
|
43
45
|
const CLAUDE_QUOTA_TIMEOUT_MS = 10000;
|
|
44
46
|
const CLAUDE_QUOTA_MAX_ATTEMPTS = 2;
|
|
45
47
|
const CLAUDE_OAUTH_BETA_HEADER = 'oauth-2025-04-20';
|
|
46
48
|
const CLAUDE_QUOTA_ERROR_BODY_MAX_BYTES = 8192;
|
|
49
|
+
function throwIfAborted(signal) {
|
|
50
|
+
if (signal?.aborted) {
|
|
51
|
+
const error = new Error('Claude quota request cancelled');
|
|
52
|
+
error.name = 'AbortError';
|
|
53
|
+
throw error;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/** Bound caller waits even when a response-body implementation ignores fetch cancellation. */
|
|
57
|
+
function waitWithAbort(promise, signal) {
|
|
58
|
+
return new Promise((resolve, reject) => {
|
|
59
|
+
const onAbort = () => {
|
|
60
|
+
signal.removeEventListener('abort', onAbort);
|
|
61
|
+
try {
|
|
62
|
+
throwIfAborted(signal);
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
reject(error);
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
signal.addEventListener('abort', onAbort, { once: true });
|
|
69
|
+
promise.then((value) => {
|
|
70
|
+
signal.removeEventListener('abort', onAbort);
|
|
71
|
+
resolve(value);
|
|
72
|
+
}, (error) => {
|
|
73
|
+
signal.removeEventListener('abort', onAbort);
|
|
74
|
+
reject(error);
|
|
75
|
+
});
|
|
76
|
+
if (signal.aborted)
|
|
77
|
+
onAbort();
|
|
78
|
+
});
|
|
79
|
+
}
|
|
47
80
|
function asString(value) {
|
|
48
81
|
return typeof value === 'string' && value.trim().length > 0 ? value.trim() : null;
|
|
49
82
|
}
|
|
@@ -156,6 +189,15 @@ async function readAuthCandidate(filePath) {
|
|
|
156
189
|
}
|
|
157
190
|
async function readClaudeAuthData(accountId) {
|
|
158
191
|
const authDirs = [(0, config_generator_1.getAuthDir)(), (0, account_manager_1.getPausedDir)()];
|
|
192
|
+
const registryAccount = (0, account_manager_1.getAccount)('claude', accountId);
|
|
193
|
+
if (registryAccount?.tokenFile) {
|
|
194
|
+
for (const authDir of authDirs) {
|
|
195
|
+
const authData = await readAuthCandidate(path.join(authDir, registryAccount.tokenFile));
|
|
196
|
+
if (authData) {
|
|
197
|
+
return authData;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
159
201
|
const sanitizedId = (0, auth_utils_1.sanitizeEmail)(accountId);
|
|
160
202
|
const expectedFiles = [`claude-${sanitizedId}.json`, `anthropic-${sanitizedId}.json`];
|
|
161
203
|
for (const authDir of authDirs) {
|
|
@@ -221,13 +263,16 @@ function buildEmptyResult(error, accountId, needsReauth = false) {
|
|
|
221
263
|
* window normalization so neither caller re-implements the hostile-endpoint
|
|
222
264
|
* handling. The callers differ only in WHERE the token comes from.
|
|
223
265
|
*/
|
|
224
|
-
async function runClaudeUsageFetch(accessToken, accountId, verbose) {
|
|
266
|
+
async function runClaudeUsageFetch(accessToken, accountId, verbose, signal) {
|
|
225
267
|
let lastError = 'Unknown error';
|
|
226
268
|
for (let attempt = 1; attempt <= CLAUDE_QUOTA_MAX_ATTEMPTS; attempt++) {
|
|
269
|
+
throwIfAborted(signal);
|
|
227
270
|
const controller = new AbortController();
|
|
271
|
+
const onAbort = () => controller.abort();
|
|
272
|
+
signal?.addEventListener('abort', onAbort, { once: true });
|
|
228
273
|
const timeoutId = setTimeout(() => controller.abort(), CLAUDE_QUOTA_TIMEOUT_MS);
|
|
229
274
|
try {
|
|
230
|
-
const response = await fetch(exports.CLAUDE_OAUTH_USAGE_URL, {
|
|
275
|
+
const response = await waitWithAbort(fetch(exports.CLAUDE_OAUTH_USAGE_URL, {
|
|
231
276
|
method: 'GET',
|
|
232
277
|
signal: controller.signal,
|
|
233
278
|
headers: {
|
|
@@ -236,7 +281,8 @@ async function runClaudeUsageFetch(accessToken, accountId, verbose) {
|
|
|
236
281
|
'Content-Type': 'application/json',
|
|
237
282
|
'anthropic-beta': CLAUDE_OAUTH_BETA_HEADER,
|
|
238
283
|
},
|
|
239
|
-
});
|
|
284
|
+
}), controller.signal);
|
|
285
|
+
throwIfAborted(signal);
|
|
240
286
|
if (verbose) {
|
|
241
287
|
logger.info('quota.fetch.status', `Claude OAuth usage status: ${response.status}`, {
|
|
242
288
|
provider: 'claude',
|
|
@@ -245,22 +291,21 @@ async function runClaudeUsageFetch(accessToken, accountId, verbose) {
|
|
|
245
291
|
});
|
|
246
292
|
}
|
|
247
293
|
if (response.status === 401) {
|
|
248
|
-
const errorMessage = await readResponseErrorMessage(response);
|
|
249
|
-
|
|
294
|
+
const errorMessage = await waitWithAbort(readResponseErrorMessage(response), controller.signal);
|
|
295
|
+
throwIfAborted(signal);
|
|
250
296
|
return buildEmptyResult(errorMessage || 'Authentication required for Claude OAuth usage', accountId, true);
|
|
251
297
|
}
|
|
252
298
|
if (response.status === 404) {
|
|
253
|
-
clearTimeout(timeoutId);
|
|
254
299
|
return buildEmptyResult('Claude OAuth usage endpoint not found', accountId);
|
|
255
300
|
}
|
|
256
301
|
if (response.status === 403) {
|
|
257
|
-
clearTimeout(timeoutId);
|
|
258
302
|
return buildEmptyResult('Not authorized for Claude OAuth usage', accountId);
|
|
259
303
|
}
|
|
260
304
|
if (!response.ok) {
|
|
261
305
|
lastError =
|
|
262
|
-
(await readResponseErrorMessage(response)) ||
|
|
306
|
+
(await waitWithAbort(readResponseErrorMessage(response), controller.signal)) ||
|
|
263
307
|
`Claude OAuth usage API error: ${response.status}`;
|
|
308
|
+
throwIfAborted(signal);
|
|
264
309
|
// Surface the upstream status + Retry-After so an outer caller (the
|
|
265
310
|
// native collector's circuit-breaker) can honor backoff guidance.
|
|
266
311
|
const retryAfter = response.headers.get('retry-after');
|
|
@@ -268,10 +313,8 @@ async function runClaudeUsageFetch(accessToken, accountId, verbose) {
|
|
|
268
313
|
// honor Retry-After and bound total volume. Inner retry stays for
|
|
269
314
|
// transient 5xx only.
|
|
270
315
|
if (attempt < CLAUDE_QUOTA_MAX_ATTEMPTS && response.status >= 500) {
|
|
271
|
-
clearTimeout(timeoutId);
|
|
272
316
|
continue;
|
|
273
317
|
}
|
|
274
|
-
clearTimeout(timeoutId);
|
|
275
318
|
if (response.status === 429) {
|
|
276
319
|
return {
|
|
277
320
|
...buildEmptyResult('Claude usage status temporarily unavailable', accountId),
|
|
@@ -291,29 +334,30 @@ async function runClaudeUsageFetch(accessToken, accountId, verbose) {
|
|
|
291
334
|
}
|
|
292
335
|
let payload;
|
|
293
336
|
try {
|
|
294
|
-
payload = await response.json();
|
|
337
|
+
payload = await waitWithAbort(response.json(), controller.signal);
|
|
295
338
|
}
|
|
296
339
|
catch {
|
|
297
|
-
|
|
340
|
+
throwIfAborted(signal);
|
|
298
341
|
return buildEmptyResult('Invalid Claude OAuth usage format', accountId);
|
|
299
342
|
}
|
|
343
|
+
throwIfAborted(signal);
|
|
300
344
|
if (!toObject(payload)) {
|
|
301
|
-
clearTimeout(timeoutId);
|
|
302
345
|
return buildEmptyResult('Invalid Claude OAuth usage format', accountId);
|
|
303
346
|
}
|
|
304
347
|
const windows = (0, quota_fetcher_claude_normalizer_1.buildClaudeQuotaWindows)(payload);
|
|
305
348
|
const coreUsage = (0, quota_fetcher_claude_normalizer_1.buildClaudeCoreUsageSummary)(windows);
|
|
306
|
-
|
|
349
|
+
const generalWindowPresence = (0, quota_fetcher_claude_normalizer_1.buildClaudeGeneralWindowPresence)(payload);
|
|
307
350
|
return {
|
|
308
351
|
success: true,
|
|
309
352
|
windows,
|
|
310
353
|
coreUsage,
|
|
354
|
+
generalWindowPresence,
|
|
311
355
|
lastUpdated: Date.now(),
|
|
312
356
|
accountId,
|
|
313
357
|
};
|
|
314
358
|
}
|
|
315
359
|
catch (error) {
|
|
316
|
-
|
|
360
|
+
throwIfAborted(signal);
|
|
317
361
|
lastError =
|
|
318
362
|
error instanceof Error && error.name === 'AbortError'
|
|
319
363
|
? 'Claude OAuth usage request timeout'
|
|
@@ -330,10 +374,13 @@ async function runClaudeUsageFetch(accessToken, accountId, verbose) {
|
|
|
330
374
|
});
|
|
331
375
|
}
|
|
332
376
|
if (attempt >= CLAUDE_QUOTA_MAX_ATTEMPTS) {
|
|
333
|
-
clearTimeout(timeoutId);
|
|
334
377
|
return { ...buildEmptyResult(lastError, accountId), retryable: true };
|
|
335
378
|
}
|
|
336
379
|
}
|
|
380
|
+
finally {
|
|
381
|
+
clearTimeout(timeoutId);
|
|
382
|
+
signal?.removeEventListener('abort', onAbort);
|
|
383
|
+
}
|
|
337
384
|
}
|
|
338
385
|
return { ...buildEmptyResult(lastError, accountId), retryable: true };
|
|
339
386
|
}
|
|
@@ -345,27 +392,147 @@ async function runClaudeUsageFetch(accessToken, accountId, verbose) {
|
|
|
345
392
|
* than a CLIProxy-managed auth file). Lives in this file so it can share the
|
|
346
393
|
* file-private beta header, timeout, attempt count, and branch logic.
|
|
347
394
|
*/
|
|
348
|
-
async function fetchClaudeQuotaWithToken(accessToken, accountId = 'claude-code', verbose = false) {
|
|
395
|
+
async function fetchClaudeQuotaWithToken(accessToken, accountId = 'claude-code', verbose = false, signal) {
|
|
396
|
+
throwIfAborted(signal);
|
|
349
397
|
if (!accessToken || accessToken.trim().length === 0) {
|
|
350
398
|
return buildEmptyResult('Missing native Claude access token', accountId, true);
|
|
351
399
|
}
|
|
352
|
-
return runClaudeUsageFetch(accessToken.trim(), accountId, verbose);
|
|
400
|
+
return runClaudeUsageFetch(accessToken.trim(), accountId, verbose, signal);
|
|
353
401
|
}
|
|
354
402
|
exports.fetchClaudeQuotaWithToken = fetchClaudeQuotaWithToken;
|
|
355
403
|
/**
|
|
356
404
|
* Fetch quota for a single Claude account.
|
|
357
405
|
*/
|
|
358
|
-
async function fetchClaudeQuota(accountId, verbose = false) {
|
|
406
|
+
async function fetchClaudeQuota(accountId, verbose = false, signal) {
|
|
407
|
+
throwIfAborted(signal);
|
|
359
408
|
const authData = await readClaudeAuthData(accountId);
|
|
409
|
+
throwIfAborted(signal);
|
|
360
410
|
if (!authData) {
|
|
361
411
|
return buildEmptyResult('Auth file not found for Claude account', accountId);
|
|
362
412
|
}
|
|
363
413
|
if (authData.isExpired) {
|
|
364
414
|
return buildEmptyResult('Token expired - re-authenticate with ccs cliproxy auth claude', accountId, true);
|
|
365
415
|
}
|
|
366
|
-
|
|
416
|
+
const pending = pendingClaudeFetches.get(accountId);
|
|
417
|
+
if (pending)
|
|
418
|
+
return waitForSharedFetch(accountId, pending, signal);
|
|
419
|
+
const controller = new AbortController();
|
|
420
|
+
const entry = {
|
|
421
|
+
controller,
|
|
422
|
+
waiters: 0,
|
|
423
|
+
settled: false,
|
|
424
|
+
promise: fetchClaudeQuotaWithSharedState(authData.accessToken, accountId, verbose, controller.signal).finally(() => {
|
|
425
|
+
entry.settled = true;
|
|
426
|
+
if (pendingClaudeFetches.get(accountId) === entry)
|
|
427
|
+
pendingClaudeFetches.delete(accountId);
|
|
428
|
+
}),
|
|
429
|
+
};
|
|
430
|
+
pendingClaudeFetches.set(accountId, entry);
|
|
431
|
+
return waitForSharedFetch(accountId, entry, signal);
|
|
367
432
|
}
|
|
368
433
|
exports.fetchClaudeQuota = fetchClaudeQuota;
|
|
434
|
+
const pendingClaudeFetches = new Map();
|
|
435
|
+
/** Only the last departing caller may cancel a shared provider request. */
|
|
436
|
+
function waitForSharedFetch(accountId, entry, signal) {
|
|
437
|
+
entry.waiters++;
|
|
438
|
+
return new Promise((resolve, reject) => {
|
|
439
|
+
let done = false;
|
|
440
|
+
const release = () => {
|
|
441
|
+
if (done)
|
|
442
|
+
return false;
|
|
443
|
+
done = true;
|
|
444
|
+
signal?.removeEventListener('abort', onAbort);
|
|
445
|
+
entry.waiters--;
|
|
446
|
+
if (!entry.settled && entry.waiters === 0) {
|
|
447
|
+
if (pendingClaudeFetches.get(accountId) === entry)
|
|
448
|
+
pendingClaudeFetches.delete(accountId);
|
|
449
|
+
entry.controller.abort();
|
|
450
|
+
}
|
|
451
|
+
return true;
|
|
452
|
+
};
|
|
453
|
+
const onAbort = () => {
|
|
454
|
+
if (!release())
|
|
455
|
+
return;
|
|
456
|
+
try {
|
|
457
|
+
throwIfAborted(signal);
|
|
458
|
+
}
|
|
459
|
+
catch (error) {
|
|
460
|
+
reject(error);
|
|
461
|
+
}
|
|
462
|
+
};
|
|
463
|
+
entry.promise.then((value) => {
|
|
464
|
+
if (release())
|
|
465
|
+
resolve(value);
|
|
466
|
+
}, (error) => {
|
|
467
|
+
if (release())
|
|
468
|
+
reject(error);
|
|
469
|
+
});
|
|
470
|
+
signal?.addEventListener('abort', onAbort, { once: true });
|
|
471
|
+
if (signal?.aborted)
|
|
472
|
+
onAbort();
|
|
473
|
+
});
|
|
474
|
+
}
|
|
475
|
+
function buildCooldownHint(cooldownUntil) {
|
|
476
|
+
return `Inference may still be available. Anthropic rate-limited the usage check; CCS retries after ${new Date(cooldownUntil).toLocaleTimeString()}.`;
|
|
477
|
+
}
|
|
478
|
+
/** Result for a probe skipped because the account is in a 429 cooldown. */
|
|
479
|
+
function buildCooldownResult(accountId, cooldownUntil) {
|
|
480
|
+
return {
|
|
481
|
+
...buildEmptyResult('Claude usage status temporarily unavailable', accountId),
|
|
482
|
+
httpStatus: 429,
|
|
483
|
+
errorCode: 'usage_probe_unavailable',
|
|
484
|
+
actionHint: buildCooldownHint(cooldownUntil),
|
|
485
|
+
retryable: true,
|
|
486
|
+
errorDetail: `cooldown-until:${new Date(cooldownUntil).toISOString()}`,
|
|
487
|
+
};
|
|
488
|
+
}
|
|
489
|
+
/**
|
|
490
|
+
* Probe Anthropic through the shared on-disk state: reuse a fresh result from
|
|
491
|
+
* any CCS process, skip the network during a 429 cooldown, and serve the last
|
|
492
|
+
* good result (stale: true) while the probe is rate-limited or failing.
|
|
493
|
+
*/
|
|
494
|
+
async function fetchClaudeQuotaWithSharedState(accessToken, accountId, verbose, signal) {
|
|
495
|
+
throwIfAborted(signal);
|
|
496
|
+
const state = (0, quota_fetcher_claude_probe_state_1.readClaudeProbeState)(accountId);
|
|
497
|
+
const now = Date.now();
|
|
498
|
+
if (state.lastGood && now - state.lastGood.lastUpdated < quota_fetcher_claude_probe_state_1.CLAUDE_PROBE_SHARED_TTL_MS) {
|
|
499
|
+
return state.lastGood;
|
|
500
|
+
}
|
|
501
|
+
if (now < state.cooldownUntil) {
|
|
502
|
+
const stale = state.lastGood ? (0, quota_fetcher_claude_probe_state_1.buildStaleClaudeResult)(state.lastGood, now) : null;
|
|
503
|
+
return stale ?? buildCooldownResult(accountId, state.cooldownUntil);
|
|
504
|
+
}
|
|
505
|
+
const result = await runClaudeUsageFetch(accessToken, accountId, verbose, signal);
|
|
506
|
+
throwIfAborted(signal);
|
|
507
|
+
if (result.success) {
|
|
508
|
+
(0, quota_fetcher_claude_probe_state_1.writeClaudeProbeState)(accountId, {
|
|
509
|
+
...state,
|
|
510
|
+
lastGood: result,
|
|
511
|
+
consecutive429: 0,
|
|
512
|
+
cooldownUntil: 0,
|
|
513
|
+
});
|
|
514
|
+
return result;
|
|
515
|
+
}
|
|
516
|
+
if (result.httpStatus === 429) {
|
|
517
|
+
const consecutive429 = state.consecutive429 + 1;
|
|
518
|
+
const cooldownMs = (0, quota_fetcher_claude_probe_state_1.computeClaudeProbeCooldownMs)(consecutive429, (0, quota_fetcher_claude_probe_state_1.parseRetryAfterMs)(result.errorDetail, Date.now()));
|
|
519
|
+
const cooldownUntil = Date.now() + cooldownMs;
|
|
520
|
+
(0, quota_fetcher_claude_probe_state_1.writeClaudeProbeState)(accountId, { ...state, consecutive429, cooldownUntil });
|
|
521
|
+
logger.warn('quota.fetch.rate_limited', 'Claude OAuth usage probe rate-limited', {
|
|
522
|
+
provider: 'claude',
|
|
523
|
+
consecutive429,
|
|
524
|
+
cooldownMs,
|
|
525
|
+
});
|
|
526
|
+
const stale = state.lastGood ? (0, quota_fetcher_claude_probe_state_1.buildStaleClaudeResult)(state.lastGood, Date.now()) : null;
|
|
527
|
+
return stale ?? { ...result, actionHint: buildCooldownHint(cooldownUntil) };
|
|
528
|
+
}
|
|
529
|
+
// Transient failures (5xx, timeouts) keep the last good numbers visible;
|
|
530
|
+
// auth and access failures are shown as-is so the user can act on them.
|
|
531
|
+
if (result.retryable && state.lastGood) {
|
|
532
|
+
return (0, quota_fetcher_claude_probe_state_1.buildStaleClaudeResult)(state.lastGood, Date.now()) ?? result;
|
|
533
|
+
}
|
|
534
|
+
return result;
|
|
535
|
+
}
|
|
369
536
|
/**
|
|
370
537
|
* Fetch quota for all Claude accounts.
|
|
371
538
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-fetcher-claude.js","sourceRoot":"","sources":["../../../src/cliproxy/quota/quota-fetcher-claude.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"quota-fetcher-claude.js","sourceRoot":"","sources":["../../../src/cliproxy/quota/quota-fetcher-claude.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Sanitize upstream
|
|
2
|
+
* Sanitize upstream quota labels before storing or rendering them.
|
|
3
3
|
*
|
|
4
4
|
* The quota API is not schema-validated at runtime, so additional-rate-limit
|
|
5
5
|
* labels must be constrained to safe, printable strings before they reach the
|
|
6
6
|
* terminal.
|
|
7
7
|
*/
|
|
8
|
-
export declare function
|
|
8
|
+
export declare function sanitizeQuotaLabelOrNull(value: unknown): string | null;
|
|
9
|
+
export declare const sanitizeCodexFeatureLabelOrNull: typeof sanitizeQuotaLabelOrNull;
|
|
9
10
|
export declare function sanitizeCodexFeatureLabel(value: unknown): string;
|
|
10
11
|
//# sourceMappingURL=quota-label-sanitizer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-label-sanitizer.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/quota/quota-label-sanitizer.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,wBAAgB
|
|
1
|
+
{"version":3,"file":"quota-label-sanitizer.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/quota/quota-label-sanitizer.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAWtE;AAED,eAAO,MAAM,+BAA+B,iCAA2B,CAAC;AAExE,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEhE"}
|