summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/hooks/slashCommandProcessor.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src/ui/hooks/slashCommandProcessor.ts')
-rw-r--r--packages/cli/src/ui/hooks/slashCommandProcessor.ts15
1 files changed, 15 insertions, 0 deletions
diff --git a/packages/cli/src/ui/hooks/slashCommandProcessor.ts b/packages/cli/src/ui/hooks/slashCommandProcessor.ts
index be32de11..e315ba97 100644
--- a/packages/cli/src/ui/hooks/slashCommandProcessor.ts
+++ b/packages/cli/src/ui/hooks/slashCommandProcessor.ts
@@ -13,6 +13,8 @@ import {
Config,
GitService,
Logger,
+ logSlashCommand,
+ SlashCommandEvent,
ToolConfirmationOutcome,
} from '@google/gemini-cli-core';
import { useSessionStats } from '../contexts/SessionContext.js';
@@ -233,6 +235,7 @@ export const useSlashCommandProcessor = (
let currentCommands = commands;
let commandToExecute: SlashCommand | undefined;
let pathIndex = 0;
+ const canonicalPath: string[] = [];
for (const part of commandPath) {
// TODO: For better performance and architectural clarity, this two-pass
@@ -253,6 +256,7 @@ export const useSlashCommandProcessor = (
if (foundCommand) {
commandToExecute = foundCommand;
+ canonicalPath.push(foundCommand.name);
pathIndex++;
if (foundCommand.subCommands) {
currentCommands = foundCommand.subCommands;
@@ -268,6 +272,17 @@ export const useSlashCommandProcessor = (
const args = parts.slice(pathIndex).join(' ');
if (commandToExecute.action) {
+ if (config) {
+ const resolvedCommandPath = canonicalPath;
+ const event = new SlashCommandEvent(
+ resolvedCommandPath[0],
+ resolvedCommandPath.length > 1
+ ? resolvedCommandPath.slice(1).join(' ')
+ : undefined,
+ );
+ logSlashCommand(config, event);
+ }
+
const fullCommandContext: CommandContext = {
...commandContext,
invocation: {