from tools.anki.client import anki_request
async def get_deck_stats(deck_name: str = "Default") -> dict:
"""
Get statistics for a deck including due cards count.
Args:
deck_name: Name of the deck to get stats for
Returns:
Dict with new_count, learn_count, review_count
"""
# Verify deck exists
decks = await anki_request("deckNames")
if deck_name not in decks:
raise Exception(f"Deck '{deck_name}' not found")
# Use search queries to count cards (more reliable than getDeckStats)
new_cards = await anki_request("findCards", query=f'"deck:{deck_name}" is:new')
due_cards = await anki_request("findCards", query=f'"deck:{deck_name}" is:due')
all_cards = await anki_request("findCards", query=f'"deck:{deck_name}"')
return {
"deck_name": deck_name,
"new_count": len(new_cards),
"due_count": len(due_cards),
"total_in_deck": len(all_cards),
}