"""Token management via Windows Credential Manager (keyring)."""
from __future__ import annotations
import keyring
SERVICE_NAME = "asana-mcp"
def get_pat() -> str:
"""Retrieve Asana PAT from OS credential store."""
token = keyring.get_password(SERVICE_NAME, "pat")
if not token:
raise RuntimeError(
"Asana PAT not found in credential store. "
"Run: python -c \"import keyring; keyring.set_password('asana-mcp', 'pat', input('PAT: '))\""
)
return token
def store_pat(token: str) -> None:
"""Store Asana PAT in OS credential store."""
keyring.set_password(SERVICE_NAME, "pat", token)