IBaseDirtyChecker, IInteractiveLaunchSpecService and the LaunchSpec wrapper had one implementation and one caller each; ProcessRunnerAdapter existed only to give a static class an interface, and InstallArtifactLocator used inheritance for two constructor arguments. The external MCP container now shares its singletons through a Share<T> helper instead of 17 near-identical registrations.
16 lines
683 B
C#
16 lines
683 B
C#
namespace ClaudeDo.Worker.Planning;
|
|
|
|
// Launches the Claude CLI in a visible terminal for human-driven planning sessions.
|
|
// Not used for headless task execution (that path is ClaudeProcess, prompt over stdin)
|
|
// nor for embedded ConPTY interactive sessions (those use InteractiveLaunchSpecService).
|
|
public interface ITerminalLauncher
|
|
{
|
|
Task LaunchPlanningStartAsync(PlanningSessionStartContext ctx, CancellationToken cancellationToken);
|
|
Task LaunchPlanningResumeAsync(PlanningSessionResumeContext ctx, CancellationToken cancellationToken);
|
|
}
|
|
|
|
public sealed class TerminalLaunchException : Exception
|
|
{
|
|
public TerminalLaunchException(string message) : base(message) { }
|
|
}
|