@vellumai/assistant 0.10.12-staging.2 → 0.10.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -855,10 +855,9 @@ describe("loadConfig startup behavior", () => {
|
|
|
855
855
|
expect(effective.balanced?.model).toBe("accounts/fireworks/models/glm-5p2");
|
|
856
856
|
expect(effective.balanced?.effort).toBe("high");
|
|
857
857
|
expect(effective.balanced?.source).toBe("managed");
|
|
858
|
-
// Quality pins
|
|
858
|
+
// Quality pins OpenAI Sol, the most capable managed model.
|
|
859
859
|
expect(effective["quality-optimized"]?.provider).toBe("vellum");
|
|
860
|
-
expect(effective["quality-optimized"]?.model).toBe("
|
|
861
|
-
expect(effective["quality-optimized"]?.model).toBe("claude-fable-5");
|
|
860
|
+
expect(effective["quality-optimized"]?.model).toBe("gpt-5.6-sol");
|
|
862
861
|
// Speed is served by DeepSeek V4 Flash on Fireworks.
|
|
863
862
|
expect(effective["cost-optimized"]?.provider).toBe("vellum");
|
|
864
863
|
expect(effective["cost-optimized"]?.model).toBe(
|
|
@@ -916,7 +915,7 @@ describe("loadConfig startup behavior", () => {
|
|
|
916
915
|
const raw = JSON.parse(readFileSync(CONFIG_PATH, "utf-8"));
|
|
917
916
|
|
|
918
917
|
expect(raw.llm.profiles["quality-optimized"]).toEqual(legacy);
|
|
919
|
-
// The shadow wins over the catalog body (which serves
|
|
918
|
+
// The shadow wins over the catalog body (which serves gpt-5.6-sol).
|
|
920
919
|
const effectiveQuality = getEffectiveProfile(
|
|
921
920
|
raw.llm.profiles,
|
|
922
921
|
"quality-optimized",
|
|
@@ -941,7 +940,7 @@ describe("loadConfig startup behavior", () => {
|
|
|
941
940
|
"quality-optimized",
|
|
942
941
|
);
|
|
943
942
|
expect(effectiveQuality?.source).toBe("managed");
|
|
944
|
-
expect(effectiveQuality?.model).toBe("
|
|
943
|
+
expect(effectiveQuality?.model).toBe("gpt-5.6-sol");
|
|
945
944
|
});
|
|
946
945
|
|
|
947
946
|
test("platform boot leaves a drifted managed entry byte-identical; resolution serves catalog content", () => {
|
|
@@ -53,6 +53,15 @@ describe("getEffectiveProfiles", () => {
|
|
|
53
53
|
}
|
|
54
54
|
});
|
|
55
55
|
|
|
56
|
+
test("the managed Quality profile routes GPT-5.6 Sol through OpenAI", () => {
|
|
57
|
+
const quality = CODE_DEFAULT_PROFILE_ENTRIES["quality-optimized"];
|
|
58
|
+
expect(quality.model).toBe("gpt-5.6-sol");
|
|
59
|
+
expect(resolveRoutingIdentity(quality.provider, quality.model)).toEqual({
|
|
60
|
+
connectionName: "vellum",
|
|
61
|
+
expectedProvider: "openai",
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
|
|
56
65
|
test("defaults absent from the workspace resolve from the catalog; os-beta stays flag-gated", () => {
|
|
57
66
|
const effective = getEffectiveProfiles(undefined);
|
|
58
67
|
expect(Object.keys(effective).sort()).toEqual(
|
|
@@ -973,17 +973,19 @@ export class AnthropicProvider implements Provider {
|
|
|
973
973
|
(restConfig as Record<string, unknown>).model?.toString() ?? this.model;
|
|
974
974
|
const isHaiku = effectiveModel.includes("haiku");
|
|
975
975
|
const supportsEffort = !isHaiku;
|
|
976
|
-
// opus-4-7 / opus-4-8 and sonnet-5 reject `temperature`,
|
|
977
|
-
// `top_k` with a 400 "`temperature`/`top_p` is deprecated
|
|
978
|
-
// — model-wide, not effort-conditional (verified
|
|
979
|
-
// sonnet-4-6 / haiku-4-5 still accept them.
|
|
980
|
-
// conservatively (a frontier model that could not be
|
|
981
|
-
// but follows the same deprecation direction).
|
|
982
|
-
// keeps callers that set them (e.g. the
|
|
983
|
-
// `temperature: 0`) from 400ing. OpenRouter
|
|
984
|
-
// delegate to this provider, so the bare-id
|
|
976
|
+
// opus-4-7 / opus-4-8 / opus-5 and sonnet-5 reject `temperature`,
|
|
977
|
+
// `top_p`, and `top_k` with a 400 "`temperature`/`top_p` is deprecated
|
|
978
|
+
// for this model" — model-wide, not effort-conditional (verified
|
|
979
|
+
// 2026-06-23). opus-4-6 / sonnet-4-6 / haiku-4-5 still accept them.
|
|
980
|
+
// fable-5 is included conservatively (a frontier model that could not be
|
|
981
|
+
// verified directly but follows the same deprecation direction).
|
|
982
|
+
// Stripping the params here keeps callers that set them (e.g. the
|
|
983
|
+
// memory-v3 L2 selector's `temperature: 0`) from 400ing. OpenRouter
|
|
984
|
+
// `anthropic/...` models delegate to this provider, so the bare-id
|
|
985
|
+
// suffix is what matches.
|
|
985
986
|
const deprecatesSamplingParams =
|
|
986
987
|
/claude-opus-4-[78]\b/.test(effectiveModel) ||
|
|
988
|
+
/claude-opus-5\b/.test(effectiveModel) ||
|
|
987
989
|
/claude-sonnet-5\b/.test(effectiveModel) ||
|
|
988
990
|
effectiveModel.startsWith("claude-fable-");
|
|
989
991
|
const mergedOutputConfig = {
|
|
@@ -179,6 +179,23 @@ const RAW_PROVIDER_CATALOG: ProviderCatalogEntry[] = [
|
|
|
179
179
|
cacheReadPer1mTokens: 1,
|
|
180
180
|
},
|
|
181
181
|
},
|
|
182
|
+
{
|
|
183
|
+
id: "claude-opus-5",
|
|
184
|
+
displayName: "Claude Opus 5",
|
|
185
|
+
contextWindowTokens: 1000000,
|
|
186
|
+
maxOutputTokens: 128000,
|
|
187
|
+
longContextPricingThresholdTokens: 200000,
|
|
188
|
+
supportsThinking: true,
|
|
189
|
+
supportsCaching: true,
|
|
190
|
+
supportsVision: true,
|
|
191
|
+
supportsToolUse: true,
|
|
192
|
+
pricing: {
|
|
193
|
+
inputPer1mTokens: 5,
|
|
194
|
+
outputPer1mTokens: 25,
|
|
195
|
+
cacheWritePer1mTokens: 6.25,
|
|
196
|
+
cacheReadPer1mTokens: 0.5,
|
|
197
|
+
},
|
|
198
|
+
},
|
|
182
199
|
{
|
|
183
200
|
id: "claude-opus-4-8",
|
|
184
201
|
displayName: "Claude Opus 4.8",
|
|
@@ -1000,6 +1017,23 @@ const RAW_PROVIDER_CATALOG: ProviderCatalogEntry[] = [
|
|
|
1000
1017
|
cacheReadPer1mTokens: 1,
|
|
1001
1018
|
},
|
|
1002
1019
|
},
|
|
1020
|
+
{
|
|
1021
|
+
id: "anthropic/claude-opus-5",
|
|
1022
|
+
displayName: "Claude Opus 5",
|
|
1023
|
+
contextWindowTokens: 1000000,
|
|
1024
|
+
maxOutputTokens: 128000,
|
|
1025
|
+
longContextPricingThresholdTokens: 200000,
|
|
1026
|
+
supportsThinking: true,
|
|
1027
|
+
supportsCaching: true,
|
|
1028
|
+
supportsVision: true,
|
|
1029
|
+
supportsToolUse: true,
|
|
1030
|
+
pricing: {
|
|
1031
|
+
inputPer1mTokens: 5,
|
|
1032
|
+
outputPer1mTokens: 25,
|
|
1033
|
+
cacheWritePer1mTokens: 6.25,
|
|
1034
|
+
cacheReadPer1mTokens: 0.5,
|
|
1035
|
+
},
|
|
1036
|
+
},
|
|
1003
1037
|
{
|
|
1004
1038
|
id: "anthropic/claude-opus-4.8",
|
|
1005
1039
|
displayName: "Claude Opus 4.8",
|
|
@@ -1733,6 +1767,23 @@ const RAW_PROVIDER_CATALOG: ProviderCatalogEntry[] = [
|
|
|
1733
1767
|
cacheReadPer1mTokens: 1,
|
|
1734
1768
|
},
|
|
1735
1769
|
},
|
|
1770
|
+
{
|
|
1771
|
+
id: "anthropic/claude-opus-5",
|
|
1772
|
+
displayName: "Claude Opus 5",
|
|
1773
|
+
contextWindowTokens: 1000000,
|
|
1774
|
+
maxOutputTokens: 128000,
|
|
1775
|
+
longContextPricingThresholdTokens: 200000,
|
|
1776
|
+
supportsThinking: true,
|
|
1777
|
+
supportsCaching: true,
|
|
1778
|
+
supportsVision: true,
|
|
1779
|
+
supportsToolUse: true,
|
|
1780
|
+
pricing: {
|
|
1781
|
+
inputPer1mTokens: 5,
|
|
1782
|
+
outputPer1mTokens: 25,
|
|
1783
|
+
cacheWritePer1mTokens: 6.25,
|
|
1784
|
+
cacheReadPer1mTokens: 0.5,
|
|
1785
|
+
},
|
|
1786
|
+
},
|
|
1736
1787
|
{
|
|
1737
1788
|
id: "anthropic/claude-opus-4.8",
|
|
1738
1789
|
displayName: "Claude Opus 4.8",
|