fix: update MiniMax API URL from .io to .com domain

- Changed API endpoint from api.minimax.io to api.minimaxi.com
- Updated all test files, docs, and configuration examples
- Aligns with official MiniMax documentation
This commit is contained in:
leolele 2026-01-29 09:37:27 +08:00
parent fdcac0ccf4
commit 8beea7cd6e
15 changed files with 22 additions and 22 deletions

View File

@ -493,7 +493,7 @@ Save to `~/.clawdbot/moltbot.json` and you can DM the bot from that number.
models: { models: {
providers: { providers: {
minimax: { minimax: {
baseUrl: "https://api.minimax.io/anthropic", baseUrl: "https://api.minimaxi.com/anthropic",
api: "anthropic-messages", api: "anthropic-messages",
apiKey: "${MINIMAX_API_KEY}" apiKey: "${MINIMAX_API_KEY}"
} }

View File

@ -2535,7 +2535,7 @@ Use MiniMax M2.1 directly without LM Studio:
mode: "merge", mode: "merge",
providers: { providers: {
minimax: { minimax: {
baseUrl: "https://api.minimax.io/anthropic", baseUrl: "https://api.minimaxi.com/anthropic",
apiKey: "${MINIMAX_API_KEY}", apiKey: "${MINIMAX_API_KEY}",
api: "anthropic-messages", api: "anthropic-messages",
models: [ models: [

View File

@ -52,7 +52,7 @@ Configure via CLI:
mode: "merge", mode: "merge",
providers: { providers: {
minimax: { minimax: {
baseUrl: "https://api.minimax.io/anthropic", baseUrl: "https://api.minimaxi.com/anthropic",
apiKey: "${MINIMAX_API_KEY}", apiKey: "${MINIMAX_API_KEY}",
api: "anthropic-messages", api: "anthropic-messages",
models: [ models: [
@ -145,7 +145,7 @@ Use the interactive config wizard to set MiniMax without editing JSON:
## Configuration options ## Configuration options
- `models.providers.minimax.baseUrl`: prefer `https://api.minimax.io/anthropic` (Anthropic-compatible); `https://api.minimax.io/v1` is optional for OpenAI-compatible payloads. - `models.providers.minimax.baseUrl`: prefer `https://api.minimaxi.com/anthropic` (Anthropic-compatible); `https://api.minimaxi.com/v1` is optional for OpenAI-compatible payloads.
- `models.providers.minimax.api`: prefer `anthropic-messages`; `openai-completions` is optional for OpenAI-compatible payloads. - `models.providers.minimax.api`: prefer `anthropic-messages`; `openai-completions` is optional for OpenAI-compatible payloads.
- `models.providers.minimax.apiKey`: MiniMax API key (`MINIMAX_API_KEY`). - `models.providers.minimax.apiKey`: MiniMax API key (`MINIMAX_API_KEY`).
- `models.providers.minimax.models`: define `id`, `name`, `reasoning`, `contextWindow`, `maxTokens`, `cost`. - `models.providers.minimax.models`: define `id`, `name`, `reasoning`, `contextWindow`, `maxTokens`, `cost`.

View File

@ -86,7 +86,7 @@ async function main(): Promise<void> {
} }
const minimaxBaseUrl = const minimaxBaseUrl =
process.env.MINIMAX_BASE_URL?.trim() || "https://api.minimax.io/v1"; process.env.MINIMAX_BASE_URL?.trim() || "https://api.minimaxi.com/v1";
const minimaxModelId = const minimaxModelId =
process.env.MINIMAX_MODEL?.trim() || "MiniMax-M2.1"; process.env.MINIMAX_MODEL?.trim() || "MiniMax-M2.1";

View File

@ -13,7 +13,7 @@ function coerceApiHost(params: {
params.apiHost?.trim() || params.apiHost?.trim() ||
env.MINIMAX_API_HOST?.trim() || env.MINIMAX_API_HOST?.trim() ||
params.modelBaseUrl?.trim() || params.modelBaseUrl?.trim() ||
"https://api.minimax.io"; "https://api.minimaxi.com";
try { try {
const url = new URL(raw); const url = new URL(raw);
@ -24,7 +24,7 @@ function coerceApiHost(params: {
const url = new URL(`https://${raw}`); const url = new URL(`https://${raw}`);
return url.origin; return url.origin;
} catch { } catch {
return "https://api.minimax.io"; return "https://api.minimaxi.com";
} }
} }

View File

@ -3,7 +3,7 @@ import { describe, expect, it } from "vitest";
import { isTruthyEnvValue } from "../infra/env.js"; import { isTruthyEnvValue } from "../infra/env.js";
const MINIMAX_KEY = process.env.MINIMAX_API_KEY ?? ""; const MINIMAX_KEY = process.env.MINIMAX_API_KEY ?? "";
const MINIMAX_BASE_URL = process.env.MINIMAX_BASE_URL?.trim() || "https://api.minimax.io/anthropic"; const MINIMAX_BASE_URL = process.env.MINIMAX_BASE_URL?.trim() || "https://api.minimaxi.com/anthropic";
const MINIMAX_MODEL = process.env.MINIMAX_MODEL?.trim() || "MiniMax-M2.1"; const MINIMAX_MODEL = process.env.MINIMAX_MODEL?.trim() || "MiniMax-M2.1";
const LIVE = isTruthyEnvValue(process.env.MINIMAX_LIVE_TEST) || isTruthyEnvValue(process.env.LIVE); const LIVE = isTruthyEnvValue(process.env.MINIMAX_LIVE_TEST) || isTruthyEnvValue(process.env.LIVE);

View File

@ -56,7 +56,7 @@ describe("models-config", () => {
models: { models: {
providers: { providers: {
minimax: { minimax: {
baseUrl: "https://api.minimax.io/anthropic", baseUrl: "https://api.minimaxi.com/anthropic",
api: "anthropic-messages", api: "anthropic-messages",
models: [ models: [
{ {

View File

@ -174,7 +174,7 @@ describe("runEmbeddedPiAgent", () => {
models: { models: {
providers: { providers: {
minimax: { minimax: {
baseUrl: "https://api.minimax.io/anthropic", baseUrl: "https://api.minimaxi.com/anthropic",
api: "anthropic-messages", api: "anthropic-messages",
apiKey: "sk-minimax-test", apiKey: "sk-minimax-test",
models: [ models: [

View File

@ -195,7 +195,7 @@ describe("directive behavior", () => {
mode: "merge", mode: "merge",
providers: { providers: {
minimax: { minimax: {
baseUrl: "https://api.minimax.io/anthropic", baseUrl: "https://api.minimaxi.com/anthropic",
api: "anthropic-messages", api: "anthropic-messages",
models: [{ id: "MiniMax-M2.1", name: "MiniMax M2.1" }], models: [{ id: "MiniMax-M2.1", name: "MiniMax M2.1" }],
}, },

View File

@ -218,7 +218,7 @@ describe("directive behavior", () => {
mode: "merge", mode: "merge",
providers: { providers: {
minimax: { minimax: {
baseUrl: "https://api.minimax.io/anthropic", baseUrl: "https://api.minimaxi.com/anthropic",
apiKey: "sk-test", apiKey: "sk-test",
api: "anthropic-messages", api: "anthropic-messages",
models: [{ id: "MiniMax-M2.1", name: "MiniMax M2.1" }], models: [{ id: "MiniMax-M2.1", name: "MiniMax M2.1" }],
@ -262,7 +262,7 @@ describe("directive behavior", () => {
mode: "merge", mode: "merge",
providers: { providers: {
minimax: { minimax: {
baseUrl: "https://api.minimax.io/anthropic", baseUrl: "https://api.minimaxi.com/anthropic",
apiKey: "sk-test", apiKey: "sk-test",
api: "anthropic-messages", api: "anthropic-messages",
models: [ models: [

View File

@ -123,7 +123,7 @@ describe("trigger handling", () => {
models: { models: {
providers: { providers: {
minimax: { minimax: {
baseUrl: "https://api.minimax.io/anthropic", baseUrl: "https://api.minimaxi.com/anthropic",
api: "anthropic-messages", api: "anthropic-messages",
}, },
}, },
@ -147,7 +147,7 @@ describe("trigger handling", () => {
const text = Array.isArray(res) ? res[0]?.text : res?.text; const text = Array.isArray(res) ? res[0]?.text : res?.text;
const normalized = normalizeTestText(text ?? ""); const normalized = normalizeTestText(text ?? "");
expect(normalized).toContain( expect(normalized).toContain(
"[minimax] endpoint: https://api.minimax.io/anthropic api: anthropic-messages auth:", "[minimax] endpoint: https://api.minimaxi.com/anthropic api: anthropic-messages auth:",
); );
}); });
}); });

View File

@ -1,7 +1,7 @@
import type { ModelDefinitionConfig } from "../config/types.js"; import type { ModelDefinitionConfig } from "../config/types.js";
export const DEFAULT_MINIMAX_BASE_URL = "https://api.minimax.io/v1"; export const DEFAULT_MINIMAX_BASE_URL = "https://api.minimaxi.com/v1";
export const MINIMAX_API_BASE_URL = "https://api.minimax.io/anthropic"; export const MINIMAX_API_BASE_URL = "https://api.minimaxi.com/anthropic";
export const MINIMAX_HOSTED_MODEL_ID = "MiniMax-M2.1"; export const MINIMAX_HOSTED_MODEL_ID = "MiniMax-M2.1";
export const MINIMAX_HOSTED_MODEL_REF = `minimax/${MINIMAX_HOSTED_MODEL_ID}`; export const MINIMAX_HOSTED_MODEL_REF = `minimax/${MINIMAX_HOSTED_MODEL_ID}`;
export const DEFAULT_MINIMAX_CONTEXT_WINDOW = 200000; export const DEFAULT_MINIMAX_CONTEXT_WINDOW = 200000;

View File

@ -168,7 +168,7 @@ describe("applyMinimaxApiConfig", () => {
it("adds minimax provider with correct settings", () => { it("adds minimax provider with correct settings", () => {
const cfg = applyMinimaxApiConfig({}); const cfg = applyMinimaxApiConfig({});
expect(cfg.models?.providers?.minimax).toMatchObject({ expect(cfg.models?.providers?.minimax).toMatchObject({
baseUrl: "https://api.minimax.io/anthropic", baseUrl: "https://api.minimaxi.com/anthropic",
api: "anthropic-messages", api: "anthropic-messages",
}); });
}); });
@ -244,7 +244,7 @@ describe("applyMinimaxApiConfig", () => {
}, },
}, },
}); });
expect(cfg.models?.providers?.minimax?.baseUrl).toBe("https://api.minimax.io/anthropic"); expect(cfg.models?.providers?.minimax?.baseUrl).toBe("https://api.minimaxi.com/anthropic");
expect(cfg.models?.providers?.minimax?.api).toBe("anthropic-messages"); expect(cfg.models?.providers?.minimax?.api).toBe("anthropic-messages");
expect(cfg.models?.providers?.minimax?.apiKey).toBe("old-key"); expect(cfg.models?.providers?.minimax?.apiKey).toBe("old-key");
expect(cfg.models?.providers?.minimax?.models.map((m) => m.id)).toEqual([ expect(cfg.models?.providers?.minimax?.models.map((m) => m.id)).toEqual([

View File

@ -212,7 +212,7 @@ describe("config identity defaults", () => {
mode: "merge", mode: "merge",
providers: { providers: {
minimax: { minimax: {
baseUrl: "https://api.minimax.io/anthropic", baseUrl: "https://api.minimaxi.com/anthropic",
apiKey: "", apiKey: "",
api: "anthropic-messages", api: "anthropic-messages",
models: [ models: [
@ -245,7 +245,7 @@ describe("config identity defaults", () => {
const { loadConfig } = await import("./config.js"); const { loadConfig } = await import("./config.js");
const cfg = loadConfig(); const cfg = loadConfig();
expect(cfg.models?.providers?.minimax?.baseUrl).toBe("https://api.minimax.io/anthropic"); expect(cfg.models?.providers?.minimax?.baseUrl).toBe("https://api.minimaxi.com/anthropic");
}); });
}); });

View File

@ -1022,7 +1022,7 @@ describeLive("gateway live (dev agent, profile keys)", () => {
const minimaxAnthropic = buildMinimaxProviderOverride({ const minimaxAnthropic = buildMinimaxProviderOverride({
cfg, cfg,
api: "anthropic-messages", api: "anthropic-messages",
baseUrl: "https://api.minimax.io/anthropic", baseUrl: "https://api.minimaxi.com/anthropic",
}); });
if (minimaxAnthropic) { if (minimaxAnthropic) {
await runGatewayModelSuite({ await runGatewayModelSuite({