416
*/
417
skillContentRead(report: IAgentHostSkillContentReadReport): void {
419
>
if (!restricted || !report.name) {
420
return;
421
}
423
>
const skillStorage = report.source ?? '';
424
>
// Match the extension: the version is only reported when the (plugin) id is known, so we
425
>
// never emit a `skillExtensionVersion` without a corresponding `skillExtensionId`.
426
>
const skillExtensionVersion = report.pluginName ? (report.pluginVersion ?? '') : '';
427
>
const plaintextProps = {
428
>
skillName: report.name,
429
>
skillPath: report.path,
430
>
skillExtensionId: report.pluginName ?? '',
431
>
skillExtensionVersion,
432
>
skillStorage,
433
>
skillContentHash: contentHash,
434
>
};
435
>
restricted.sendGHTelemetryEvent('skillContentRead', {
436
>
skillNameHash: String(hash(report.name)),
437
>
skillExtensionIdHash: report.pluginName ? String(hash(report.pluginName)) : '',
438
>
skillExtensionVersion,
439
>
skillStorage,
440
>
skillContentHash: contentHash,
441
>
});
442
>
restricted.sendEnhancedGHTelemetryEvent('skillContentRead', plaintextProps);
443
>
restricted.sendInternalMSFTTelemetryEvent('skillContentRead', plaintextProps);
444
>
}
445
446
reportRepoInfo(context: IAgentHostRestrictedTelemetryContext, report: IAgentHostRepoInfoReport): void {