mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-05 23:02:10 +03:00
Remove discontinued Gemini CLI channel (#5246)
Integrated into release/v3.8.40 — Gemini CLI channel removed; Antigravity-path parseTextualReasoningTags guard restored (regression caught + fixed in-place, all antigravity/gemini tests green).
This commit is contained in:
@@ -76,30 +76,6 @@ async function main() {
|
||||
runCmd("git add open-sse/executors/index.ts");
|
||||
}
|
||||
|
||||
// 5. Resolve tests/unit/t20-t22-provider-headers.test.ts (combine imports)
|
||||
const testFile1 = path.join(projectRoot, "tests/unit/t20-t22-provider-headers.test.ts");
|
||||
if (fs.existsSync(testFile1)) {
|
||||
let content = fs.readFileSync(testFile1, "utf-8");
|
||||
content = content.replace(
|
||||
/<<<<<<< HEAD\r?\nconst \{ getCodexClientVersion \} = await import\("\.\.\/\.\.\/open-sse\/config\/codexClient\.ts"\);\r?\nconst \{ geminiCliUserAgent, GEMINI_CLI_VERSION \} =\r?\n=======\r?\nconst \{ geminiCliUserAgent, GEMINI_CLI_VERSION, GEMINI_CLI_GOOGLE_API_NODE_CLIENT_VERSION \} =\r?\n>>>>>>> release\/v3\.8\.4/g,
|
||||
'const { getCodexClientVersion } = await import("../../open-sse/config/codexClient.ts");\nconst { geminiCliUserAgent, GEMINI_CLI_VERSION, GEMINI_CLI_GOOGLE_API_NODE_CLIENT_VERSION } ='
|
||||
);
|
||||
fs.writeFileSync(testFile1, content);
|
||||
runCmd("git add tests/unit/t20-t22-provider-headers.test.ts");
|
||||
}
|
||||
|
||||
// 6. Resolve tests/integration/chat-pipeline.test.ts (combine imports)
|
||||
const testFile2 = path.join(projectRoot, "tests/integration/chat-pipeline.test.ts");
|
||||
if (fs.existsSync(testFile2)) {
|
||||
let content = fs.readFileSync(testFile2, "utf-8");
|
||||
content = content.replace(
|
||||
/<<<<<<< HEAD\r?\nconst \{ getCodexClientVersion \} = await import\("\.\.\/\.\.\/open-sse\/config\/codexClient\.ts"\);\r?\nconst \{ GEMINI_CLI_VERSION \} = await import\("\.\.\/\.\.\/open-sse\/services\/geminiCliHeaders\.ts"\);\r?\n=======\r?\nconst \{ GEMINI_CLI_VERSION, GEMINI_CLI_GOOGLE_API_NODE_CLIENT_VERSION \} =\r?\n\s+await import\("\.\.\/\.\.\/open-sse\/services\/geminiCliHeaders\.ts"\);\r?\n>>>>>>> release\/v3\.8\.4/g,
|
||||
'const { getCodexClientVersion } = await import("../../open-sse/config/codexClient.ts");\nconst { GEMINI_CLI_VERSION, GEMINI_CLI_GOOGLE_API_NODE_CLIENT_VERSION } =\n await import("../../open-sse/services/geminiCliHeaders.ts");'
|
||||
);
|
||||
fs.writeFileSync(testFile2, content);
|
||||
runCmd("git add tests/integration/chat-pipeline.test.ts");
|
||||
}
|
||||
|
||||
// 7. Resolve src/app/api/providers/[id]/models/route.ts (combine imports)
|
||||
const modelsRoute = path.join(projectRoot, "src/app/api/providers/[id]/models/route.ts");
|
||||
if (fs.existsSync(modelsRoute)) {
|
||||
|
||||
@@ -30,10 +30,6 @@ const require = createRequire(import.meta.url);
|
||||
const OPTIONAL_OAUTH_SECRETS = [
|
||||
{ keys: ["ANTIGRAVITY_OAUTH_CLIENT_SECRET"], label: "Antigravity OAuth" },
|
||||
{ keys: ["QODER_OAUTH_CLIENT_SECRET"], label: "Qoder OAuth" },
|
||||
{
|
||||
keys: ["GEMINI_CLI_OAUTH_CLIENT_SECRET", "GEMINI_OAUTH_CLIENT_SECRET"],
|
||||
label: "Gemini OAuth",
|
||||
},
|
||||
];
|
||||
|
||||
// ── Resolve DATA_DIR (mirrors dataPaths.ts logic) ───────────────────────────
|
||||
|
||||
@@ -107,8 +107,6 @@ const ENV_VAR_ALLOWLIST = new Set([
|
||||
"NINEROUTER_API_KEY", // injected into the 9router subprocess at spawn (EMBEDDED-SERVICES.md)
|
||||
"CLAUDE_CODE_MAX_OUTPUT_TOKENS", // Claude Code CLI's own env var (CODEX-CLI-CONFIGURATION.md)
|
||||
"CODEX_HOME", // Codex CLI's own config-home env var (CODEX-CLI-CONFIGURATION.md)
|
||||
"GEMINI_API_KEY", // Gemini CLI's own API-key env var, set by `omniroute setup-gemini` (REMOTE-MODE.md)
|
||||
"GOOGLE_GEMINI_BASE_URL", // Gemini CLI's own base-URL env var, set by `omniroute setup-gemini` (REMOTE-MODE.md)
|
||||
"OPENAI_API_BASE", // legacy OpenAI base-URL env var some downstream tools (e.g. Aider) read (CLI-INTEGRATIONS.md)
|
||||
"PROMPTFOO_PROVIDER_KEY", // promptfoo's own provider-key env var, used by the red-team suite (GUARDRAILS.md)
|
||||
"REDIS_PORT", // docker-compose host-port override (DOCKER_GUIDE.md)
|
||||
|
||||
@@ -181,8 +181,6 @@ export const KNOWN_TRANSLATOR_PAIRS: readonly string[] = [
|
||||
"claude:gemini",
|
||||
"claude:openai",
|
||||
"cursor:openai",
|
||||
"gemini-cli:claude",
|
||||
"gemini-cli:openai",
|
||||
"gemini:claude",
|
||||
"gemini:openai",
|
||||
"kiro:openai",
|
||||
@@ -191,7 +189,6 @@ export const KNOWN_TRANSLATOR_PAIRS: readonly string[] = [
|
||||
"openai:claude",
|
||||
"openai:cursor",
|
||||
"openai:gemini",
|
||||
"openai:gemini-cli",
|
||||
"openai:kiro",
|
||||
"openai:openai-responses",
|
||||
];
|
||||
@@ -200,10 +197,7 @@ export const KNOWN_TRANSLATOR_PAIRS: readonly string[] = [
|
||||
* Pares frozen que sumiram do registry vivo (regressão). frozen = snapshot;
|
||||
* live = pares observados em runtime. Retorna os que estão no frozen mas não no live.
|
||||
*/
|
||||
export function findMissingTranslatorPairs(
|
||||
frozen: readonly string[],
|
||||
live: Set<string>
|
||||
): string[] {
|
||||
export function findMissingTranslatorPairs(frozen: readonly string[], live: Set<string>): string[] {
|
||||
return frozen.filter((pair) => !live.has(pair));
|
||||
}
|
||||
|
||||
@@ -375,10 +369,7 @@ export type A2ASkillDiff = {
|
||||
* - inHandlersNotCard: skill is routable but agents can't discover it
|
||||
* - inCardNotHandlers: skill is advertised but calling it fails silently
|
||||
*/
|
||||
export function diffA2ASkills(
|
||||
handlers: Set<string>,
|
||||
agentCard: Set<string>
|
||||
): A2ASkillDiff {
|
||||
export function diffA2ASkills(handlers: Set<string>, agentCard: Set<string>): A2ASkillDiff {
|
||||
const inHandlersNotCard = [...handlers].filter((s) => !agentCard.has(s)).sort();
|
||||
const inCardNotHandlers = [...agentCard].filter((s) => !handlers.has(s)).sort();
|
||||
return { inHandlersNotCard, inCardNotHandlers };
|
||||
@@ -456,13 +447,12 @@ async function main(): Promise<void> {
|
||||
const executorsMod = await import("@omniroute/open-sse/executors/index.ts");
|
||||
const getExecutor = executorsMod.getExecutor as (alias: string) => ExecutorLike;
|
||||
const BaseExecutor = executorsMod.BaseExecutor as new (...args: never[]) => unknown;
|
||||
const indexSource = readFileSync(
|
||||
resolvePath(REPO_ROOT, "open-sse/executors/index.ts"),
|
||||
"utf8"
|
||||
);
|
||||
const indexSource = readFileSync(resolvePath(REPO_ROOT, "open-sse/executors/index.ts"), "utf8");
|
||||
const aliases = extractExecutorAliases(indexSource);
|
||||
if (aliases.length === 0) {
|
||||
failures.push("[executor] parse do mapa `executors` não encontrou nenhum alias (regex quebrada?)");
|
||||
failures.push(
|
||||
"[executor] parse do mapa `executors` não encontrou nenhum alias (regex quebrada?)"
|
||||
);
|
||||
}
|
||||
const isExecutorInstance = (value: unknown) => value instanceof BaseExecutor;
|
||||
const badExecutors = findNonConformingExecutors(aliases, getExecutor, isExecutorInstance);
|
||||
@@ -493,7 +483,11 @@ async function main(): Promise<void> {
|
||||
// EMPTY implicit-defaults map). An entry whose key IS already in `handled` suppresses
|
||||
// nothing → it is stale and the gate must fail asking for its removal.
|
||||
const liveImplicitNeeded = diffComboStrategies(canonical, handled, {}).canonicalNotHandled;
|
||||
assertNoStale(Object.keys(IMPLICIT_DEFAULT_STRATEGIES), liveImplicitNeeded, "known-symbols:combo");
|
||||
assertNoStale(
|
||||
Object.keys(IMPLICIT_DEFAULT_STRATEGIES),
|
||||
liveImplicitNeeded,
|
||||
"known-symbols:combo"
|
||||
);
|
||||
|
||||
const { canonicalNotHandled, handledNotCanonical } = diffComboStrategies(
|
||||
canonical,
|
||||
@@ -554,9 +548,8 @@ async function main(): Promise<void> {
|
||||
const { MCP_TOOLS } = await import("@omniroute/open-sse/mcp-server/schemas/tools.ts");
|
||||
const { memoryTools } = await import("@omniroute/open-sse/mcp-server/tools/memoryTools.ts");
|
||||
const { skillTools } = await import("@omniroute/open-sse/mcp-server/tools/skillTools.ts");
|
||||
const { gamificationTools } = await import(
|
||||
"@omniroute/open-sse/mcp-server/tools/gamificationTools.ts"
|
||||
);
|
||||
const { gamificationTools } =
|
||||
await import("@omniroute/open-sse/mcp-server/tools/gamificationTools.ts");
|
||||
const { pluginTools } = await import("@omniroute/open-sse/mcp-server/tools/pluginTools.ts");
|
||||
const { notionTools } = await import("@omniroute/open-sse/mcp-server/tools/notionTools.ts");
|
||||
const { obsidianTools } = await import("@omniroute/open-sse/mcp-server/tools/obsidianTools.ts");
|
||||
@@ -669,7 +662,9 @@ async function main(): Promise<void> {
|
||||
|
||||
// ── Resultado ─────────────────────────────────────────────────────────────
|
||||
if (failures.length) {
|
||||
console.error(`[known-symbols] ${failures.length} sub-checagem(ns) falharam:\n\n${failures.join("\n\n")}`);
|
||||
console.error(
|
||||
`[known-symbols] ${failures.length} sub-checagem(ns) falharam:\n\n${failures.join("\n\n")}`
|
||||
);
|
||||
process.exit(1);
|
||||
}
|
||||
// assertNoStale (combo) seta process.exitCode=1 sem lançar — não imprima o OK
|
||||
@@ -695,7 +690,9 @@ async function main(): Promise<void> {
|
||||
|
||||
if (import.meta.url === pathToFileURL(process.argv[1] || "").href) {
|
||||
main().catch((err) => {
|
||||
console.error(`[known-symbols] erro fatal: ${err instanceof Error ? err.message : String(err)}`);
|
||||
console.error(
|
||||
`[known-symbols] erro fatal: ${err instanceof Error ? err.message : String(err)}`
|
||||
);
|
||||
process.exit(1);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -90,7 +90,6 @@ lines.push(section("Agent CLI Tools"));
|
||||
|
||||
const cliTools = [
|
||||
{ name: "qoder-cli", cmd: "qoder", args: "--version" },
|
||||
{ name: "gemini-cli", cmd: "gemini", args: "--version" },
|
||||
{ name: "claude-code", cmd: "claude", args: "--version" },
|
||||
{ name: "openai-codex", cmd: "codex", args: "--version" },
|
||||
{ name: "antigravity", cmd: "antigravity", args: "--version" },
|
||||
|
||||
@@ -134,7 +134,7 @@ def main():
|
||||
parser = argparse.ArgumentParser(description="OmniRoute Auto-Translator for i18n Markdown")
|
||||
parser.add_argument("--api-url", default="http://localhost:20128/v1", help="Base URL of OmniRoute or target provider")
|
||||
parser.add_argument("--api-key", default="sk-test", help="API Key for the provider")
|
||||
parser.add_argument("--model", default="gc/gemini-3-flash", help="Model name to use")
|
||||
parser.add_argument("--model", default="gemini/gemini-3-flash", help="Model name to use")
|
||||
parser.add_argument("--lang", default=None, help="Process only a specific language code (e.g. pt-BR)")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
Reference in New Issue
Block a user