diff --git a/src/activate/registerCodeActions.ts b/src/activate/registerCodeActions.ts index 31f474442d3..88e8e218f43 100644 --- a/src/activate/registerCodeActions.ts +++ b/src/activate/registerCodeActions.ts @@ -3,6 +3,7 @@ import * as vscode from "vscode" import { ACTION_NAMES, COMMAND_IDS } from "../core/CodeActionProvider" import { EditorUtils } from "../core/EditorUtils" import { ClineProvider } from "../core/webview/ClineProvider" +import { telemetryService } from "../services/telemetry/TelemetryService" export const registerCodeActions = (context: vscode.ExtensionContext) => { registerCodeActionPair( diff --git a/src/core/webview/ClineProvider.ts b/src/core/webview/ClineProvider.ts index 2353dff490c..3184a08f5af 100644 --- a/src/core/webview/ClineProvider.ts +++ b/src/core/webview/ClineProvider.ts @@ -269,6 +269,9 @@ export class ClineProvider extends EventEmitter implements promptType: keyof typeof ACTION_NAMES, params: Record, ): Promise { + // Capture telemetry for code action usage + telemetryService.captureCodeActionUsed(promptType) + const visibleProvider = await ClineProvider.getInstance() if (!visibleProvider) { @@ -302,6 +305,8 @@ export class ClineProvider extends EventEmitter implements promptType: "TERMINAL_ADD_TO_CONTEXT" | "TERMINAL_FIX" | "TERMINAL_EXPLAIN", params: Record, ): Promise { + // Capture telemetry for terminal action usage + telemetryService.captureCodeActionUsed(promptType) const visibleProvider = await ClineProvider.getInstance() if (!visibleProvider) { return diff --git a/src/services/telemetry/TelemetryService.ts b/src/services/telemetry/TelemetryService.ts index 2bd62fd9e84..4a61bebfff8 100644 --- a/src/services/telemetry/TelemetryService.ts +++ b/src/services/telemetry/TelemetryService.ts @@ -27,6 +27,7 @@ class PostHogClient { CHECKPOINT_CREATED: "Checkpoint Created", CHECKPOINT_RESTORED: "Checkpoint Restored", CHECKPOINT_DIFFED: "Checkpoint Diffed", + CODE_ACTION_USED: "Code Action Used", }, ERRORS: { SCHEMA_VALIDATION_ERROR: "Schema Validation Error", @@ -268,6 +269,12 @@ class TelemetryService { this.captureEvent(PostHogClient.EVENTS.TASK.CHECKPOINT_RESTORED, { taskId }) } + public captureCodeActionUsed(actionType: string): void { + this.captureEvent(PostHogClient.EVENTS.TASK.CODE_ACTION_USED, { + actionType, + }) + } + public captureSchemaValidationError({ schemaName, error }: { schemaName: string; error: ZodError }): void { this.captureEvent(PostHogClient.EVENTS.ERRORS.SCHEMA_VALIDATION_ERROR, { schemaName,