refactor(open-sse): registry consolidation + DRY media/oauth/adhoc cleanup
- Single-source registry: oauth clientId/tokenUrl, usage URLs, image/embed configs, search defaultModel, codex fixedPort, google token url derive. - Remove 29 unused OmniRoute providers (registry 100→71); media intact. - De-adhoc: codex literals → registry format/oauth flags; reasoningInject, image/embed openrouter headers + xai bodyFields config-driven. - Add REGISTRY_TEMPLATE.js + expand PROVIDER_DEFAULTS/schema JSDoc. - Baselines updated; PROVIDERS 62 + alias 90 byte-for-byte, golden snapshots. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -3,8 +3,10 @@ import {
|
||||
isUnrecoverableRefreshError,
|
||||
refreshTokenByProvider,
|
||||
} from "./tokenRefresh.js";
|
||||
import { PROVIDER_OAUTH } from "../providers/index.js";
|
||||
|
||||
export const CODEX_MAX_REFRESH_AGE_MS = 8 * 24 * 60 * 60 * 1000;
|
||||
// Single source: codex.oauth.maxRefreshAgeMs (8 days) — proactive refresh window
|
||||
export const CODEX_MAX_REFRESH_AGE_MS = PROVIDER_OAUTH["codex"]?.maxRefreshAgeMs;
|
||||
|
||||
const refreshLocks = new Map();
|
||||
|
||||
@@ -35,9 +37,9 @@ export function getCredentialLastRefreshMs(credentials) {
|
||||
);
|
||||
}
|
||||
|
||||
export function isCodexRefreshStale(credentials, nowMs = Date.now()) {
|
||||
export function isCodexRefreshStale(credentials, nowMs = Date.now(), maxAgeMs = CODEX_MAX_REFRESH_AGE_MS) {
|
||||
const lastRefreshMs = getCredentialLastRefreshMs(credentials);
|
||||
return !lastRefreshMs || nowMs - lastRefreshMs >= CODEX_MAX_REFRESH_AGE_MS;
|
||||
return !lastRefreshMs || nowMs - lastRefreshMs >= maxAgeMs;
|
||||
}
|
||||
|
||||
export function shouldRefreshCredentials(provider, credentials, nowMs = Date.now()) {
|
||||
@@ -48,7 +50,9 @@ export function shouldRefreshCredentials(provider, credentials, nowMs = Date.now
|
||||
return true;
|
||||
}
|
||||
|
||||
if (provider === "codex" && credentials.refreshToken && isCodexRefreshStale(credentials, nowMs)) {
|
||||
// Proactive stale refresh for providers declaring oauth.maxRefreshAgeMs (e.g. codex)
|
||||
const maxAgeMs = PROVIDER_OAUTH[provider]?.maxRefreshAgeMs;
|
||||
if (maxAgeMs && credentials.refreshToken && isCodexRefreshStale(credentials, nowMs, maxAgeMs)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -101,8 +105,9 @@ export function mergeRefreshedCredentials(provider, currentCredentials, refreshe
|
||||
next.copilotTokenExpiresAt = refreshedCredentials.copilotTokenExpiresAt;
|
||||
}
|
||||
|
||||
// trackRefreshAt providers (e.g. codex) always stamp lastRefreshAt for staleness tracking
|
||||
if (
|
||||
provider === "codex" ||
|
||||
PROVIDER_OAUTH[provider]?.trackRefreshAt ||
|
||||
next.accessToken ||
|
||||
next.apiKey ||
|
||||
next.token ||
|
||||
|
||||
Reference in New Issue
Block a user