mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-24 08:02:14 +03:00
⭐5 — Fecha #10265: chat do command-code migra do endpoint CLI-only /alpha/generate (version-gated + proxy-blocked para callers externos) para o documentado /provider/v1/chat/completions (OpenAI format). Removido o envelope CLI reverse-engineered (config/memory/taste/skills + headers CLI-impersonation), substituído por passthrough OpenAI plano com normalização de model id vendor-prefixed (#10809), clamp de max_tokens (#5166), sanitização de reasoning_effort. commandCode.ts 1037→171 linhas. Validado no worktree board sobre tip: typecheck:core limpo; 175/175 testes focados (command-code executor/vision/usage/maxtokens/user-array/validation-specialty/responses-handler/provider-models-scoping); changelog-integrity/file-size/complexity/cognitive todos OK. TDD RED→GREEN documentado.
This commit is contained in:
committed by
GitHub
parent
e06f8b7ec0
commit
b6412c6fed
@@ -1,7 +1,6 @@
|
||||
// OpenAI/Gemini-format + Bedrock provider key validators (bedrock, openai-like, command-code, gemini-like, openai-compatible).
|
||||
// Extracted from validation.ts (god-file decomposition) — top-level functions; behavior is
|
||||
// byte-identical to the original inline defs.
|
||||
import { randomUUID } from "node:crypto";
|
||||
import { getRegistryEntry } from "@omniroute/open-sse/config/providerRegistry.ts";
|
||||
import {
|
||||
discoverBedrockNativeModels,
|
||||
@@ -196,13 +195,12 @@ export async function validateOpenAILikeProvider({
|
||||
export async function validateCommandCodeProvider({ apiKey, providerSpecificData = {} }: any) {
|
||||
const entry = getRegistryEntry("command-code");
|
||||
const baseUrl = normalizeBaseUrl(entry?.baseUrl || "https://api.commandcode.ai");
|
||||
const chatPath = entry?.chatPath || "/alpha/generate";
|
||||
const chatPath = entry?.chatPath || "/provider/v1/chat/completions";
|
||||
const url = `${baseUrl}${chatPath.startsWith("/") ? chatPath : `/${chatPath}`}`;
|
||||
const validationModelId =
|
||||
providerSpecificData?.validationModelId ||
|
||||
entry?.models?.find((model) => model.id === "deepseek/deepseek-v4-flash")?.id ||
|
||||
"deepseek/deepseek-v4-flash";
|
||||
const { COMMAND_CODE_VERSION } = await import("@omniroute/open-sse/executors/commandCode.ts");
|
||||
|
||||
return validateDirectChatProvider({
|
||||
url,
|
||||
@@ -210,37 +208,13 @@ export async function validateCommandCodeProvider({ apiKey, providerSpecificData
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
Authorization: `Bearer ${apiKey}`,
|
||||
"x-command-code-version": COMMAND_CODE_VERSION,
|
||||
"x-cli-environment": "external",
|
||||
"x-project-slug": "pi-cc",
|
||||
"x-taste-learning": "false",
|
||||
"x-co-flag": "false",
|
||||
"x-session-id": randomUUID(),
|
||||
Accept: "text/event-stream",
|
||||
},
|
||||
body: {
|
||||
config: {
|
||||
workingDir: "/workspace",
|
||||
date: new Date().toISOString().slice(0, 10),
|
||||
environment: "external",
|
||||
structure: [],
|
||||
isGitRepo: false,
|
||||
currentBranch: "",
|
||||
mainBranch: "",
|
||||
gitStatus: "",
|
||||
recentCommits: [],
|
||||
},
|
||||
memory: "",
|
||||
taste: "",
|
||||
skills: "",
|
||||
permissionMode: "standard",
|
||||
params: {
|
||||
model: validationModelId,
|
||||
messages: [{ role: "user", content: "test" }],
|
||||
tools: [],
|
||||
system: "",
|
||||
max_tokens: 1,
|
||||
stream: true,
|
||||
},
|
||||
model: validationModelId,
|
||||
messages: [{ role: "user", content: "test" }],
|
||||
stream: true,
|
||||
max_tokens: 1,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ export const APIKEY_PROVIDERS_GATEWAYS = {
|
||||
textIcon: "CC",
|
||||
website: "https://commandcode.ai/",
|
||||
authHint:
|
||||
"Use a Command Code API key. Requests are sent to Command Code's /alpha/generate endpoint.",
|
||||
"Use a Command Code API key. Requests are sent to Command Code's /provider/v1/chat/completions endpoint.",
|
||||
apiHint: "Create or copy an API key from Command Code, then paste it here as a Bearer token.",
|
||||
},
|
||||
openrouter: {
|
||||
|
||||
Reference in New Issue
Block a user