(
sessionId: string,
workspaceId: string,
sessionState: SessionState,
parsedPrompt: ParsedPrompt,
parsedCommand: ParsedAcpSlashCommand
)
| 823 | } |
| 824 | |
| 825 | private async handleSlashCommand( |
| 826 | sessionId: string, |
| 827 | workspaceId: string, |
| 828 | sessionState: SessionState, |
| 829 | parsedPrompt: ParsedPrompt, |
| 830 | parsedCommand: ParsedAcpSlashCommand |
| 831 | ): Promise<PromptResponse> { |
| 832 | switch (parsedCommand.kind) { |
| 833 | case "invalid": |
| 834 | return this.respondToCommand(sessionId, parsedCommand.message); |
| 835 | |
| 836 | case "clear": { |
| 837 | const clearResult = await this.server.client.workspace.truncateHistory({ |
| 838 | workspaceId, |
| 839 | percentage: 1.0, |
| 840 | }); |
| 841 | if (!clearResult.success) { |
| 842 | return this.respondToCommand( |
| 843 | sessionId, |
| 844 | `Failed to clear chat history: ${clearResult.error ?? "unknown error"}` |
| 845 | ); |
| 846 | } |
| 847 | |
| 848 | return this.respondToCommand(sessionId, "Cleared chat history."); |
| 849 | } |
| 850 | |
| 851 | case "compact": { |
| 852 | const compactionPayload = this.buildCompactionPayload( |
| 853 | parsedCommand, |
| 854 | parsedPrompt, |
| 855 | sessionState |
| 856 | ); |
| 857 | |
| 858 | return this.sendWorkspaceMessageAndAwaitTurn({ |
| 859 | sessionId, |
| 860 | workspaceId, |
| 861 | message: compactionPayload.message, |
| 862 | options: compactionPayload.options, |
| 863 | }); |
| 864 | } |
| 865 | |
| 866 | case "skill": { |
| 867 | const options: SendMessageOptions = { |
| 868 | model: sessionState.aiSettings.model, |
| 869 | thinkingLevel: sessionState.aiSettings.thinkingLevel, |
| 870 | agentId: sessionState.agentId, |
| 871 | muxMetadata: buildAgentSkillMetadata({ |
| 872 | rawCommand: parsedCommand.rawCommand, |
| 873 | commandPrefix: parsedCommand.commandPrefix, |
| 874 | skillName: parsedCommand.descriptor.name, |
| 875 | scope: parsedCommand.descriptor.scope, |
| 876 | }), |
| 877 | }; |
| 878 | |
| 879 | return this.sendWorkspaceMessageAndAwaitTurn({ |
| 880 | sessionId, |
| 881 | workspaceId, |
| 882 | message: parsedCommand.formattedMessage, |
no test coverage detected