feat: add model role badges and reorder presets to prioritize Opus

- Add Primary/Fallback badge to each model card in OpenClaw form
- Update modelsHint to explain model ordering semantics
- Reorder 11 aggregator/third-party presets to put Opus first
This commit is contained in:
Jason
2026-03-03 22:34:22 +08:00
parent b3dda16b3a
commit 7d4ffa9872
2 changed files with 118 additions and 100 deletions
+99 -99
View File
@@ -557,18 +557,18 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
apiKey: "",
api: "anthropic-messages",
models: [
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
contextWindow: 200000,
cost: { input: 3, output: 15 },
},
{
id: "claude-opus-4-6",
name: "Claude Opus 4.6",
contextWindow: 200000,
cost: { input: 5, output: 25 },
},
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
contextWindow: 200000,
cost: { input: 3, output: 15 },
},
],
},
category: "aggregator",
@@ -583,12 +583,12 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
},
suggestedDefaults: {
model: {
primary: "aihubmix/claude-sonnet-4-6",
fallbacks: ["aihubmix/claude-opus-4-6"],
primary: "aihubmix/claude-opus-4-6",
fallbacks: ["aihubmix/claude-sonnet-4-6"],
},
modelCatalog: {
"aihubmix/claude-sonnet-4-6": { alias: "Sonnet" },
"aihubmix/claude-opus-4-6": { alias: "Opus" },
"aihubmix/claude-sonnet-4-6": { alias: "Sonnet" },
},
},
},
@@ -601,18 +601,18 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
apiKey: "",
api: "anthropic-messages",
models: [
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
contextWindow: 200000,
cost: { input: 3, output: 15 },
},
{
id: "claude-opus-4-6",
name: "Claude Opus 4.6",
contextWindow: 200000,
cost: { input: 5, output: 25 },
},
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
contextWindow: 200000,
cost: { input: 3, output: 15 },
},
],
},
category: "aggregator",
@@ -627,12 +627,12 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
},
suggestedDefaults: {
model: {
primary: "dmxapi/claude-sonnet-4-6",
fallbacks: ["dmxapi/claude-opus-4-6"],
primary: "dmxapi/claude-opus-4-6",
fallbacks: ["dmxapi/claude-sonnet-4-6"],
},
modelCatalog: {
"dmxapi/claude-sonnet-4-6": { alias: "Sonnet" },
"dmxapi/claude-opus-4-6": { alias: "Opus" },
"dmxapi/claude-sonnet-4-6": { alias: "Sonnet" },
},
},
},
@@ -645,18 +645,18 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
apiKey: "",
api: "openai-completions",
models: [
{
id: "anthropic/claude-sonnet-4.6",
name: "Claude Sonnet 4.6",
contextWindow: 200000,
cost: { input: 3, output: 15 },
},
{
id: "anthropic/claude-opus-4.6",
name: "Claude Opus 4.6",
contextWindow: 200000,
cost: { input: 5, output: 25 },
},
{
id: "anthropic/claude-sonnet-4.6",
name: "Claude Sonnet 4.6",
contextWindow: 200000,
cost: { input: 3, output: 15 },
},
],
},
category: "aggregator",
@@ -671,12 +671,12 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
},
suggestedDefaults: {
model: {
primary: "openrouter/anthropic/claude-sonnet-4.6",
fallbacks: ["openrouter/anthropic/claude-opus-4.6"],
primary: "openrouter/anthropic/claude-opus-4.6",
fallbacks: ["openrouter/anthropic/claude-sonnet-4.6"],
},
modelCatalog: {
"openrouter/anthropic/claude-sonnet-4.6": { alias: "Sonnet" },
"openrouter/anthropic/claude-opus-4.6": { alias: "Opus" },
"openrouter/anthropic/claude-sonnet-4.6": { alias: "Sonnet" },
},
},
},
@@ -863,18 +863,18 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
apiKey: "",
api: "anthropic-messages",
models: [
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
contextWindow: 200000,
cost: { input: 3, output: 15 },
},
{
id: "claude-opus-4-6",
name: "Claude Opus 4.6",
contextWindow: 200000,
cost: { input: 5, output: 25 },
},
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
contextWindow: 200000,
cost: { input: 3, output: 15 },
},
],
},
category: "third_party",
@@ -890,12 +890,12 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
},
suggestedDefaults: {
model: {
primary: "packycode/claude-sonnet-4-6",
fallbacks: ["packycode/claude-opus-4-6"],
primary: "packycode/claude-opus-4-6",
fallbacks: ["packycode/claude-sonnet-4-6"],
},
modelCatalog: {
"packycode/claude-sonnet-4-6": { alias: "Sonnet" },
"packycode/claude-opus-4-6": { alias: "Opus" },
"packycode/claude-sonnet-4-6": { alias: "Sonnet" },
},
},
},
@@ -908,18 +908,18 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
apiKey: "",
api: "anthropic-messages",
models: [
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
contextWindow: 200000,
cost: { input: 3, output: 15 },
},
{
id: "claude-opus-4-6",
name: "Claude Opus 4.6",
contextWindow: 200000,
cost: { input: 5, output: 25 },
},
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
contextWindow: 200000,
cost: { input: 3, output: 15 },
},
],
},
category: "third_party",
@@ -936,12 +936,12 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
},
suggestedDefaults: {
model: {
primary: "cubence/claude-sonnet-4-6",
fallbacks: ["cubence/claude-opus-4-6"],
primary: "cubence/claude-opus-4-6",
fallbacks: ["cubence/claude-sonnet-4-6"],
},
modelCatalog: {
"cubence/claude-sonnet-4-6": { alias: "Sonnet" },
"cubence/claude-opus-4-6": { alias: "Opus" },
"cubence/claude-sonnet-4-6": { alias: "Sonnet" },
},
},
},
@@ -954,18 +954,18 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
apiKey: "",
api: "anthropic-messages",
models: [
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
contextWindow: 200000,
cost: { input: 3, output: 15 },
},
{
id: "claude-opus-4-6",
name: "Claude Opus 4.6",
contextWindow: 200000,
cost: { input: 5, output: 25 },
},
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
contextWindow: 200000,
cost: { input: 3, output: 15 },
},
],
},
category: "third_party",
@@ -982,12 +982,12 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
},
suggestedDefaults: {
model: {
primary: "aigocode/claude-sonnet-4-6",
fallbacks: ["aigocode/claude-opus-4-6"],
primary: "aigocode/claude-opus-4-6",
fallbacks: ["aigocode/claude-sonnet-4-6"],
},
modelCatalog: {
"aigocode/claude-sonnet-4-6": { alias: "Sonnet" },
"aigocode/claude-opus-4-6": { alias: "Opus" },
"aigocode/claude-sonnet-4-6": { alias: "Sonnet" },
},
},
},
@@ -1000,18 +1000,18 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
apiKey: "",
api: "anthropic-messages",
models: [
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
contextWindow: 200000,
cost: { input: 3, output: 15 },
},
{
id: "claude-opus-4-6",
name: "Claude Opus 4.6",
contextWindow: 200000,
cost: { input: 5, output: 25 },
},
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
contextWindow: 200000,
cost: { input: 3, output: 15 },
},
],
},
category: "third_party",
@@ -1028,12 +1028,12 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
},
suggestedDefaults: {
model: {
primary: "rightcode/claude-sonnet-4-6",
fallbacks: ["rightcode/claude-opus-4-6"],
primary: "rightcode/claude-opus-4-6",
fallbacks: ["rightcode/claude-sonnet-4-6"],
},
modelCatalog: {
"rightcode/claude-sonnet-4-6": { alias: "Sonnet" },
"rightcode/claude-opus-4-6": { alias: "Opus" },
"rightcode/claude-sonnet-4-6": { alias: "Sonnet" },
},
},
},
@@ -1046,18 +1046,18 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
apiKey: "",
api: "anthropic-messages",
models: [
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
contextWindow: 200000,
cost: { input: 3, output: 15 },
},
{
id: "claude-opus-4-6",
name: "Claude Opus 4.6",
contextWindow: 200000,
cost: { input: 5, output: 25 },
},
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
contextWindow: 200000,
cost: { input: 3, output: 15 },
},
],
},
category: "third_party",
@@ -1074,12 +1074,12 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
},
suggestedDefaults: {
model: {
primary: "aicodemirror/claude-sonnet-4-6",
fallbacks: ["aicodemirror/claude-opus-4-6"],
primary: "aicodemirror/claude-opus-4-6",
fallbacks: ["aicodemirror/claude-sonnet-4-6"],
},
modelCatalog: {
"aicodemirror/claude-sonnet-4-6": { alias: "Sonnet" },
"aicodemirror/claude-opus-4-6": { alias: "Opus" },
"aicodemirror/claude-sonnet-4-6": { alias: "Sonnet" },
},
},
},
@@ -1092,18 +1092,18 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
apiKey: "",
api: "anthropic-messages",
models: [
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
contextWindow: 200000,
cost: { input: 3, output: 15 },
},
{
id: "claude-opus-4-6",
name: "Claude Opus 4.6",
contextWindow: 200000,
cost: { input: 5, output: 25 },
},
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
contextWindow: 200000,
cost: { input: 3, output: 15 },
},
],
},
category: "third_party",
@@ -1120,12 +1120,12 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
},
suggestedDefaults: {
model: {
primary: "aicoding/claude-sonnet-4-6",
fallbacks: ["aicoding/claude-opus-4-6"],
primary: "aicoding/claude-opus-4-6",
fallbacks: ["aicoding/claude-sonnet-4-6"],
},
modelCatalog: {
"aicoding/claude-sonnet-4-6": { alias: "Sonnet" },
"aicoding/claude-opus-4-6": { alias: "Opus" },
"aicoding/claude-sonnet-4-6": { alias: "Sonnet" },
},
},
},
@@ -1138,18 +1138,18 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
apiKey: "",
api: "anthropic-messages",
models: [
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
contextWindow: 200000,
cost: { input: 3, output: 15 },
},
{
id: "claude-opus-4-6",
name: "Claude Opus 4.6",
contextWindow: 200000,
cost: { input: 5, output: 25 },
},
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
contextWindow: 200000,
cost: { input: 3, output: 15 },
},
],
},
category: "third_party",
@@ -1166,12 +1166,12 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
},
suggestedDefaults: {
model: {
primary: "crazyrouter/claude-sonnet-4-6",
fallbacks: ["crazyrouter/claude-opus-4-6"],
primary: "crazyrouter/claude-opus-4-6",
fallbacks: ["crazyrouter/claude-sonnet-4-6"],
},
modelCatalog: {
"crazyrouter/claude-sonnet-4-6": { alias: "Sonnet" },
"crazyrouter/claude-opus-4-6": { alias: "Opus" },
"crazyrouter/claude-sonnet-4-6": { alias: "Sonnet" },
},
},
},
@@ -1184,18 +1184,18 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
apiKey: "",
api: "anthropic-messages",
models: [
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
contextWindow: 200000,
cost: { input: 3, output: 15 },
},
{
id: "claude-opus-4-6",
name: "Claude Opus 4.6",
contextWindow: 200000,
cost: { input: 5, output: 25 },
},
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
contextWindow: 200000,
cost: { input: 3, output: 15 },
},
],
},
category: "third_party",
@@ -1212,12 +1212,12 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
},
suggestedDefaults: {
model: {
primary: "sssaicode/claude-sonnet-4-6",
fallbacks: ["sssaicode/claude-opus-4-6"],
primary: "sssaicode/claude-opus-4-6",
fallbacks: ["sssaicode/claude-sonnet-4-6"],
},
modelCatalog: {
"sssaicode/claude-sonnet-4-6": { alias: "Sonnet" },
"sssaicode/claude-opus-4-6": { alias: "Opus" },
"sssaicode/claude-sonnet-4-6": { alias: "Sonnet" },
},
},
},