# Slack Socket Mode SLACK_APP_TOKEN=xapp-*** SLACK_BOT_TOKEN=xoxb-*** SLACK_API_BASE_URL=https://slack.com/api SLACK_SOCKET_OPEN_URL=apps.connections.open SLACK_INITIAL_THREAD_HISTORY_COUNT=8 SLACK_HISTORY_API_MAX_LIMIT=50 SLACK_ACTIVE_TURN_RECONCILE_INTERVAL_MS=15000 SLACK_PROGRESS_REMINDER_AFTER_MS=120000 SLACK_PROGRESS_REMINDER_REPEAT_MS=120000 # Service storage PORT=3000 SERVICE_NAME=slack-codex-broker # Optional: protects /admin/api/* when set. # BROKER_ADMIN_TOKEN=change-me DATA_ROOT=/app/.data SESSIONS_ROOT=/app/.data/sessions REPOS_ROOT=/app/.data/repos LOG_DIR=/app/.data/logs LOG_LEVEL=info LOG_RAW_SLACK_EVENTS=true LOG_RAW_CODEX_RPC=true LOG_RAW_HTTP_REQUESTS=true # Codex app-server CODEX_APP_SERVER_PORT=4590 # Optional: comma-separated MCP servers to remove from the container-specific # Codex config when they are present but not logged in there. # Main Codex runtime disables all built-in MCP servers by default ("*"). # Add names here only if you want the broker logs to show explicit intent. # CODEX_DISABLED_MCP_SERVERS=tempad_dev # Reuse host ~/.codex memory/instructions inside the container. # Use absolute paths here, not "~/.codex". # For skill symlinks like ../../.agents/... to resolve correctly, set the container # path to match the original host absolute path. # CODEX_HOST_HOME_PATH=/Users/you/.codex # CODEX_HOST_HOME_PATH_HOST=/Users/you/.codex # HOST_AGENTS_PATH_HOST=/Users/you/.agents # HOST_AGENTS_CONTAINER_PATH=/Users/you/.agents # Optional: reuse host Gemini CLI OAuth for UI work inside the container. # Only the minimal auth snapshot is copied into the container runtime home. # GEMINI_HOST_HOME_PATH=/host-gemini-home # GEMINI_HOST_HOME_PATH_HOST=/Users/you/.gemini # GEMINI_HTTP_PROXY=http://host.docker.internal:6152 # GEMINI_HTTPS_PROXY=http://host.docker.internal:6152 # GEMINI_ALL_PROXY=socks5://host.docker.internal:6153 # GitHub CLI / API # GH_TOKEN=gho_*** # GITHUB_TOKEN=${GH_TOKEN} # SSH_AUTH_SOCK_HOST=/run/host-services/ssh-auth.sock # SSH_AUTH_SOCK_CONTAINER=/ssh-agent # Auth mode A: OpenAI API key # OPENAI_API_KEY=sk-*** # Auth mode B: reuse a Codex/ChatGPT auth.json mounted into the container # CODEX_AUTH_JSON_PATH=/auth/auth.json # Optional: override docker-side helpers that need to call a host-local service. # When unset, the broker probes common host-local tempad endpoints and picks the first # healthy one (currently 4318 / 4320 on host.docker.internal). # TEMPAD_LINK_SERVICE_URL=http://host.docker.internal:4320 # Optional: live Slack E2E against an already deployed broker. # This runner posts a real @mention into a dedicated test channel and polls for the # real assistant reply. It does not start another broker instance or touch PM2. # SLACK_E2E_CHANNEL_ID=C0123456789 # SLACK_E2E_TRIGGER_USER_TOKEN=xoxp-*** or xoxc-*** # Optional: separate read token for conversations.replies/chat.getPermalink when the bot # itself is not a member of the test channel. Defaults to SLACK_E2E_TRIGGER_USER_TOKEN. # SLACK_E2E_READ_TOKEN=xoxp-*** or xoxc-*** # SLACK_E2E_TARGET_REPO=slack-codex-broker # SLACK_E2E_TARGET_FILE=src/services/slack/slack-codex-bridge.ts # SLACK_E2E_TIMEOUT_MS=180000 # SLACK_E2E_RESULT_PATH=artifacts/slack-live-e2e/result.json