|
37 | 37 |
|
38 | 38 | from cecli import __version__, models, urls, utils |
39 | 39 | from cecli.args import get_parser |
40 | | -from cecli.coders import Coder |
| 40 | +from cecli.coders import AgentCoder, Coder |
41 | 41 | from cecli.coders.base_coder import UnknownEditFormat |
42 | 42 | from cecli.commands import Commands, SwitchCoderSignal |
43 | 43 | from cecli.deprecated_args import handle_deprecated_model_args |
@@ -1189,17 +1189,28 @@ def apply_model_overrides(model_name): |
1189 | 1189 | return await graceful_exit(coder) |
1190 | 1190 | except SwitchCoderSignal as switch: |
1191 | 1191 | coder.ok_to_warm_cache = False |
| 1192 | + |
1192 | 1193 | if hasattr(switch, "placeholder") and switch.placeholder is not None: |
1193 | 1194 | io.placeholder = switch.placeholder |
1194 | 1195 | kwargs = dict(io=io, from_coder=coder) |
1195 | 1196 | kwargs.update(switch.kwargs) |
| 1197 | + |
1196 | 1198 | if "show_announcements" in kwargs: |
1197 | 1199 | del kwargs["show_announcements"] |
1198 | 1200 | kwargs["num_cache_warming_pings"] = 0 |
1199 | 1201 | kwargs["args"] = coder.args |
| 1202 | + |
| 1203 | + if kwargs["edit_format"] != AgentCoder.edit_format and ( |
| 1204 | + coder := kwargs.get("from_coder") |
| 1205 | + ): |
| 1206 | + if coder.mcp_manager.get_server("Local"): |
| 1207 | + await coder.mcp_manager.disconnect_server("Local") |
| 1208 | + |
1200 | 1209 | coder = await Coder.create(**kwargs) |
| 1210 | + |
1201 | 1211 | if switch.kwargs.get("show_announcements") is False: |
1202 | 1212 | coder.suppress_announcements_for_next_prompt = True |
| 1213 | + |
1203 | 1214 | except SystemExit: |
1204 | 1215 | sys.settrace(None) |
1205 | 1216 | return await graceful_exit(coder) |
|
0 commit comments