Changeset 0.22.0.1 (#94)
This commit is contained in:
@@ -154,7 +154,7 @@ func TestResolveIntrinsic_CatalogWins(t *testing.T) {
|
||||
ToolCalling: true,
|
||||
MaxOutputTokens: 16384,
|
||||
}
|
||||
merged := ResolveIntrinsic("claude-sonnet-4-20250514", &providerCaps)
|
||||
merged := ResolveIntrinsic("claude-sonnet-4-20250514", &providerCaps, nil)
|
||||
|
||||
if !merged.ToolCalling {
|
||||
t.Error("tool_calling should be preserved from provider")
|
||||
@@ -179,7 +179,7 @@ func TestResolveIntrinsic_ProviderDataPreserved(t *testing.T) {
|
||||
MaxOutputTokens: 8192,
|
||||
MaxContext: 65536,
|
||||
}
|
||||
merged := ResolveIntrinsic("some-unknown-model", &providerCaps)
|
||||
merged := ResolveIntrinsic("some-unknown-model", &providerCaps, nil)
|
||||
|
||||
if !merged.ToolCalling {
|
||||
t.Error("tool_calling should be preserved from provider")
|
||||
@@ -191,7 +191,7 @@ func TestResolveIntrinsic_ProviderDataPreserved(t *testing.T) {
|
||||
|
||||
func TestResolveIntrinsic_NilProvider(t *testing.T) {
|
||||
// Nil provider caps — falls through entirely to heuristic
|
||||
merged := ResolveIntrinsic("gpt-4o", nil)
|
||||
merged := ResolveIntrinsic("gpt-4o", nil, nil)
|
||||
|
||||
if !merged.ToolCalling {
|
||||
t.Error("should get tool_calling from heuristic (gpt-4 pattern)")
|
||||
@@ -203,7 +203,7 @@ func TestResolveIntrinsic_NilProvider(t *testing.T) {
|
||||
|
||||
func TestResolveIntrinsic_HeuristicOnly(t *testing.T) {
|
||||
// No catalog, no known table — pure heuristic
|
||||
merged := ResolveIntrinsic("deepseek-r1-distill-llama-70b", nil)
|
||||
merged := ResolveIntrinsic("deepseek-r1-distill-llama-70b", nil, nil)
|
||||
|
||||
if !merged.Reasoning {
|
||||
t.Error("should infer reasoning from deepseek-r1 pattern")
|
||||
@@ -229,3 +229,71 @@ func TestHasProviderData(t *testing.T) {
|
||||
t.Error("caps with max_context should have provider data")
|
||||
}
|
||||
}
|
||||
|
||||
func TestResolveIntrinsic_AdminOverrides(t *testing.T) {
|
||||
// Catalog says no vision, heuristic says no vision,
|
||||
// but admin override forces vision=true.
|
||||
catalogCaps := &models.ModelCapabilities{
|
||||
ToolCalling: true,
|
||||
Vision: false,
|
||||
}
|
||||
overrides := []models.CapabilityOverride{
|
||||
{Field: "vision", Value: "true"},
|
||||
}
|
||||
|
||||
merged := ResolveIntrinsic("some-custom-model", catalogCaps, overrides)
|
||||
|
||||
if !merged.Vision {
|
||||
t.Error("admin override should force vision=true")
|
||||
}
|
||||
if !merged.ToolCalling {
|
||||
t.Error("catalog tool_calling should be preserved")
|
||||
}
|
||||
}
|
||||
|
||||
func TestResolveIntrinsic_AdminOverrides_DisableCapability(t *testing.T) {
|
||||
// Heuristic infers tool_calling for gpt-4o, but admin says no.
|
||||
overrides := []models.CapabilityOverride{
|
||||
{Field: "tool_calling", Value: "false"},
|
||||
}
|
||||
|
||||
merged := ResolveIntrinsic("gpt-4o", nil, overrides)
|
||||
|
||||
if merged.ToolCalling {
|
||||
t.Error("admin override should disable tool_calling")
|
||||
}
|
||||
}
|
||||
|
||||
func TestResolveIntrinsic_AdminOverrides_IntValues(t *testing.T) {
|
||||
overrides := []models.CapabilityOverride{
|
||||
{Field: "max_context", Value: "200000"},
|
||||
{Field: "max_output_tokens", Value: "16384"},
|
||||
}
|
||||
|
||||
merged := ResolveIntrinsic("some-model", nil, overrides)
|
||||
|
||||
if merged.MaxContext != 200000 {
|
||||
t.Errorf("expected max_context=200000, got %d", merged.MaxContext)
|
||||
}
|
||||
if merged.MaxOutputTokens != 16384 {
|
||||
t.Errorf("expected max_output_tokens=16384, got %d", merged.MaxOutputTokens)
|
||||
}
|
||||
}
|
||||
|
||||
func TestResolveIntrinsic_OverridePriority(t *testing.T) {
|
||||
// Catalog says max_context=128000, admin overrides to 256000.
|
||||
// Admin should win.
|
||||
catalogCaps := &models.ModelCapabilities{
|
||||
MaxContext: 128000,
|
||||
}
|
||||
overrides := []models.CapabilityOverride{
|
||||
{Field: "max_context", Value: "256000"},
|
||||
}
|
||||
|
||||
merged := ResolveIntrinsic("some-model", catalogCaps, overrides)
|
||||
|
||||
if merged.MaxContext != 256000 {
|
||||
t.Errorf("admin override should win over catalog: expected 256000, got %d", merged.MaxContext)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user