Skip to content

Commit fd36444

Browse files
committed
feat(models): adopt GPT-5.6 in osovv presets
Replace StepFun after throughput fell from 150+ TPS to about 25 TPS. That performance is unacceptable for the explore subagent. Add fixed Luna Low, Terra High, and Sol XHigh aliases and update smart roles.
1 parent b19260a commit fd36444

4 files changed

Lines changed: 147 additions & 9 deletions

File tree

src/commands/patch-provider.test.ts

Lines changed: 72 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
// END_MODULE_MAP
1515
//
1616
// START_CHANGE_SUMMARY
17+
// LAST_CHANGE: [v0.6.0 - Added full-object assertions for vv-gpt-5.6-luna-low, vv-gpt-5.6-terra-high, vv-gpt-5.6-sol-xhigh in first-apply and reapply tests.]
1718
// LAST_CHANGE: [v0.5.0 - Added project-scope OpenCode patch isolation coverage.]
1819
// LAST_CHANGE: [v0.4.3 - Added reasoning:true expectation in openai patch test.]
1920
// END_CHANGE_SUMMARY
@@ -51,7 +52,7 @@ describe("resolvePatchProviderPreset", () => {
5152
expect(resolvePatchProviderPreset("openai")).toMatchObject({
5253
kind: "provider-object",
5354
providerID: "openai",
54-
summary: "provider.openai.models.vv-gpt-5.5-xhigh patched",
55+
summary: "provider.openai.models vv-gpt-5.4/5.5/5.6 aliases patched",
5556
});
5657
});
5758

