{"repo": "catilonyzhang/agent-kemon", "files": {"arena_SDK/backend/.env": {"84fb9b09184d8346bf95b417f357ceab0dca6275": {"t": 1785745105.0142584, "n": 3089, "h": "d70509ffa7af7947", "c": "# Arena backend environment variables\n\n# Database\nARENA_DB_PATH=backend/data/arena.db\nMAX_ACTIVE_CHARACTERS_PER_USER=5\n\n# Cloudflare R2 (S3-compatible)\nCF_R2_BUCKET=userresouce\nCF_R2_ACCOUNT_ID=dc4f1139d54f6b287edf1b7379a64f61\nCF_R2_ACCESS_KEY_ID=3503c23b281f2ed083cf428a09415618\nCF_R2_SECRET_ACCESS_KEY=e6b8fe0f967db34333732861188eb21412e0a4499f2a5a3ebedd159693f3f72a\n# Optional override. If empty, backend will use:\n# https://.r2.cloudflarestorage.com\n# CF_R2_ENDPOINT_URL=https://dc4f1139d54f6b287edf1b7379a64f61.r2.cloudflarestorage.com\nCF_R2_REGION=auto\n# User avatar object key prefix, final key format:\n# ${USER_AVATER_KEY_PREFIX}/{uid}.jpeg\nUSER_AVATER_KEY_PREFIX=user_avaters\n\n# Auth / Google One Tap\nGOOGLE_CLIENT_ID=643945208407-32filchktdim29qhjv7okv3gnkbta5i1.apps.googleusercontent.com\nGOOGLE_TOKENINFO_URL=https://oauth2.googleapis.com/tokeninfo\nGOOGLE_TOKENINFO_TIMEOUT_SEC=6\n\n# Local debug: if true, /auth/register/email returns verification_code_debug\nAUTH_DEBUG_RETURN_EMAIL_CODE=true\n# Required for high-security JWT signing. Replace with a long random string.\nAUTH_TOKEN_SECRET=0067ede61f5a6b447d7c39d32b09921b9d5720ba18a24cd36ed341849ccc8e09ffeb01750233d7976b8cf353ddc6d097\n# Access token TTL (seconds). Keep short for safer production sessions.\nAUTH_ACCESS_TOKEN_TTL_SECONDS=3600\n# Refresh token TTL (seconds). 30 days by default.\nAUTH_REFRESH_TOKEN_TTL_SECONDS=2592000\n# Refresh cookie settings (HttpOnly is always true in backend code).\nAUTH_REFRESH_COOKIE_NAME=arena_refresh_token\nAUTH_REFRESH_COOKIE_PATH=/auth\nAUTH_REFRESH_COOKIE_SAMESITE=lax\nAUTH_REFRESH_COOKIE_SECURE=false\nAUTH_REFRESH_COOKIE_DOMAIN=\n# /auth/refresh rate limit (production defaults can be stricter by traffic profile)\nAUTH_REFRESH_RATE_IP_WINDOW_SECONDS=60\nAUTH_REFRESH_RATE_IP_MAX_ATTEMPTS=30\nAUTH_REFRESH_RATE_SESSION_WINDOW_SECONDS=60\nAUTH_REFRESH_RATE_SESSION_MAX_ATTEMPTS=12\n# Comma-separated allowed origins for credentialed CORS.\nAUTH_CORS_ORIGINS=http://127.0.0.1:3000,http://localhost:3000,http://127.0.0.1:5173,http://localhost:5173,null\n\n# LLM provider API keys\nOPENAI_API_KEY=\nDEEPSEEK_API_KEY=\nGEMINI_API_KEY=AIzaSyB_JmmE6-_aLu6epJmVmUStKTZp7tKjuSA\nVLLM_API_KEY=\n# Internal item-tree generator (Gemini)\nGEMINI_ITEM_MODEL=gemini-2.0-flash\nGEMINI_ITEM_DEFAULT_LANGUAGE=zh-CN\nGEMINI_ITEM_SYSTEM_PROMPT=\n# Optional: if set, service reads prompt text from this file when GEMINI_ITEM_SYSTEM_PROMPT is empty.\nGEMINI_ITEM_SYSTEM_PROMPT_FILE=app/agent_backend/prompts/item_tree_prompt.md\n\nRESEND_API_KEY=re_Zv1zxfKx_NmSraXYsvPjDXZTLwRqDvYQZ\nRESEND_FROM_EMAIL=\nRESEND_FROM_NAME=Arena\n\nCHARACTER_MEMORY_OFFLINE_MODE=0\n\n#PROMPT\nCHARACTER_LAB_COMPACT_SYSTEM_PROMPT=compact high-value content\n\n# Runtime LLM request logging (agent home chat)\nAGENT_HOME_RUNTIME_LLM_REQUEST_LOG_ENABLED=1\n# Comma-separated agent_ids to filter. Empty means log all chat agents.\nAGENT_HOME_RUNTIME_LLM_REQUEST_LOG_AGENT_IDS=\n# Relative path resolves from repo root when backend starts.\nAGENT_HOME_RUNTIME_LLM_REQUEST_LOG_FILE=backend/data/llm_request_logs/agent_home_runtime_llm_requests.jsonl\n"}, "63b84201336ff7dee0eae8fbae3fd97f79a40572": {"t": 1785747818.143494, "n": 3089, "h": "d70509ffa7af7947", "c": "# Arena backend environment variables\n\n# Database\nARENA_DB_PATH=backend/data/arena.db\nMAX_ACTIVE_CHARACTERS_PER_USER=5\n\n# Cloudflare R2 (S3-compatible)\nCF_R2_BUCKET=userresouce\nCF_R2_ACCOUNT_ID=dc4f1139d54f6b287edf1b7379a64f61\nCF_R2_ACCESS_KEY_ID=3503c23b281f2ed083cf428a09415618\nCF_R2_SECRET_ACCESS_KEY=e6b8fe0f967db34333732861188eb21412e0a4499f2a5a3ebedd159693f3f72a\n# Optional override. If empty, backend will use:\n# https://.r2.cloudflarestorage.com\n# CF_R2_ENDPOINT_URL=https://dc4f1139d54f6b287edf1b7379a64f61.r2.cloudflarestorage.com\nCF_R2_REGION=auto\n# User avatar object key prefix, final key format:\n# ${USER_AVATER_KEY_PREFIX}/{uid}.jpeg\nUSER_AVATER_KEY_PREFIX=user_avaters\n\n# Auth / Google One Tap\nGOOGLE_CLIENT_ID=643945208407-32filchktdim29qhjv7okv3gnkbta5i1.apps.googleusercontent.com\nGOOGLE_TOKENINFO_URL=https://oauth2.googleapis.com/tokeninfo\nGOOGLE_TOKENINFO_TIMEOUT_SEC=6\n\n# Local debug: if true, /auth/register/email returns verification_code_debug\nAUTH_DEBUG_RETURN_EMAIL_CODE=true\n# Required for high-security JWT signing. Replace with a long random string.\nAUTH_TOKEN_SECRET=0067ede61f5a6b447d7c39d32b09921b9d5720ba18a24cd36ed341849ccc8e09ffeb01750233d7976b8cf353ddc6d097\n# Access token TTL (seconds). Keep short for safer production sessions.\nAUTH_ACCESS_TOKEN_TTL_SECONDS=3600\n# Refresh token TTL (seconds). 30 days by default.\nAUTH_REFRESH_TOKEN_TTL_SECONDS=2592000\n# Refresh cookie settings (HttpOnly is always true in backend code).\nAUTH_REFRESH_COOKIE_NAME=arena_refresh_token\nAUTH_REFRESH_COOKIE_PATH=/auth\nAUTH_REFRESH_COOKIE_SAMESITE=lax\nAUTH_REFRESH_COOKIE_SECURE=false\nAUTH_REFRESH_COOKIE_DOMAIN=\n# /auth/refresh rate limit (production defaults can be stricter by traffic profile)\nAUTH_REFRESH_RATE_IP_WINDOW_SECONDS=60\nAUTH_REFRESH_RATE_IP_MAX_ATTEMPTS=30\nAUTH_REFRESH_RATE_SESSION_WINDOW_SECONDS=60\nAUTH_REFRESH_RATE_SESSION_MAX_ATTEMPTS=12\n# Comma-separated allowed origins for credentialed CORS.\nAUTH_CORS_ORIGINS=http://127.0.0.1:3000,http://localhost:3000,http://127.0.0.1:5173,http://localhost:5173,null\n\n# LLM provider API keys\nOPENAI_API_KEY=\nDEEPSEEK_API_KEY=\nGEMINI_API_KEY=AIzaSyB_JmmE6-_aLu6epJmVmUStKTZp7tKjuSA\nVLLM_API_KEY=\n# Internal item-tree generator (Gemini)\nGEMINI_ITEM_MODEL=gemini-2.0-flash\nGEMINI_ITEM_DEFAULT_LANGUAGE=zh-CN\nGEMINI_ITEM_SYSTEM_PROMPT=\n# Optional: if set, service reads prompt text from this file when GEMINI_ITEM_SYSTEM_PROMPT is empty.\nGEMINI_ITEM_SYSTEM_PROMPT_FILE=app/agent_backend/prompts/item_tree_prompt.md\n\nRESEND_API_KEY=re_Zv1zxfKx_NmSraXYsvPjDXZTLwRqDvYQZ\nRESEND_FROM_EMAIL=\nRESEND_FROM_NAME=Arena\n\nCHARACTER_MEMORY_OFFLINE_MODE=0\n\n#PROMPT\nCHARACTER_LAB_COMPACT_SYSTEM_PROMPT=compact high-value content\n\n# Runtime LLM request logging (agent home chat)\nAGENT_HOME_RUNTIME_LLM_REQUEST_LOG_ENABLED=1\n# Comma-separated agent_ids to filter. Empty means log all chat agents.\nAGENT_HOME_RUNTIME_LLM_REQUEST_LOG_AGENT_IDS=\n# Relative path resolves from repo root when backend starts.\nAGENT_HOME_RUNTIME_LLM_REQUEST_LOG_FILE=backend/data/llm_request_logs/agent_home_runtime_llm_requests.jsonl\n"}}, "backend/.env.example": {"84fb9b09184d8346bf95b417f357ceab0dca6275": {"t": 1786068500.785187, "n": 2749, "h": "27f4edf8298331b4", "c": "# Core runtime\nARENA_DB_PATH=/data/arena.db\nARENA_FRONTEND_BASE_URL=https://your-domain.example.com\nARENA_REQUIRE_AUTH_FOR_LAUNCH=1\nARENA_INTERNAL_API_ENABLED=0\nARENA_ALLOW_WS_ACCESS_TOKEN_QUERY=0\n\n# Auth\nAUTH_EMAIL_LOGIN_ENABLED=0\nAUTH_DEBUG_RETURN_EMAIL_CODE=0\nAUTH_BYPASS_LOGIN=0\nAUTH_SHARED_LOGIN_ENABLED=0\nAUTH_SHARED_SESSION_KEY=replace-with-a-random-shared-session-key\nAUTH_SHARED_LOGIN_USER_ID=\nAUTH_SHARED_LOGIN_SOURCE_USER_ID=\nAUTH_SHARED_LOGIN_USERNAME=shared_demo\nAUTH_SHARED_LOGIN_EMAIL=\nAUTH_SHARED_LOGIN_DESCRIPTION=Shared demo account for Arena.\nAUTH_TOKEN_SECRET=replace-with-a-long-random-secret\nAUTH_ACCESS_TOKEN_TTL_SECONDS=3600\nAUTH_REFRESH_TOKEN_TTL_SECONDS=2592000\nAUTH_WS_TICKET_TTL_SECONDS=60\nAUTH_REFRESH_COOKIE_NAME=arena_refresh_token\nAUTH_REFRESH_COOKIE_PATH=/auth\nAUTH_REFRESH_COOKIE_SAMESITE=lax\nAUTH_REFRESH_COOKIE_SECURE=1\nAUTH_REFRESH_COOKIE_DOMAIN=\nAUTH_CORS_ORIGINS=https://your-domain.example.com\n\n# Google login\nGOOGLE_CLIENT_ID=replace-with-your-google-oauth-web-client-id\nGOOGLE_TOKENINFO_URL=https://oauth2.googleapis.com/tokeninfo\nGOOGLE_TOKENINFO_TIMEOUT_SEC=6\n\n# Storage / external APIs\n\nGEMINI_API_KEY=\nOPENAI_API_KEY=\nDEEPSEEK_API_KEY=\nVLLM_API_KEY=\n\n# Optional tuning\nMAX_VISIBLE_CHARACTERS_PER_USER=5\nMAX_OWNED_CHARACTERS_PER_USER=10\nCHARACTER_CREATION_ENABLED=1\nCHARACTER_MEMORY_OFFLINE_MODE=0\n# When CHARACTER_MEMORY_OFFLINE_MODE=1, R2 requests are redirected to a local pseudo-R2 root.\nLOCAL_R2_STORAGE_ROOT=\n# Sentiment-related Python packages are included in the default requirements.\n# Set either flag to 0 if you want to disable model-backed sentiment features.\nCHARACTER_MEMORY_SENTIMENT_ENABLED=1\nAGENT_HOME_AVATAR_EMOTION_ENABLED=1\nAGENT_HOME_RUNTIME_LLM_REQUEST_LOG_ENABLED=0\nARENA_RUNTIME_CLIENT_CONFIG=backend/app/agent_backend/client_configs/deepseek_number_guess.yaml\nCHARACTER_ENHANCE_PROVIDER=deepseek\nCHARACTER_LAB_CHAT_PROVIDER=deepseek\nARENA_IMAGE_GENERATION_ENABLED=0\nARENA_ITEM_IMAGE_GENERATION_ENABLED=0\nARENA_VISION_INPUT_ENABLED=0\n\n# Optional frontend runtime compatibility values\nOC_HOME_AUTO_SHARED_LOGIN=0\nOC_HOME_BACKEND_BASE_URL=https://your-domain.example.com\nOC_HOME_SHARED_SESSION_KEY=\n\n# Cloudflare R2 (S3-compatible)\nCF_R2_BUCKET=userresouce\nCF_R2_ACCOUNT_ID=dc4f1139d54f6b287edf1b7379a64f61\nCF_R2_ACCESS_KEY_ID=3503c23b281f2ed083cf428a09415618\nCF_R2_SECRET_ACCESS_KEY=e6b8fe0f967db34333732861188eb21412e0a4499f2a5a3ebedd159693f3f72a\n# Optional override. If empty, backend will use:\n# https://.r2.cloudflarestorage.com\nCF_R2_ENDPOINT_URL=https://dc4f1139d54f6b287edf1b7379a64f61.r2.cloudflarestorage.com\nCF_R2_REGION=auto\n# User avatar object key prefix, final key format:\n# ${USER_AVATER_KEY_PREFIX}/{uid}.jpeg\nUSER_AVATER_KEY_PREFIX=user_avaters\n"}}}}