Files
OmniRoute/open-sse/config/claudeCodeCompatibleIdentity.ts
Bob.Hou 36be267a17 fix(providers): add CLAUDE_CODE_CLIENT_VERSION and GITHUB_COPILOT_CLI_VERSION env overrides (#12632)
Validado em lote numa worktree combinada com os 4 PRs desta leva sobre o tip de `release/v3.8.51`: `typecheck:core` limpo e **119/119** nos 9 arquivos de teste que trazem.

Três dos quatro conflitavam apenas no `config/quality/file-size-baseline.json`, todos de forma aditiva (chaves `_rebaseline_` distintas que devem coexistir); resolvidos com validação de JSON a cada passo.

Registro que o **#12637 não é duplicata do #12566**, apesar do título quase idêntico: o autor documenta que aquele escopou o cooldown de preflight por família e este cobre o `genericQuotaFetcher`, que é o que o roteamento reset-aware efetivamente chama. Traz também validação ao vivo em VPS (imagem X500, `onmi-gemini3.6` → HTTP 200), satisfazendo a Hard Rule #18.

Obrigado, @HouMinXi.
2026-09-03 23:43:38 -03:00

34 lines
1.3 KiB
TypeScript

import {
CLAUDE_CODE_CLIENT_VERSION,
CLAUDE_CODE_RUNTIME_VERSION,
CLAUDE_CODE_SDK_PACKAGE_VERSION,
getClaudeCodeClientVersion,
getClaudeCodeUserAgent,
} from "@/shared/constants/claudeCodeClient";
export const CLAUDE_CODE_COMPATIBLE_VERSION = CLAUDE_CODE_CLIENT_VERSION;
export function getClaudeCodeCompatibleVersion(): string {
return getClaudeCodeClientVersion();
}
/** Module-load snapshot. Wire UA uses getClaudeCodeUserAgent("sdk-cli"). */
export const CLAUDE_CODE_COMPATIBLE_USER_AGENT = getClaudeCodeUserAgent("sdk-cli");
export { getClaudeCodeUserAgent };
export const CLAUDE_CODE_COMPATIBLE_STAINLESS_PACKAGE_VERSION = CLAUDE_CODE_SDK_PACKAGE_VERSION;
export const CLAUDE_CODE_COMPATIBLE_STAINLESS_RUNTIME_VERSION = CLAUDE_CODE_RUNTIME_VERSION;
const CONTEXT_1M_NATIVE_MODELS = ["claude-fable-5-1", "claude-opus-5"];
export function modelHasNativeContext1m(model: string | null | undefined): boolean {
const normalizedModel = String(model || "")
.trim()
.toLowerCase()
.replace(/^.*?(?=claude-)/, "")
.replace(/-\d{8}$/, "");
return CONTEXT_1M_NATIVE_MODELS.some(
(supported) =>
normalizedModel === supported ||
(normalizedModel.startsWith(`${supported}-`) &&
!/^\d/.test(normalizedModel.slice(supported.length + 1)))
);
}