@@ -173,6 +174,66 @@ describe("applyPatchProviderPreset", () => {
173174
include: ["reasoning.encrypted_content"],
174175
},
175176
});
177+
expect(parsed.provider?.openai?.models?.["vv-gpt-5.5-xhigh"]).toEqual({
178+
name: "VV GPT-5.5-XHigh",
179+
id: "gpt-5.5",
180+
variants: {},
181+
limit: {
182+
context: 400000,
183+
output: 128000,
184+
},
185+
reasoning: true,
186+
options: {
187+
reasoningEffort: "xhigh",
188+
reasoningSummary: "auto",
189+
include: ["reasoning.encrypted_content"],
190+
},
191+
});
192+
expect(parsed.provider?.openai?.models?.["vv-gpt-5.6-luna-low"]).toEqual({
193+
name: "VV GPT-5.6 Luna Low",
194+
id: "gpt-5.6-luna",
195+
variants: {},
196+
limit: {
197+
context: 1050000,
198+
output: 128000,
199+
},
200+
reasoning: true,
201+
options: {
202+
reasoningEffort: "low",
203+
reasoningSummary: "auto",
204+
include: ["reasoning.encrypted_content"],
205+
},
206+
});
207+
expect(parsed.provider?.openai?.models?.["vv-gpt-5.6-terra-high"]).toEqual({
208+
name: "VV GPT-5.6 Terra High",
209+
id: "gpt-5.6-terra",
210+
variants: {},
211+
limit: {
212+
context: 1050000,
213+
output: 128000,
214+
},
215+
reasoning: true,
216+
options: {
217+
reasoningEffort: "high",
218+
reasoningSummary: "auto",
219+
include: ["reasoning.encrypted_content"],
220+
},
221+
});
222+
expect(parsed.provider?.openai?.models?.["vv-gpt-5.6-sol-xhigh"]).toEqual({
223+
name: "VV GPT-5.6 Sol XHigh",
224+
id: "gpt-5.6-sol",
225+
variants: {},
226+
limit: {
227+
context: 1050000,
228+
output: 128000,
229+
},
230+
reasoning: true,
231+
options: {
232+
reasoningEffort: "xhigh",
233+
reasoningSummary: "auto",
234+
include: ["reasoning.encrypted_content"],
235+
},
236+
});
176237
} finally {
177238
await rm(configHome, { recursive: true, force: true });
178239
}
@@ -227,6 +288,16 @@ describe("applyPatchProviderPreset", () => {
227288
expect(parsed.small_model).toBe("vv-role:fast");
228289
expect(parsed.provider?.openai?.models?.existing).toEqual({ name: "Existing" });
229290
expect(parsed.provider?.openai?.models?.["vv-gpt-5.4-xhigh"]?.name).toBe("VV GPT-5.4-XHigh");
291+
expect(parsed.provider?.openai?.models?.["vv-gpt-5.6-sol-xhigh"]?.name).toBe(
292+
"VV GPT-5.6 Sol XHigh",
293+
);
294+
expect(parsed.provider?.openai?.models?.["vv-gpt-5.5-xhigh"]?.name).toBe("VV GPT-5.5-XHigh");
295+
expect(parsed.provider?.openai?.models?.["vv-gpt-5.6-luna-low"]?.name).toBe(
296+
"VV GPT-5.6 Luna Low",
297+
);
298+
expect(parsed.provider?.openai?.models?.["vv-gpt-5.6-terra-high"]?.name).toBe(
299+
"VV GPT-5.6 Terra High",
300+
);
230301
} finally {
231302
await rm(configHome, { recursive: true, force: true });
232303
}

src/commands/patch-provider.ts

Lines changed: 48 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// FILE: src/commands/patch-provider.ts
2-
// VERSION: 0.4.1
2+
// VERSION: 0.6.0
33
// START_MODULE_CONTRACT
44
// PURPOSE: Apply OpenCode patch presets to global or project OpenCode config layers.
55
// SCOPE: Patch preset validation, scoped OpenCode config path resolution, provider/baseURL patch writes, provider-specific object patch writes under `provider`, and CLI output.
@@ -19,6 +19,7 @@
1919
// START_CHANGE_SUMMARY
2020
// LAST_CHANGE: [v0.5.0 - Added --scope global|project provider patch writes.]
2121
// LAST_CHANGE: [v0.4.3 - Added reasoning:true to vv-gpt-5.4-xhigh and vv-gpt-5.5-xhigh in openai patch preset.]
22+
// LAST_CHANGE: [v0.6.0 - Added vv-gpt-5.6-luna-low, vv-gpt-5.6-terra-high, vv-gpt-5.6-sol-xhigh to openai patch preset.]
2223
// END_CHANGE_SUMMARY
2324

2425
import { defineCommand } from "citty";
@@ -111,6 +112,51 @@ const OPENAI_PATCH = {
111112
include: ["reasoning.encrypted_content"],
112113
},
113114
},
115+
"vv-gpt-5.6-luna-low": {
116+
name: "VV GPT-5.6 Luna Low",
117+
id: "gpt-5.6-luna",
118+
variants: {},
119+
limit: {
120+
context: 1050000,
121+
output: 128000,
122+
},
123+
reasoning: true,
124+
options: {
125+
reasoningEffort: "low",
126+
reasoningSummary: "auto",
127+
include: ["reasoning.encrypted_content"],
128+
},
129+
},
130+
"vv-gpt-5.6-terra-high": {
131+
name: "VV GPT-5.6 Terra High",
132+
id: "gpt-5.6-terra",
133+
variants: {},
134+
limit: {
135+
context: 1050000,
136+
output: 128000,
137+
},
138+
reasoning: true,
139+
options: {
140+
reasoningEffort: "high",
141+
reasoningSummary: "auto",
142+
include: ["reasoning.encrypted_content"],
143+
},
144+
},
145+
"vv-gpt-5.6-sol-xhigh": {
146+
name: "VV GPT-5.6 Sol XHigh",
147+
id: "gpt-5.6-sol",
148+
variants: {},
149+
limit: {
150+
context: 1050000,
151+
output: 128000,
152+
},
153+
reasoning: true,
154+
options: {
155+
reasoningEffort: "xhigh",
156+
reasoningSummary: "auto",
157+
include: ["reasoning.encrypted_content"],
158+
},
159+
},
114160
},
115161
} as const satisfies Record<string, unknown>;
116162

@@ -131,7 +177,7 @@ const PATCH_PROVIDER_PRESETS = {
131177
kind: "provider-object",
132178
providerID: "openai",
133179
value: OPENAI_PATCH,
134-
summary: "provider.openai.models.vv-gpt-5.5-xhigh patched",
180+
summary: "provider.openai.models vv-gpt-5.4/5.5/5.6 aliases patched",
135181
},
136182
} as const satisfies Record<string, PatchPreset>;
137183

