diff --git a/internal/harness/harness_test.go b/internal/harness/harness_test.go index ce4ba36..3b53eda 100644 --- a/internal/harness/harness_test.go +++ b/internal/harness/harness_test.go @@ -805,7 +805,7 @@ func TestPiFirstPartyRoutesUseNativeAPIs(t *testing.T) { } require.Equal(t, "anthropic-messages", models["acme/primary"]["api"]) require.Equal(t, testEndpoint, models["acme/primary"]["baseUrl"], "Pi's Anthropic client appends /v1") - require.NotContains(t, models["acme/primary"], "compat") + require.Equal(t, true, get(models["acme/primary"], []string{"compat", "forceAdaptiveThinking"}).Data) require.Equal(t, "openai-responses", models["acme/background"]["api"]) require.NotContains(t, models["acme/background"], "baseUrl") require.NotContains(t, models["acme/background"], "compat") diff --git a/internal/harness/pi.go b/internal/harness/pi.go index 44bb65d..8591f1b 100644 --- a/internal/harness/pi.go +++ b/internal/harness/pi.go @@ -116,6 +116,8 @@ func piModel(r Route, baseURL string) map[string]any { case ProviderAnthropic: // Pi's Anthropic client appends /v1/messages itself. model["api"], model["baseUrl"] = "anthropic-messages", baseURL + // Anthropic Messages models use adaptive thinking, not a token budget. + model["compat"] = map[string]any{"forceAdaptiveThinking": true} case ProviderOpenAI: model["api"] = "openai-responses" default: