diff --git a/betamessage.go b/betamessage.go index 47bd6ee9..775c285f 100644 --- a/betamessage.go +++ b/betamessage.go @@ -326,6 +326,7 @@ func init() { "type", apijson.Discriminator[BetaThinkingConfigEnabledParam]("enabled"), apijson.Discriminator[BetaThinkingConfigDisabledParam]("disabled"), + apijson.Discriminator[BetaThinkingConfigAdaptiveParam]("adaptive"), ) } diff --git a/message.go b/message.go index 052dc114..c381510a 100644 --- a/message.go +++ b/message.go @@ -2787,6 +2787,7 @@ func init() { "type", apijson.Discriminator[ThinkingConfigEnabledParam]("enabled"), apijson.Discriminator[ThinkingConfigDisabledParam]("disabled"), + apijson.Discriminator[ThinkingConfigAdaptiveParam]("adaptive"), ) } diff --git a/message_test.go b/message_test.go index 9062a015..c7bb3f40 100644 --- a/message_test.go +++ b/message_test.go @@ -599,3 +599,27 @@ func TestMessageParamArrayContent(t *testing.T) { t.Errorf("Expected second block text 'second block', got '%s'", message.Content[1].OfText.Text) } } + +func TestThinkingConfigAdaptiveUnmarshalJSON(t *testing.T) { + input := `{"messages":[{"role":"user","content":"hello"}],"model":"claude-opus-4-6","thinking":{"type":"adaptive"}}` + var msgParam anthropic.MessageNewParams + err := msgParam.UnmarshalJSON([]byte(input)) + if err != nil { + t.Fatalf("UnmarshalJSON failed: %v", err) + } + if msgParam.Thinking.OfAdaptive == nil { + t.Fatal("Expected Thinking.OfAdaptive to be set, got nil") + } +} + +func TestBetaThinkingConfigAdaptiveUnmarshalJSON(t *testing.T) { + input := `{"messages":[{"role":"user","content":"hello"}],"model":"claude-opus-4-6","thinking":{"type":"adaptive"}}` + var msgParam anthropic.BetaMessageNewParams + err := msgParam.UnmarshalJSON([]byte(input)) + if err != nil { + t.Fatalf("UnmarshalJSON failed: %v", err) + } + if msgParam.Thinking.OfAdaptive == nil { + t.Fatal("Expected Thinking.OfAdaptive to be set, got nil") + } +}