feat(telemetry): add keychain availability and token storage metrics (#18971)

This commit is contained in:
Abhi
2026-02-18 00:11:38 +09:00
committed by GitHub
parent bbf6800778
commit bf9ca33c18
13 changed files with 388 additions and 8 deletions

View File

@@ -9,6 +9,10 @@ import type { AgentDefinition } from '../agents/types.js';
import type { McpClient } from '../tools/mcp-client.js';
import type { ExtensionEvents } from './extensionLoader.js';
import type { EditorType } from './editor.js';
import type {
TokenStorageInitializationEvent,
KeychainAvailabilityEvent,
} from '../telemetry/types.js';
/**
* Defines the severity level for user-facing feedback.
@@ -168,6 +172,8 @@ export enum CoreEvent {
EditorSelected = 'editor-selected',
SlashCommandConflicts = 'slash-command-conflicts',
QuotaChanged = 'quota-changed',
TelemetryKeychainAvailability = 'telemetry-keychain-availability',
TelemetryTokenStorageType = 'telemetry-token-storage-type',
}
/**
@@ -198,6 +204,8 @@ export interface CoreEvents extends ExtensionEvents {
[CoreEvent.RequestEditorSelection]: never[];
[CoreEvent.EditorSelected]: [EditorSelectedPayload];
[CoreEvent.SlashCommandConflicts]: [SlashCommandConflictsPayload];
[CoreEvent.TelemetryKeychainAvailability]: [KeychainAvailabilityEvent];
[CoreEvent.TelemetryTokenStorageType]: [TokenStorageInitializationEvent];
}
type EventBacklogItem = {
@@ -367,6 +375,14 @@ export class CoreEventEmitter extends EventEmitter<CoreEvents> {
);
}
}
emitTelemetryKeychainAvailability(event: KeychainAvailabilityEvent): void {
this._emitOrQueue(CoreEvent.TelemetryKeychainAvailability, event);
}
emitTelemetryTokenStorageType(event: TokenStorageInitializationEvent): void {
this._emitOrQueue(CoreEvent.TelemetryTokenStorageType, event);
}
}
export const coreEvents = new CoreEventEmitter();