Something went wrong. Try again.
source dump of claude code forked from oppi.li/claude-code
Something went wrong. Try again.
1.4 kB · 39 lines
TypeScript
at main
12345678910111213141516171819202122232425262728293031323334353637383940import { getSkillToolCommands } from '../../commands.js'import { type AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS, type AnalyticsMetadata_I_VERIFIED_THIS_IS_PII_TAGGED, logEvent,} from '../../services/analytics/index.js'import { getCharBudget } from '../../tools/SkillTool/prompt.js'
/** * Logs a tengu_skill_loaded event for each skill available at session startup. * This enables analytics on which skills are available across sessions. */export async function logSkillsLoaded( cwd: string, contextWindowTokens: number,): Promise<void> { const skills = await getSkillToolCommands(cwd) const skillBudget = getCharBudget(contextWindowTokens)
for (const skill of skills) { if (skill.type !== 'prompt') continue
logEvent('tengu_skill_loaded', { // _PROTO_skill_name routes to the privileged skill_name BQ column. // Unredacted names don't go in additional_metadata. _PROTO_skill_name: skill.name as AnalyticsMetadata_I_VERIFIED_THIS_IS_PII_TAGGED, skill_source: skill.source as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS, skill_loaded_from: skill.loadedFrom as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS, skill_budget: skillBudget, ...(skill.kind && { skill_kind: skill.kind as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS, }), }) }}