返回 DeepSeek-Reasonix
reasoning_display_app.go
根目录 / desktop / reasoning_display_app.go
1 package main
2
3 import (
4 "runtime"
5
6 "reasonix/internal/agent"
7 "reasonix/internal/config"
8 "reasonix/internal/provider"
9 "reasonix/internal/sandbox"
10 )
11
12 func desktopStartupSettingsFromConfig(cfg *config.Config) DesktopStartupSettingsView {
13 if cfg == nil {
14 return DesktopStartupSettingsView{
15 Bot: botSettingsView(config.BotConfig{}), DesktopLayoutStyle: "workbench",
16 DesktopTheme: "auto", DesktopThemeStyle: "graphite", DesktopTerminalTheme: "auto",
17 DisplayMode: "standard", SessionExperience: "standard", ReasoningDisplayMode: "auto", StatusBarStyle: "icon",
18 StatusBarItems: config.DefaultDesktopStatusBarItems(), CheckUpdates: false, UpdaterEnabled: desktopUpdaterEnabled(),
19 UpdateChannel: "stable", ConversationWidth: "standard",
20 }
21 }
22 return DesktopStartupSettingsView{
23 Bot: botSettingsView(cfg.Bot), DesktopLanguage: cfg.DesktopLanguage(),
24 DesktopLayoutStyle: cfg.DesktopLayoutStyle(), DesktopTheme: cfg.DesktopTheme(),
25 DesktopThemeStyle: cfg.DesktopThemeStyle(), DesktopTerminalTheme: cfg.DesktopTerminalTheme(),
26 DisplayMode: cfg.DesktopDisplayMode(), SessionExperience: cfg.DesktopSessionExperience(), ReasoningDisplayMode: cfg.DesktopReasoningDisplayMode(),
27 ReasoningDisplayModeExplicit: cfg.DesktopReasoningDisplayModeExplicit(), StatusBarStyle: cfg.DesktopStatusBarStyle(),
28 StatusBarItems: cfg.DesktopStatusBarItems(), CheckUpdates: cfg.DesktopCheckUpdates(), UpdaterEnabled: desktopUpdaterEnabled(),
29 UpdateChannel: cfg.DesktopUpdateChannel(), ConversationWidth: cfg.DesktopConversationWidth(),
30 ConfigWarnings: cfg.LoadWarnings(), ConfigPath: config.UserConfigPath(),
31 }
32 }
33
34 func (a *App) defaultSettingsView() SettingsView {
35 defaults := config.Default()
36 return SettingsView{
37 WebSearchModels: []string{},
38 Providers: []ProviderView{}, OfficialProviders: officialProviderViews(map[string]bool{}, ""),
39 ProviderPresets: providerPresetViewsForRootWithResolver(nil, a.activeWorkspaceRoot(), nil),
40 ProviderKinds: nonNil(provider.Kinds()),
41 Permissions: PermissionsView{Mode: "ask", Allow: []string{}, Ask: []string{}, Deny: []string{}},
42 Sandbox: SandboxView{Bash: defaults.BashMode(), AllowWrite: []string{}, EffectiveWriteRoots: []string{}, Shell: "auto",
43 EffectiveShell: sandboxEffectiveShellView(sandbox.ResolveShell("", "", nil)),
44 ResolvedShell: sandboxEffectiveShellView(sandbox.ResolveShell("", "", nil)),
45 ShellCapabilities: sandboxCapabilityViews("", ""),
46 GitCapability: gitCapabilityView("", ""),
47 ShellRepairGuidance: shellRepairGuidanceForGOOS(runtime.GOOS),
48 GitRepairGuidance: gitRepairGuidanceForGOOS(runtime.GOOS)},
49 Agent: AgentView{
50 PlannerMaxSteps: 0, MaxSubagentDepth: agent.DefaultMaxSubagentDepth,
51 MaxSubagentConcurrency: agent.DefaultMaxSubagentConcurrency, MaxParallelWriters: agent.DefaultMaxParallelWriters,
52 ReasoningLanguage: "auto",
53 CompactRatio: defaults.Agent.CompactRatio, EffectiveCompactRatio: defaults.Agent.CompactRatio,
54 },
55 Bot: botSettingsView(config.BotConfig{}), AutoPlan: "off", DesktopLayoutStyle: "workbench",
56 DesktopTheme: "auto", DesktopThemeStyle: "graphite", DesktopTerminalTheme: "auto",
57 CloseBehavior: "background", DisplayMode: "standard", ReasoningDisplayMode: "auto",
58 StatusBarStyle: "icon", StatusBarItems: config.DefaultDesktopStatusBarItems(), SessionExperience: "standard",
59 DefaultToolApprovalMode: "workspace-write", CheckUpdates: false, UpdaterEnabled: desktopUpdaterEnabled(), UpdateChannel: "stable",
60 Telemetry: true, Metrics: true, ExpandThinking: false, ConversationWidth: "standard",
61 }
62 }
63
64 // SetReasoningDisplayMode persists presentation only; no controller rebuild is needed.
65 func (a *App) SetReasoningDisplayMode(mode string) error {
66 return a.applyConfigOnly(func(c *config.Config) error {
67 if mode == "expanded" {
68 return c.SetDesktopSessionExperience(string(config.SessionExperienceDeep))
69 }
70 return c.SetDesktopSessionExperience(string(config.SessionExperienceStandard))
71 })
72 }
73
74 // SetSessionExperience persists the canonical two-state desktop presentation.
75 func (a *App) SetSessionExperience(mode string) error {
76 return a.applyConfigOnly(func(c *config.Config) error { return c.SetDesktopSessionExperience(mode) })
77 }
78
79 // SetDisplayMode preserves the legacy density setter for one release.
80 func (a *App) SetDisplayMode(string) error {
81 return a.SetSessionExperience(string(config.SessionExperienceStandard))
82 }
83
84 // SetExpandThinking preserves the legacy reasoning boolean for one release.
85 func (a *App) SetExpandThinking(bool) error {
86 return a.SetSessionExperience(string(config.SessionExperienceStandard))
87 }
88
88 lines GO