shinmentakezo07
feat: add usage tracking with live throughput rates and analytics dashboard
e8f2acc
Raw
History Blame Contribute Delete
2.04 kB
"""Shared filesystem paths for Free Claude Code configuration."""
from pathlib import Path
FCC_CONFIG_DIRNAME = ".fcc"
FCC_ENV_FILENAME = ".env"
LEGACY_REPO_DIRNAME = "free-claude-code"
LEGACY_XDG_CONFIG_DIRNAME = ".config"
MESSAGING_STATE_DIRNAME = "agent_workspace"
FCC_LOGS_DIRNAME = "logs"
SERVER_LOG_FILENAME = "server.log"
CODEX_MODEL_CATALOG_FILENAME = "codex-model-catalog.json"
USAGE_FILENAME = "usage.json"
AUTH_DIRNAME = "auth"
OPENAI_AUTH_FILENAME = "openai.json"
OPENAI_AUTH_LOCK_FILENAME = "openai.lock"
def config_dir_path() -> Path:
"""Return the default user config directory."""
return Path.home() / FCC_CONFIG_DIRNAME
def managed_env_path() -> Path:
"""Return the default user-managed env file path."""
return config_dir_path() / FCC_ENV_FILENAME
def legacy_env_paths() -> tuple[Path, ...]:
"""Return legacy user env paths that can be migrated to ~/.fcc/.env."""
home = Path.home()
return (
home / LEGACY_REPO_DIRNAME / FCC_ENV_FILENAME,
home / LEGACY_XDG_CONFIG_DIRNAME / LEGACY_REPO_DIRNAME / FCC_ENV_FILENAME,
)
def messaging_state_dir_path() -> Path:
"""Return the managed messaging state directory."""
return config_dir_path() / MESSAGING_STATE_DIRNAME
def server_log_path() -> Path:
"""Return the canonical server log path."""
return config_dir_path() / FCC_LOGS_DIRNAME / SERVER_LOG_FILENAME
def codex_model_catalog_path() -> Path:
"""Return the generated Codex model catalog path."""
return config_dir_path() / CODEX_MODEL_CATALOG_FILENAME
def usage_path() -> Path:
"""Return the usage tracking ring buffer file path."""
return config_dir_path() / USAGE_FILENAME
def openai_auth_path() -> Path:
"""Return FCC's private ChatGPT credential file path."""
return config_dir_path() / AUTH_DIRNAME / OPENAI_AUTH_FILENAME
def openai_auth_lock_path() -> Path:
"""Return the cross-process lock path for ChatGPT credentials."""
return config_dir_path() / AUTH_DIRNAME / OPENAI_AUTH_LOCK_FILENAME