@gguf/claw
Version:
Multi-channel AI gateway with extensible messaging integrations
112 lines (109 loc) • 3.23 kB
JavaScript
import { Ot as upsertAuthProfileWithLock } from "./model-selection-CqaTAlhy.js";
//#region src/commands/openai-codex-model-default.ts
const OPENAI_CODEX_DEFAULT_MODEL = "openai-codex/gpt-5.3-codex";
function shouldSetOpenAICodexModel(model) {
const trimmed = model?.trim();
if (!trimmed) return true;
const normalized = trimmed.toLowerCase();
if (normalized.startsWith("openai-codex/")) return false;
if (normalized.startsWith("openai/")) return true;
return normalized === "gpt" || normalized === "gpt-mini";
}
function resolvePrimaryModel(model) {
if (typeof model === "string") return model;
if (model && typeof model === "object" && typeof model.primary === "string") return model.primary;
}
function applyOpenAICodexModelDefault(cfg) {
if (!shouldSetOpenAICodexModel(resolvePrimaryModel(cfg.agents?.defaults?.model))) return {
next: cfg,
changed: false
};
return {
next: {
...cfg,
agents: {
...cfg.agents,
defaults: {
...cfg.agents?.defaults,
model: cfg.agents?.defaults?.model && typeof cfg.agents.defaults.model === "object" ? {
...cfg.agents.defaults.model,
primary: OPENAI_CODEX_DEFAULT_MODEL
} : { primary: OPENAI_CODEX_DEFAULT_MODEL }
}
}
},
changed: true
};
}
//#endregion
//#region src/commands/vllm-setup.ts
const VLLM_DEFAULT_BASE_URL = "http://127.0.0.1:8000/v1";
const VLLM_DEFAULT_CONTEXT_WINDOW = 128e3;
const VLLM_DEFAULT_MAX_TOKENS = 8192;
const VLLM_DEFAULT_COST = {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0
};
async function promptAndConfigureVllm(params) {
const baseUrlRaw = await params.prompter.text({
message: "vLLM base URL",
initialValue: VLLM_DEFAULT_BASE_URL,
placeholder: VLLM_DEFAULT_BASE_URL,
validate: (value) => value?.trim() ? void 0 : "Required"
});
const apiKeyRaw = await params.prompter.text({
message: "vLLM API key",
placeholder: "sk-... (or any non-empty string)",
validate: (value) => value?.trim() ? void 0 : "Required"
});
const modelIdRaw = await params.prompter.text({
message: "vLLM model",
placeholder: "meta-llama/Meta-Llama-3-8B-Instruct",
validate: (value) => value?.trim() ? void 0 : "Required"
});
const baseUrl = String(baseUrlRaw ?? "").trim().replace(/\/+$/, "");
const apiKey = String(apiKeyRaw ?? "").trim();
const modelId = String(modelIdRaw ?? "").trim();
const modelRef = `vllm/${modelId}`;
await upsertAuthProfileWithLock({
profileId: "vllm:default",
credential: {
type: "api_key",
provider: "vllm",
key: apiKey
},
agentDir: params.agentDir
});
return {
config: {
...params.cfg,
models: {
...params.cfg.models,
mode: params.cfg.models?.mode ?? "merge",
providers: {
...params.cfg.models?.providers,
vllm: {
baseUrl,
api: "openai-completions",
apiKey: "VLLM_API_KEY",
models: [{
id: modelId,
name: modelId,
reasoning: false,
input: ["text"],
cost: VLLM_DEFAULT_COST,
contextWindow: VLLM_DEFAULT_CONTEXT_WINDOW,
maxTokens: VLLM_DEFAULT_MAX_TOKENS
}]
}
}
}
},
modelId,
modelRef
};
}
//#endregion
export { OPENAI_CODEX_DEFAULT_MODEL as n, applyOpenAICodexModelDefault as r, promptAndConfigureVllm as t };