* feat: refresh dashboard settings UX and Codex feature toggles Improve settings/tasks mobile layout, model effort validation by agent type, and preset models for GPT 5.5 and Opus 4.7. Store Codex fast mode and goals in config.toml with Claude fastMode session sync and updated docs for Codex 0.133. Co-authored-by: Cursor <cursoragent@cursor.com> * style: apply pre-commit formatting after dashboard settings commit Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
106 lines
5.5 KiB
Plaintext
106 lines
5.5 KiB
Plaintext
# ===== EJClaw Environment Configuration =====
|
|
# Copy this file to .env and fill in the values.
|
|
# Single unified service manages all three Discord bots in one process.
|
|
|
|
# --- Discord bots (canonical role-fixed names) ---
|
|
DISCORD_OWNER_BOT_TOKEN= # Owner bot
|
|
DISCORD_REVIEWER_BOT_TOKEN= # Reviewer bot
|
|
DISCORD_ARBITER_BOT_TOKEN= # Arbiter bot
|
|
|
|
# Old service-based token names are no longer accepted.
|
|
# Rename any existing values to the three canonical role-based keys above.
|
|
|
|
# --- Agent type configuration ---
|
|
OWNER_AGENT_TYPE=codex # codex | claude-code
|
|
REVIEWER_AGENT_TYPE=claude-code # claude-code | codex
|
|
|
|
# --- API keys ---
|
|
CLAUDE_CODE_OAUTH_TOKENS= # Canonical comma-separated Claude Code OAuth tokens (use one value for single-account too)
|
|
CLAUDE_CODE_OAUTH_TOKEN= # Legacy single-token fallback
|
|
GROQ_API_KEY= # Voice transcription (Groq Whisper, free: console.groq.com)
|
|
|
|
# --- Bot identity ---
|
|
ASSISTANT_NAME=claude # Trigger name (@claude)
|
|
|
|
# --- Claude model ---
|
|
CLAUDE_MODEL=claude-opus-4-7 # Claude model
|
|
CLAUDE_EFFORT=high # Claude effort level
|
|
CLAUDE_THINKING=adaptive # Claude thinking mode
|
|
|
|
# --- Codex model ---
|
|
CODEX_MODEL=gpt-5.5 # Codex model
|
|
CODEX_EFFORT=xhigh # Codex reasoning effort
|
|
# Codex fast mode / goals: dashboard Settings → Codex, or ~/.codex/config.toml:
|
|
# [features]
|
|
# fast_mode = true
|
|
# goals = true # /goal — opt-in, default OFF on Codex 0.133+
|
|
|
|
# --- Usage dashboard ---
|
|
STATUS_CHANNEL_ID= # Discord channel ID for live status updates
|
|
# STATUS_SHOW_ROOMS=true # Show room status in dashboard
|
|
# STATUS_SHOW_ROOM_DETAILS=false # Show detailed room info
|
|
|
|
# --- Discord image attachments ---
|
|
# Extra local directories that agents may attach from. Keep this narrow:
|
|
# prefer screenshot/output folders over /home. Comma or path-delimiter separated.
|
|
# EJCLAW_ATTACHMENT_ALLOWED_DIRS=~/Pictures/Screenshots,~/Downloads/ejclaw-images
|
|
|
|
# --- Codex warm-up (optional, disabled by default) ---
|
|
# Sends a tiny real Codex prompt only when both 5h and 7d usage are 0%, so
|
|
# reset countdown starts once after a fresh quota window. Keep disabled if
|
|
# OpenAI changes policy or starts blocking automated warm-up prompts.
|
|
# Normally only set this one line; the other knobs have conservative defaults.
|
|
# CODEX_WARMUP_ENABLED=false
|
|
# CODEX_WARMUP_PROMPT=Reply exactly OK. Do not run tools.
|
|
# CODEX_WARMUP_MODEL= # Defaults to CODEX_MODEL
|
|
# CODEX_WARMUP_INTERVAL_MS=300000 # Check every 5min
|
|
# CODEX_WARMUP_MIN_INTERVAL_MS=18300000 # Per-account minimum gap: 5h5m
|
|
# CODEX_WARMUP_STAGGER_MS=1800000 # Global gap between accounts: 30min
|
|
# CODEX_WARMUP_MAX_USAGE_PCT=0 # Only warm accounts at/below this 5h usage
|
|
# CODEX_WARMUP_MAX_D7_USAGE_PCT=0 # Only warm accounts at/below this 7d usage
|
|
# CODEX_WARMUP_MAX_CONSECUTIVE_FAILURES=2
|
|
# CODEX_WARMUP_FAILURE_COOLDOWN_MS=21600000 # Back off 6h after repeated failure
|
|
|
|
# --- Fallback provider (when Claude/Codex both unavailable) ---
|
|
# FALLBACK_ENABLED=true # Enable fallback provider
|
|
# FALLBACK_PROVIDER_NAME=kimi # Provider name for logging
|
|
# FALLBACK_BASE_URL= # OpenAI-compatible API base URL
|
|
# FALLBACK_AUTH_TOKEN= # API token for fallback provider
|
|
# FALLBACK_MODEL=kimi-k2.5 # Fallback model
|
|
# FALLBACK_SMALL_MODEL=kimi-k2.5 # Fallback small model
|
|
# FALLBACK_COOLDOWN_MS=600000 # Cooldown between fallback attempts (10min)
|
|
|
|
# --- Per-role model overrides (paired rooms) ---
|
|
# Override global CLAUDE_MODEL/CODEX_MODEL per role.
|
|
# Model is injected based on each role's agent type (claude-code → CLAUDE_MODEL, codex → CODEX_MODEL).
|
|
# OWNER_MODEL=gpt-5.5 # Owner model override
|
|
# OWNER_EFFORT=xhigh # Owner effort override
|
|
# OWNER_FALLBACK_ENABLED=true # Fall back to codex on Claude failure (default: true)
|
|
#
|
|
# REVIEWER_MODEL=claude-opus-4-7 # Reviewer model override
|
|
# REVIEWER_EFFORT=high # Reviewer effort override
|
|
# REVIEWER_FALLBACK_ENABLED=true # Fall back to codex on Claude failure (default: true)
|
|
#
|
|
# ARBITER_MODEL=claude-sonnet-4-6 # Arbiter model override
|
|
# ARBITER_EFFORT=high # Arbiter effort override
|
|
# ARBITER_FALLBACK_ENABLED=true # Fall back to codex on Claude failure (default: true)
|
|
|
|
# --- Mixture of Agents (MoA) ---
|
|
# Queries external API models in parallel before arbiter runs.
|
|
# Their opinions are injected into the arbiter's prompt for better judgment.
|
|
# The SDK arbiter (subscription-based, no extra cost) aggregates all perspectives.
|
|
# MOA_ENABLED=true
|
|
# MOA_REF_MODELS=kimi,glm # Comma-separated reference model names
|
|
# MOA_KIMI_MODEL=kimi-k2.6 # Kimi model
|
|
# MOA_KIMI_BASE_URL=https://api.kimi.com/coding # Kimi API endpoint
|
|
# MOA_KIMI_API_FORMAT=anthropic # Kimi Code API format
|
|
# MOA_KIMI_API_KEY=sk-kimi-xxx # Kimi API key
|
|
# MOA_GLM_MODEL=glm-5.1 # GLM model
|
|
# MOA_GLM_BASE_URL=https://open.bigmodel.cn/api/anthropic # GLM API endpoint
|
|
# MOA_GLM_API_FORMAT=anthropic # GLM Anthropic-compatible API
|
|
# MOA_GLM_API_KEY=xxx # GLM API key
|
|
|
|
# --- Advanced ---
|
|
# MAX_CONCURRENT_AGENTS=5 # Max parallel agent processes
|
|
# SESSION_COMMAND_ALLOWED_SENDERS= # Comma-separated Discord user IDs for session commands
|