@@ -26,6 +26,7 @@ import (
26 "github.com/charmbracelet/crush/internal/log"
26 "github.com/charmbracelet/crush/internal/log"
27 "github.com/charmbracelet/crush/internal/lsp"
27 "github.com/charmbracelet/crush/internal/lsp"
28 "github.com/charmbracelet/crush/internal/message"
28 "github.com/charmbracelet/crush/internal/message"
29+ "github.com/charmbracelet/crush/internal/oauth/copilot"
29 "github.com/charmbracelet/crush/internal/permission"
30 "github.com/charmbracelet/crush/internal/permission"
30 "github.com/charmbracelet/crush/internal/session"
31 "github.com/charmbracelet/crush/internal/session"
31 "golang.org/x/sync/errgroup"
32 "golang.org/x/sync/errgroup"
@@ -582,15 +583,23 @@ func (c *coordinator) buildOpenrouterProvider(_, apiKey string, headers map[stri
582 return openrouter.New(opts...)
583 return openrouter.New(opts...)
585−func (c *coordinator) buildOpenaiCompatProvider(baseURL, apiKey string, headers map[string]string, extraBody map[string]any) (fantasy.Provider, error) {
586+func (c *coordinator) buildOpenaiCompatProvider(baseURL, apiKey string, headers map[string]string, extraBody map[string]any, providerID string) (fantasy.Provider, error) {
586 opts := []openaicompat.Option{
587 opts := []openaicompat.Option{
587 openaicompat.WithBaseURL(baseURL),
588 openaicompat.WithBaseURL(baseURL),
588 openaicompat.WithAPIKey(apiKey),
589 openaicompat.WithAPIKey(apiKey),
592+ // Set HTTP client based on provider and debug mode.
593+ var httpClient *http.Client
594+ if providerID == string(catwalk.InferenceProviderCopilot) {
590− if c.cfg.Options.Debug {
595+ httpClient = copilot.NewClient(c.cfg.Options.Debug)
596+ } else if c.cfg.Options.Debug {
591− httpClient := log.NewHTTPClient()
597+ httpClient = log.NewHTTPClient()
599+ if httpClient != nil {
592 opts = append(opts, openaicompat.WithHTTPClient(httpClient))
600 opts = append(opts, openaicompat.WithHTTPClient(httpClient))
594 if len(headers) > 0 {
603 if len(headers) > 0 {
595 opts = append(opts, openaicompat.WithHeaders(headers))
604 opts = append(opts, openaicompat.WithHeaders(headers))
@@ -745,7 +754,7 @@ func (c *coordinator) buildProvider(providerCfg config.ProviderConfig, model con
746 providerCfg.ExtraBody["tool_stream"] = true
755 providerCfg.ExtraBody["tool_stream"] = true
748− return c.buildOpenaiCompatProvider(baseURL, apiKey, headers, providerCfg.ExtraBody)
757+ return c.buildOpenaiCompatProvider(baseURL, apiKey, headers, providerCfg.ExtraBody, providerCfg.ID)
749 case hyper.Name:
758 case hyper.Name:
750 return c.buildHyperProvider(baseURL, apiKey)
759 return c.buildHyperProvider(baseURL, apiKey)