39343-vm/ai-voice-model/tools-arcade.ts
2026-03-27 12:21:43 +00:00

34 lines
1.1 KiB
TypeScript

import { FunctionDeclaration, Type } from '@google/genai';
import { StorageService } from '../services/storageService';
export const ARCADE_TOOLS: FunctionDeclaration[] = [
{
name: 'check_leaderboard_rank',
parameters: {
type: Type.OBJECT,
description: 'Checks the top ranking user on the leaderboard.',
properties: {
game: { type: Type.STRING, enum: ['points', 'danphe', 'speed', 'memory', 'attention'], description: 'Game category (optional, defaults to global points).' }
}
}
}
];
export const executeArcadeTool = async (name: string, args: any, navigate: (path: string) => void) => {
if (name === 'check_leaderboard_rank') {
const game = args.game || 'points';
const leaders = await StorageService.getLeaderboard(1, game);
if (leaders.length > 0) {
const top = leaders[0];
let score = 0;
if (game === 'points') score = top.points;
else score = (top.highScores as any)?.[game] || 0;
return { result: `The current leader for ${game} is ${top.name} with ${score} points.` };
}
return { result: "Leaderboard is currently empty." };
}
return null;
};