copyWith method
CliConfig
copyWith({
- String? providerKind,
- String? modelId,
- String? baseUrl,
- String? mode,
- String? approvalMode,
- List<
String> ? allowedTools, - Map<
String, String> ? promptOverrides, - ModelRolesConfig? modelRoles,
- TtsrConfig? ttsr,
- int? contextWindowCap,
- StuckToolConfig? stuckTool,
- String? agentLoadMode,
- List<
CustomProviderEntry> ? customProviders, - ModelsConfig? models,
- McpConfig? mcp,
- A2aConfig? a2a,
- ProviderTimeoutsOverride? providerTimeouts,
- SkillsAccess? skillsAccess,
- bool? skillsDisableShellExecution,
- bool? skillsLiveRediscovery,
- Map<
String, bool> ? skillToggles, - MemoryConfig? memory,
- FabricConfig? fabric,
- CubeSettings? cube,
- ToolsConfig? tools,
- RedactionConfig? redact,
- SpillsConfig? spills,
- CompactionEngine? compactionEngine,
- int? compactionJudgeBudgetSeconds,
- bool? wireDump,
- ImageRegistryConfig? images,
- String? agentMode,
- bool? misuseBreaker,
- SubagentsConfig? subagents,
- WaitingConfig? waiting,
- JobsConfig? jobs,
- HeadlessConfig? headless,
- PowerAssertionLevel? powerSleepPrevention,
- PowerAssertionHold? powerHold,
- QuotaSection? quota,
- String? tuiTheme,
- bool? tuiClassic,
- StatusLineConfig? statusLine,
- LinksConfig? links,
- bool? streamThinking,
- AutoUpdateMode? autoUpdate,
Returns a copy with the given fields replaced; every omitted field
carries over (null = keep). The base for the boot's persistConfig
save (gh-1572): the loaded config is the base, only the session-live
overlays are passed, so a save can never reset a section the caller
did not mention. Nullable sections model absence as null — a
copyWith cannot CLEAR one (pass the parsed value or keep it).
Implementation
CliConfig copyWith({
String? providerKind,
String? modelId,
String? baseUrl,
String? mode,
String? approvalMode,
List<String>? allowedTools,
Map<String, String>? promptOverrides,
ModelRolesConfig? modelRoles,
TtsrConfig? ttsr,
int? contextWindowCap,
StuckToolConfig? stuckTool,
String? agentLoadMode,
List<CustomProviderEntry>? customProviders,
ModelsConfig? models,
McpConfig? mcp,
A2aConfig? a2a,
ProviderTimeoutsOverride? providerTimeouts,
SkillsAccess? skillsAccess,
bool? skillsDisableShellExecution,
bool? skillsLiveRediscovery,
Map<String, bool>? skillToggles,
MemoryConfig? memory,
FabricConfig? fabric,
CubeSettings? cube,
ToolsConfig? tools,
RedactionConfig? redact,
SpillsConfig? spills,
CompactionEngine? compactionEngine,
int? compactionJudgeBudgetSeconds,
bool? wireDump,
ImageRegistryConfig? images,
String? agentMode,
bool? misuseBreaker,
SubagentsConfig? subagents,
WaitingConfig? waiting,
JobsConfig? jobs,
HeadlessConfig? headless,
PowerAssertionLevel? powerSleepPrevention,
PowerAssertionHold? powerHold,
QuotaSection? quota,
String? tuiTheme,
bool? tuiClassic,
StatusLineConfig? statusLine,
LinksConfig? links,
bool? streamThinking,
AutoUpdateMode? autoUpdate,
}) {
return CliConfig(
providerKind: providerKind ?? this.providerKind,
modelId: modelId ?? this.modelId,
baseUrl: baseUrl ?? this.baseUrl,
mode: mode ?? this.mode,
approvalMode: approvalMode ?? this.approvalMode,
allowedTools: allowedTools ?? this.allowedTools,
promptOverrides: promptOverrides ?? this.promptOverrides,
modelRoles: modelRoles ?? this.modelRoles,
ttsr: ttsr ?? this.ttsr,
contextWindowCap: contextWindowCap ?? this.contextWindowCap,
stuckTool: stuckTool ?? this.stuckTool,
agentLoadMode: agentLoadMode ?? this.agentLoadMode,
customProviders: customProviders ?? this.customProviders,
models: models ?? this.models,
mcp: mcp ?? this.mcp,
a2a: a2a ?? this.a2a,
providerTimeouts: providerTimeouts ?? this.providerTimeouts,
skillsAccess: skillsAccess ?? this.skillsAccess,
skillsDisableShellExecution:
skillsDisableShellExecution ?? this.skillsDisableShellExecution,
skillsLiveRediscovery:
skillsLiveRediscovery ?? this.skillsLiveRediscovery,
skillToggles: skillToggles ?? this.skillToggles,
memory: memory ?? this.memory,
fabric: fabric ?? this.fabric,
cube: cube ?? this.cube,
tools: tools ?? this.tools,
redact: redact ?? this.redact,
spills: spills ?? this.spills,
compactionEngine: compactionEngine ?? this.compactionEngine,
compactionJudgeBudgetSeconds:
compactionJudgeBudgetSeconds ?? this.compactionJudgeBudgetSeconds,
wireDump: wireDump ?? this.wireDump,
images: images ?? this.images,
agentMode: agentMode ?? this.agentMode,
misuseBreaker: misuseBreaker ?? this.misuseBreaker,
subagents: subagents ?? this.subagents,
waiting: waiting ?? this.waiting,
jobs: jobs ?? this.jobs,
headless: headless ?? this.headless,
powerSleepPrevention: powerSleepPrevention ?? this.powerSleepPrevention,
powerHold: powerHold ?? this.powerHold,
quota: quota ?? this.quota,
tuiTheme: tuiTheme ?? this.tuiTheme,
tuiClassic: tuiClassic ?? this.tuiClassic,
statusLine: statusLine ?? this.statusLine,
links: links ?? this.links,
streamThinking: streamThinking ?? this.streamThinking,
autoUpdate: autoUpdate ?? this.autoUpdate,
);
}