9router/open-sse
Janu Yoga 8321032e36 feat(codebuddy-cn): add API key auth + credit quota tracker
Two additions on top of the merged CodeBuddy CN OAuth provider:

1. API key auth — connect with a direct API key (sent as
   Authorization: Bearer), not only via OAuth device-code flow.
   - registry: add authModes ["oauth","apikey"] + hasOAuth; combined Bearer
     auth already forwards the key, token-refresh skips key connections.
   - providers POST: accept dual-auth providers (authModes includes
     "apikey") that live under category "oauth" — previously rejected as
     "Invalid provider". Also fixes the same latent gap for xai.

2. Quota tracker — surface CodeBuddy CN credit balance on the usage
   dashboard for both OAuth and API-key connections.
   - registry: add transport.usage.url (Tencent billing endpoint) +
     features.usage/usageApikey so the connection is quota-eligible.
   - new CN-scoped handler services/usage/codebuddy-cn.js: POST the billing
     meter endpoint, unwrap data.Response.Data.Accounts[]. The payload mixes
     two credit types that must not be merged:
       * refill/base ("基础体验包") — recurring allowance; cycle resets well
         before the resource expires (CycleEndTime << DeductionEndTime).
         Reads the *Cycle* balance, resetAt = next refresh. Cadence-labelled.
       * bonus ("活动赠送包") — one-shot credits that expire at CycleEndTime.
         Reads the plain Capacity balance. Labelled "Bonus Pack N".
     One quota row per package, soonest-expiring first.
   - register handler under "codebuddy-cn" in USAGE_HANDLERS.

Frontend needs no change — USAGE_SUPPORTED_PROVIDERS/USAGE_APIKEY_PROVIDERS
and the generic parseQuotaData branch already cover this shape.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-21 16:12:20 +07:00
..
config fix(kiro): honor thinking effort budgets 2026-06-18 15:14:42 +07:00
executors fix(codex): preserve custom tools during request normalization 2026-06-21 16:01:45 +07:00
handlers feat(headroom): add proxy lifecycle management + dashboard UI 2026-06-20 10:09:50 +07:00
providers feat(codebuddy-cn): add API key auth + credit quota tracker 2026-06-21 16:12:20 +07:00
rtk feat(headroom): add proxy lifecycle management + dashboard UI 2026-06-20 10:09:50 +07:00
services feat(codebuddy-cn): add API key auth + credit quota tracker 2026-06-21 16:12:20 +07:00
shared refactor(open-sse): registry consolidation + DRY media/oauth/adhoc cleanup 2026-06-14 13:15:48 +07:00
transformer fix(codex): harden streaming timeouts + Responses terminal events 2026-06-06 16:07:43 +07:00
translator fix(claude haiku): update handling of unsupported adaptive thinking and output_config.effort 2026-06-20 16:29:15 +07:00
utils feat(ponytail): introduce "Ponytail" feature for minimalistic code generation 2026-06-20 15:08:11 +07:00
.npmignore Update jsconfig.json and package.json to correct open-sse path references from relative to local directory. 2026-01-05 10:37:09 +07:00
AGENTS.md feat(headroom): add proxy lifecycle management + dashboard UI 2026-06-20 10:09:50 +07:00
index.js refactor(open-sse): translator DRY + schema enums, bug fixes, dead code cleanup 2026-06-14 18:49:38 +07:00