Download src/services/tips/tipScheduler.ts from chenbhao/codev: direct link, hf CLI and curl.
- Browser
- Download file 1.66 kB
-
https://huggingface.co/chenbhao/codev/resolve/afbc7edaae4e6bb0102ba024b49ce8be89d2264c/src/services/tips/tipScheduler.ts
- Command line
-
hf download hf://chenbhao/codev@afbc7edaae4e6bb0102ba024b49ce8be89d2264c/src/services/tips/tipScheduler.ts
-
curl -L -o tipScheduler.ts https://huggingface.co/chenbhao/codev/resolve/afbc7edaae4e6bb0102ba024b49ce8be89d2264c/src/services/tips/tipScheduler.ts
1.66 kB
| import { getSettings_DEPRECATED } from '../../utils/settings/settings.js' | |
| import { | |
| type AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS, | |
| logEvent, | |
| } from '../analytics/index.js' | |
| import { getSessionsSinceLastShown, recordTipShown } from './tipHistory.js' | |
| import { getRelevantTips } from './tipRegistry.js' | |
| import type { Tip, TipContext } from './types.js' | |
| export function selectTipWithLongestTimeSinceShown( | |
| availableTips: Tip[], | |
| ): Tip | undefined { | |
| if (availableTips.length === 0) { | |
| return undefined | |
| } | |
| if (availableTips.length === 1) { | |
| return availableTips[0] | |
| } | |
| // Sort tips by sessions since last shown (descending) and take the first one | |
| // This is the tip that hasn't been shown for the longest time | |
| const tipsWithSessions = availableTips.map(tip => ({ | |
| tip, | |
| sessions: getSessionsSinceLastShown(tip.id), | |
| })) | |
| tipsWithSessions.sort((a, b) => b.sessions - a.sessions) | |
| return tipsWithSessions[0]?.tip | |
| } | |
| export async function getTipToShowOnSpinner( | |
| context?: TipContext, | |
| ): Promise<Tip | undefined> { | |
| // Check if tips are disabled (default to true if not set) | |
| if (getSettings_DEPRECATED().spinnerTipsEnabled === false) { | |
| return undefined | |
| } | |
| const tips = await getRelevantTips(context) | |
| if (tips.length === 0) { | |
| return undefined | |
| } | |
| return selectTipWithLongestTimeSinceShown(tips) | |
| } | |
| export function recordShownTip(tip: Tip): void { | |
| // Record in history | |
| recordTipShown(tip.id) | |
| // Log event for analytics | |
| logEvent('tengu_tip_shown', { | |
| tipIdLength: | |
| tip.id as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS, | |
| cooldownSessions: tip.cooldownSessions, | |
| }) | |
| } | |