-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathCliServiceCollectionExtensions.cs
More file actions
128 lines (123 loc) · 8.83 KB
/
Copy pathCliServiceCollectionExtensions.cs
File metadata and controls
128 lines (123 loc) · 8.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
using Microsoft.Extensions.DependencyInjection;
using SharpClaw.Code.Acp;
using SharpClaw.Code.Commands;
using SharpClaw.Code.Commands.Options;
using SharpClaw.Testing.Cli;
namespace SharpClaw.Code.Cli.Composition;
/// <summary>
/// Registers the CLI command surface and terminal-facing services.
/// </summary>
public static class CliServiceCollectionExtensions
{
/// <summary>
/// Adds the SharpClaw CLI vertical slice services.
/// </summary>
/// <param name="services">The service collection to update.</param>
/// <returns>The updated service collection.</returns>
public static IServiceCollection AddSharpClawCli(this IServiceCollection services)
{
services.AddSharpClawAcp();
services.AddSharpClawTestingCli();
services.AddSingleton<GlobalCliOptions>();
services.AddSingleton<ReplInteractionState>();
services.AddSingleton<CliCommandFactory>();
services.AddSingleton<SlashCommandParser>();
services.AddSingleton<OutputRendererDispatcher>();
services.AddSingleton<ICliInvocationEnvironment, Terminal.ConsoleInvocationEnvironment>();
services.AddSingleton<PromptInvocationService>();
services.AddSingleton<ICommandRegistry, CommandRegistry>();
services.AddSingleton<IReplHost, ReplHost>();
services.AddSingleton<IReplTerminal, Terminal.SpectreReplTerminal>();
services.AddSingleton<ReplCommandHandler>();
services.AddSingleton<SessionCommandHandler>();
services.AddSingleton<PermissionsCommandHandler>();
services.AddSingleton<AuthCommandHandler>();
services.AddSingleton<InitCommandHandler>();
services.AddSingleton<ResearchCommandHandler>();
services.AddSingleton<ScheduleCommandHandler>();
services.AddSingleton<EvolutionCommandHandler>();
services.AddSingleton<ModelsCommandHandler>();
services.AddSingleton<AgentsCommandHandler>();
services.AddSingleton<ICommandHandler, PromptCommandHandler>();
services.AddSingleton<ICommandHandler, StatusCommandHandler>();
services.AddSingleton<ICommandHandler, DoctorCommandHandler>();
services.AddSingleton<ICommandHandler>(serviceProvider => serviceProvider.GetRequiredService<SessionCommandHandler>());
services.AddSingleton<ICommandHandler>(serviceProvider => serviceProvider.GetRequiredService<PermissionsCommandHandler>());
services.AddSingleton<ICommandHandler>(serviceProvider => serviceProvider.GetRequiredService<ModelsCommandHandler>());
services.AddSingleton<ICommandHandler>(serviceProvider => serviceProvider.GetRequiredService<AuthCommandHandler>());
services.AddSingleton<ICommandHandler>(serviceProvider => serviceProvider.GetRequiredService<InitCommandHandler>());
services.AddSingleton<ICommandHandler>(serviceProvider => serviceProvider.GetRequiredService<ResearchCommandHandler>());
services.AddSingleton<ICommandHandler>(serviceProvider => serviceProvider.GetRequiredService<ScheduleCommandHandler>());
services.AddSingleton<ICommandHandler>(serviceProvider => serviceProvider.GetRequiredService<EvolutionCommandHandler>());
services.AddSingleton<ICommandHandler, UsageCommandHandler>();
services.AddSingleton<ICommandHandler, CostCommandHandler>();
services.AddSingleton<ICommandHandler, StatsCommandHandler>();
services.AddSingleton<ICommandHandler, ConnectCommandHandler>();
services.AddSingleton<ICommandHandler, IndexCommandHandler>();
services.AddSingleton<ICommandHandler, HooksCommandHandler>();
services.AddSingleton<ICommandHandler, MemoryCommandHandler>();
services.AddSingleton<ICommandHandler, SkillsCommandHandler>();
services.AddSingleton<ICommandHandler>(serviceProvider => serviceProvider.GetRequiredService<AgentsCommandHandler>());
services.AddSingleton<ICommandHandler, ExternalCommandHandler>();
services.AddSingleton<ICommandHandler, TodoCommandHandler>();
services.AddSingleton<ICommandHandler, WorkCommandHandler>();
services.AddSingleton<ICommandHandler, WorkbenchCommandHandler>();
services.AddSingleton<ICommandHandler, ShareCommandHandler>();
services.AddSingleton<ICommandHandler, UnshareCommandHandler>();
services.AddSingleton<ICommandHandler, CompactCommandHandler>();
services.AddSingleton<ICommandHandler, ServeCommandHandler>();
services.AddSingleton<ICommandHandler, CommandsCommandHandler>();
services.AddSingleton<ICommandHandler, WorktreeCommandHandler>();
services.AddSingleton<ICommandHandler, McpCommandHandler>();
services.AddSingleton<ICommandHandler, PluginsCommandHandler>();
services.AddSingleton<ICommandHandler, ToolPackagesCommandHandler>();
services.AddSingleton<ICommandHandler, VersionCommandHandler>();
services.AddSingleton<ICommandHandler, AcpCommandHandler>();
services.AddSingleton<ICommandHandler, BridgeCommandHandler>();
services.AddSingleton<ISlashCommandHandler, StatusCommandHandler>();
services.AddSingleton<ISlashCommandHandler, DoctorCommandHandler>();
services.AddSingleton<ISlashCommandHandler>(serviceProvider => serviceProvider.GetRequiredService<SessionCommandHandler>());
services.AddSingleton<ISlashCommandHandler, SessionsSlashCommandHandler>();
services.AddSingleton<ISlashCommandHandler>(serviceProvider => serviceProvider.GetRequiredService<PermissionsCommandHandler>());
services.AddSingleton<ISlashCommandHandler>(serviceProvider => serviceProvider.GetRequiredService<ModelsCommandHandler>());
services.AddSingleton<ISlashCommandHandler, ModelSlashCommandHandler>();
services.AddSingleton<ISlashCommandHandler>(serviceProvider => serviceProvider.GetRequiredService<AuthCommandHandler>());
services.AddSingleton<ISlashCommandHandler>(serviceProvider => serviceProvider.GetRequiredService<InitCommandHandler>());
services.AddSingleton<ISlashCommandHandler>(serviceProvider => serviceProvider.GetRequiredService<ResearchCommandHandler>());
services.AddSingleton<ISlashCommandHandler>(serviceProvider => serviceProvider.GetRequiredService<ScheduleCommandHandler>());
services.AddSingleton<ISlashCommandHandler>(serviceProvider => serviceProvider.GetRequiredService<EvolutionCommandHandler>());
services.AddSingleton<ISlashCommandHandler, UsageCommandHandler>();
services.AddSingleton<ISlashCommandHandler, CostCommandHandler>();
services.AddSingleton<ISlashCommandHandler, StatsCommandHandler>();
services.AddSingleton<ISlashCommandHandler, ConnectCommandHandler>();
services.AddSingleton<ISlashCommandHandler, IndexCommandHandler>();
services.AddSingleton<ISlashCommandHandler, HooksCommandHandler>();
services.AddSingleton<ISlashCommandHandler, MemoryCommandHandler>();
services.AddSingleton<ISlashCommandHandler, SkillsCommandHandler>();
services.AddSingleton<ISlashCommandHandler>(serviceProvider => serviceProvider.GetRequiredService<AgentsCommandHandler>());
services.AddSingleton<ISlashCommandHandler, TodoCommandHandler>();
services.AddSingleton<ISlashCommandHandler, WorkCommandHandler>();
services.AddSingleton<ISlashCommandHandler, WorkbenchCommandHandler>();
services.AddSingleton<ISlashCommandHandler, AgentStatusSlashCommandHandler>();
services.AddSingleton<ISlashCommandHandler, CheckpointsSlashCommandHandler>();
services.AddSingleton<ISlashCommandHandler, ShareCommandHandler>();
services.AddSingleton<ISlashCommandHandler, UnshareCommandHandler>();
services.AddSingleton<ISlashCommandHandler, CompactCommandHandler>();
services.AddSingleton<ISlashCommandHandler, ServeCommandHandler>();
services.AddSingleton<ISlashCommandHandler, CommandsCommandHandler>();
services.AddSingleton<ISlashCommandHandler, WorktreeCommandHandler>();
services.AddSingleton<ISlashCommandHandler, ModeSlashCommandHandler>();
services.AddSingleton<ISlashCommandHandler, ApprovalsSlashCommandHandler>();
services.AddSingleton<ISlashCommandHandler, EditorSlashCommandHandler>();
services.AddSingleton<ISlashCommandHandler, ExportSlashCommandHandler>();
services.AddSingleton<ISlashCommandHandler, VersionCommandHandler>();
services.AddSingleton<ISlashCommandHandler, UndoCommandHandler>();
services.AddSingleton<ISlashCommandHandler, RedoCommandHandler>();
services.AddSingleton<ISlashCommandHandler, NewSessionSlashCommandHandler>();
services.AddSingleton<ISlashCommandHandler, ResumeSlashCommandHandler>();
services.AddSingleton<ISlashCommandHandler, ClearSlashCommandHandler>();
services.AddSingleton<IOutputRenderer, Rendering.TextOutputRenderer>();
services.AddSingleton<IOutputRenderer, Rendering.JsonOutputRenderer>();
return services;
}
}