src/commands/preset.test.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,26 @@ describe("preset helpers", () => {
6969
expect(output).toContain('"fast": "openai/gpt-5.4-mini"');
7070
expect(output).toContain('"vision": "openai/gpt-5.4"');
7171
});
72+
73+
test("formatPreset renders all five vv-osovv role assignments", () => {
74+
const resolved = resolvePreset("vv-osovv", createDefaultVvocConfig().presets);
75+
const output = formatPreset(resolved.name, resolved.preset);
76+
expect(output).toContain('"default": "deepseek/deepseek-v4-flash"');
77+
expect(output).toContain('"fast": "openai/vv-gpt-5.6-luna-low"');
78+
expect(output).toContain('"smart": "openai/vv-gpt-5.6-sol-xhigh"');
79+
expect(output).toContain('"vision": "minimax-coding-plan/MiniMax-M2.7"');
80+
expect(output).toContain('"reviewer": "zai-coding-plan/glm-5.1"');
81+
});
82+
83+
test("formatPreset renders all five vv-osovv-cheap role assignments", () => {
84+
const resolved = resolvePreset("vv-osovv-cheap", createDefaultVvocConfig().presets);
85+
const output = formatPreset(resolved.name, resolved.preset);
86+
expect(output).toContain('"default": "deepseek/deepseek-v4-flash"');
87+
expect(output).toContain('"fast": "openai/vv-gpt-5.6-luna-low"');
88+
expect(output).toContain('"smart": "openai/vv-gpt-5.6-terra-high"');
89+
expect(output).toContain('"vision": "minimax-coding-plan/MiniMax-M2.7"');
90+
expect(output).toContain('"reviewer": "deepseek/deepseek-v4-pro"');
91+
});
7292
});
7393

7494
describe("applyPreset", () => {

src/lib/vvoc-preset-registry.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
//
1919
// START_CHANGE_SUMMARY
2020
// LAST_CHANGE: [v0.1.0 - Added a shared built-in vvoc preset registry so config sync and completions use one source of truth.]
21+
// LAST_CHANGE: [v0.2.0 - vv-osovv: fast→openai/vv-gpt-5.6-luna-low, smart→openai/vv-gpt-5.6-sol-xhigh; vv-osovv-cheap: fast→openai/vv-gpt-5.6-luna-low, smart→openai/vv-gpt-5.6-terra-high.]
2122
// END_CHANGE_SUMMARY
2223

2324
type BuiltinVvocPresetDefinition = {
@@ -67,21 +68,21 @@ export const BUILTIN_VVOC_PRESET_REGISTRY = {
6768
},
6869
},
6970
"vv-osovv": {
70-
description: "Personal osovv role assignments (deepseek + stepfun + minimax + gpt + zai).",
71+
description: "Personal osovv role assignments (deepseek + openai + minimax + zai).",
7172
agents: {
7273
default: "deepseek/deepseek-v4-flash",
73-
fast: "stepfun/step-3.7-flash",
74-
smart: "openai/vv-gpt-5.5-xhigh",
74+
fast: "openai/vv-gpt-5.6-luna-low",
75+
smart: "openai/vv-gpt-5.6-sol-xhigh",
7576
vision: "minimax-coding-plan/MiniMax-M2.7",
7677
reviewer: "zai-coding-plan/glm-5.1",
7778
},
7879
},
7980
"vv-osovv-cheap": {
80-
description: "Cheap osovv role assignments (deepseek + stepfun + minimax + zai).",
81+
description: "Cheap osovv role assignments (deepseek + openai + minimax).",
8182
agents: {
8283
default: "deepseek/deepseek-v4-flash",
83-
fast: "stepfun/step-3.7-flash",
84-
smart: "zai-coding-plan/glm-5.1",
84+
fast: "openai/vv-gpt-5.6-luna-low",
85+
smart: "openai/vv-gpt-5.6-terra-high",
8586
vision: "minimax-coding-plan/MiniMax-M2.7",
8687
reviewer: "deepseek/deepseek-v4-pro",
8788
},

0 commit comments

Comments
 (0)