Skip to content

Commit 8c93dfc

Browse files
committed
Move GetUserSettings() from pkg/config to pkg/userconfig as Get()
The function only wraps userconfig.Load() + cfg.GetSettings(), so it belongs in pkg/userconfig rather than pkg/config which is about agent configuration resolution. Renamed to Get() since the package name already provides context. Assisted-By: cagent
1 parent fff5c2d commit 8c93dfc

5 files changed

Lines changed: 41 additions & 40 deletions

File tree

cmd/root/run.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"github.com/docker/cagent/pkg/teamloader"
2525
"github.com/docker/cagent/pkg/telemetry"
2626
"github.com/docker/cagent/pkg/tui/styles"
27+
"github.com/docker/cagent/pkg/userconfig"
2728
)
2829

2930
type runExecFlags struct {
@@ -160,7 +161,7 @@ func (f *runExecFlags) runOrExec(ctx context.Context, out *cli.Printer, args []s
160161

161162
// Apply global user settings first (lowest priority)
162163
// User settings only apply if the flag wasn't explicitly set by the user
163-
userSettings := config.GetUserSettings()
164+
userSettings := userconfig.Get()
164165
if userSettings.HideToolResults && !f.hideToolResults {
165166
f.hideToolResults = true
166167
slog.Debug("Applying user settings", "hide_tool_results", true)
@@ -493,7 +494,7 @@ func (f *runExecFlags) handleRunMode(ctx context.Context, rt runtime.Runtime, se
493494
func applyTheme() {
494495
// Resolve theme from user config > built-in default
495496
themeRef := styles.DefaultThemeRef
496-
if userSettings := config.GetUserSettings(); userSettings.Theme != "" {
497+
if userSettings := userconfig.Get(); userSettings.Theme != "" {
497498
themeRef = userSettings.Theme
498499
}
499500

pkg/config/resolve.go

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -53,16 +53,6 @@ func ResolveAlias(agentFilename string) *userconfig.Alias {
5353
return alias
5454
}
5555

56-
// GetUserSettings returns the global user settings from the config file.
57-
// Returns an empty Settings if the config file doesn't exist or has no settings.
58-
func GetUserSettings() *userconfig.Settings {
59-
cfg, err := userconfig.Load()
60-
if err != nil {
61-
return &userconfig.Settings{}
62-
}
63-
return cfg.GetSettings()
64-
}
65-
6656
// ResolveSources resolves an agent file reference (local file, URL, or OCI image) to sources.
6757
// If envProvider is non-nil, it will be used to look up GITHUB_TOKEN for authentication
6858
// when fetching from GitHub URLs.

pkg/config/resolve_test.go

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -619,31 +619,3 @@ func TestResolveAlias_WithAllOptions(t *testing.T) {
619619
assert.Equal(t, "anthropic/claude-sonnet-4-0", alias.Model)
620620
assert.True(t, alias.HideToolResults)
621621
}
622-
623-
func TestGetUserSettings_Empty(t *testing.T) {
624-
home := t.TempDir()
625-
t.Setenv("HOME", home)
626-
627-
// No config file exists
628-
settings := GetUserSettings()
629-
require.NotNil(t, settings)
630-
assert.False(t, settings.HideToolResults)
631-
}
632-
633-
func TestGetUserSettings_WithHideToolResults(t *testing.T) {
634-
home := t.TempDir()
635-
t.Setenv("HOME", home)
636-
637-
// Set up config with settings
638-
cfg, err := userconfig.Load()
639-
require.NoError(t, err)
640-
cfg.Settings = &userconfig.Settings{
641-
HideToolResults: true,
642-
}
643-
require.NoError(t, cfg.Save())
644-
645-
// Get settings
646-
settings := GetUserSettings()
647-
require.NotNil(t, settings)
648-
assert.True(t, settings.HideToolResults)
649-
}

pkg/userconfig/userconfig.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,3 +278,13 @@ func (c *Config) GetSettings() *Settings {
278278
}
279279
return c.Settings
280280
}
281+
282+
// Get returns the global user settings from the config file.
283+
// Returns an empty Settings if the config file doesn't exist or has no settings.
284+
func Get() *Settings {
285+
cfg, err := Load()
286+
if err != nil {
287+
return &Settings{}
288+
}
289+
return cfg.GetSettings()
290+
}

pkg/userconfig/userconfig_test.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -782,3 +782,31 @@ func TestConfig_DefaultModel_SaveAndLoad(t *testing.T) {
782782
require.NotNil(t, loaded.DefaultModel.ThinkingBudget)
783783
assert.Equal(t, 10000, loaded.DefaultModel.ThinkingBudget.Tokens)
784784
}
785+
786+
func TestGet_Empty(t *testing.T) {
787+
home := t.TempDir()
788+
t.Setenv("HOME", home)
789+
790+
// No config file exists
791+
settings := Get()
792+
require.NotNil(t, settings)
793+
assert.False(t, settings.HideToolResults)
794+
}
795+
796+
func TestGet_WithHideToolResults(t *testing.T) {
797+
home := t.TempDir()
798+
t.Setenv("HOME", home)
799+
800+
// Set up config with settings
801+
cfg, err := Load()
802+
require.NoError(t, err)
803+
cfg.Settings = &Settings{
804+
HideToolResults: true,
805+
}
806+
require.NoError(t, cfg.Save())
807+
808+
// Get settings
809+
settings := Get()
810+
require.NotNil(t, settings)
811+
assert.True(t, settings.HideToolResults)
812+
}

0 commit comments

Comments
 (0)