diff --git a/go/internal/e2e/rpc_test.go b/go/internal/e2e/rpc_test.go index 3d69b97a..e38649e8 100644 --- a/go/internal/e2e/rpc_test.go +++ b/go/internal/e2e/rpc_test.go @@ -202,8 +202,7 @@ func TestSessionRpc(t *testing.T) { if err != nil { t.Fatalf("Failed to create session: %v", err) } - - if err := session.SetModel(t.Context(), "gpt-4.1", copilot.SetModelOptions{ReasoningEffort: "high"}); err != nil { + if err := session.SetModel(t.Context(), "gpt-4.1", &copilot.SetModelOptions{ReasoningEffort: copilot.String("high")}); err != nil { t.Fatalf("SetModel returned error: %v", err) } }) diff --git a/go/internal/e2e/session_test.go b/go/internal/e2e/session_test.go index 7f1817da..46dc8494 100644 --- a/go/internal/e2e/session_test.go +++ b/go/internal/e2e/session_test.go @@ -966,7 +966,7 @@ func TestSetModelWithReasoningEffort(t *testing.T) { } }) - if err := session.SetModel(t.Context(), "gpt-4.1", copilot.SetModelOptions{ReasoningEffort: "high"}); err != nil { + if err := session.SetModel(t.Context(), "gpt-4.1", &copilot.SetModelOptions{ReasoningEffort: copilot.String("high")}); err != nil { t.Fatalf("SetModel returned error: %v", err) } diff --git a/go/session.go b/go/session.go index 3a94a818..5be626b5 100644 --- a/go/session.go +++ b/go/session.go @@ -792,7 +792,7 @@ func (s *Session) Abort(ctx context.Context) error { // SetModelOptions configures optional parameters for SetModel. type SetModelOptions struct { // ReasoningEffort sets the reasoning effort level for the new model (e.g., "low", "medium", "high", "xhigh"). - ReasoningEffort string + ReasoningEffort *string } // SetModel changes the model for this session. @@ -800,17 +800,16 @@ type SetModelOptions struct { // // Example: // -// if err := session.SetModel(context.Background(), "gpt-4.1"); err != nil { +// if err := session.SetModel(context.Background(), "gpt-4.1", nil); err != nil { // log.Printf("Failed to set model: %v", err) // } -// if err := session.SetModel(context.Background(), "claude-sonnet-4.6", SetModelOptions{ReasoningEffort: "high"}); err != nil { +// if err := session.SetModel(context.Background(), "claude-sonnet-4.6", &SetModelOptions{ReasoningEffort: new("high")}); err != nil { // log.Printf("Failed to set model: %v", err) // } -func (s *Session) SetModel(ctx context.Context, model string, opts ...SetModelOptions) error { +func (s *Session) SetModel(ctx context.Context, model string, opts *SetModelOptions) error { params := &rpc.SessionModelSwitchToParams{ModelID: model} - if len(opts) > 0 && opts[0].ReasoningEffort != "" { - re := opts[0].ReasoningEffort - params.ReasoningEffort = &re + if opts != nil { + params.ReasoningEffort = opts.ReasoningEffort } _, err := s.RPC.Model.SwitchTo(ctx, params) if err != nil {