feat(provider): add CodeBuddy CN provider (copilot.tencent.com)

Add Tencent CodeBuddy CN (codebuddy-cn) OAuth provider with full support:
OAuth login (GET poll with state query param), token refresh, 15-model
catalog, /v2 inference endpoint, forced streaming, OpenAI-style reasoning,
and per-model capabilities. Renamed from codebuddy to codebuddy-cn to allow
a future codebuddy-ai variant.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Janu Yoga
2026-06-19 15:33:26 +07:00
committed by decolua
parent db4499d6df
commit efd20be8d8
18 changed files with 234 additions and 59 deletions

View File

@@ -287,21 +287,39 @@ exports[`GOLDEN buildHeaders (default executor providers) > cloudflare-ai → he
}
`;
exports[`GOLDEN buildHeaders (default executor providers) > codebuddy → headers (apiKey / oauth) 1`] = `
exports[`GOLDEN buildHeaders (default executor providers) > codebuddy-cn → headers (apiKey / oauth) 1`] = `
{
"apiKey": {
"Accept": "text/event-stream",
"Authorization": "Bearer <TOK>",
"Content-Type": "application/json",
"User-Agent": "CLI/2.108.1 CodeBuddy/2.108.1",
"X-IDE-Name": "CLI",
"X-IDE-Type": "CLI",
"X-Product": "SaaS",
"x-codebuddy-request": "1",
"x-requested-with": "XMLHttpRequest",
},
"nonStream": {
"Authorization": "Bearer <TOK>",
"Content-Type": "application/json",
"User-Agent": "CLI/2.108.1 CodeBuddy/2.108.1",
"X-IDE-Name": "CLI",
"X-IDE-Type": "CLI",
"X-Product": "SaaS",
"x-codebuddy-request": "1",
"x-requested-with": "XMLHttpRequest",
},
"oauth": {
"Accept": "text/event-stream",
"Authorization": "Bearer <TOK>",
"Content-Type": "application/json",
"User-Agent": "CLI/2.108.1 CodeBuddy/2.108.1",
"X-IDE-Name": "CLI",
"X-IDE-Type": "CLI",
"X-Product": "SaaS",
"x-codebuddy-request": "1",
"x-requested-with": "XMLHttpRequest",
},
}
`;
@@ -1001,10 +1019,10 @@ exports[`GOLDEN buildUrl (default executor providers) > cloudflare-ai → url (s
}
`;
exports[`GOLDEN buildUrl (default executor providers) > codebuddy → url (stream + non-stream) 1`] = `
exports[`GOLDEN buildUrl (default executor providers) > codebuddy-cn → url (stream + non-stream) 1`] = `
{
"nonStream": "https://copilot.tencent.com/v1/chat/completions",
"stream": "https://copilot.tencent.com/v1/chat/completions",
"nonStream": "https://copilot.tencent.com/v2/chat/completions",
"stream": "https://copilot.tencent.com/v2/chat/completions",
}
`;