feat(telegram): load config from telegram.toml
This commit is contained in:
@@ -9,7 +9,14 @@ import time
|
||||
from queue import Queue, Empty
|
||||
from typing import Any, Dict, List, Optional, Tuple
|
||||
|
||||
from bridge_common import TelegramClient, RouteStore, parse_allowed_chat_ids
|
||||
from bridge_common import (
|
||||
TelegramClient,
|
||||
RouteStore,
|
||||
config_get,
|
||||
load_telegram_config,
|
||||
parse_allowed_chat_ids,
|
||||
parse_chat_id_list,
|
||||
)
|
||||
|
||||
MCP_PROTOCOL_VERSION = "2025-06-18"
|
||||
|
||||
@@ -244,18 +251,35 @@ class MCPStdioClient:
|
||||
|
||||
|
||||
def main() -> None:
|
||||
token = os.environ.get("TELEGRAM_BOT_TOKEN", "")
|
||||
db_path = os.environ.get("BRIDGE_DB", "./bridge_routes.sqlite3")
|
||||
config = load_telegram_config()
|
||||
token = os.environ.get("TELEGRAM_BOT_TOKEN") or config_get(config, "bot_token") or ""
|
||||
db_path = os.environ.get("BRIDGE_DB") or config_get(config, "bridge_db") or "./bridge_routes.sqlite3"
|
||||
allowed = parse_allowed_chat_ids(os.environ.get("ALLOWED_CHAT_IDS", ""))
|
||||
if allowed is None:
|
||||
allowed = parse_chat_id_list(config_get(config, "allowed_chat_ids"))
|
||||
|
||||
# How to start Codex MCP server:
|
||||
# default: "codex mcp-server" (can also be "npx -y codex mcp-server")
|
||||
mcp_cmd = shlex.split(os.environ.get("CODEX_MCP_CMD", "codex mcp-server"))
|
||||
raw_mcp_cmd = os.environ.get("CODEX_MCP_CMD")
|
||||
if raw_mcp_cmd is None:
|
||||
raw_mcp_cmd = config_get(config, "codex_mcp_cmd") or "codex mcp-server"
|
||||
if isinstance(raw_mcp_cmd, list):
|
||||
mcp_cmd = [str(v) for v in raw_mcp_cmd]
|
||||
else:
|
||||
mcp_cmd = shlex.split(str(raw_mcp_cmd))
|
||||
|
||||
# Optional defaults for tool args (you can override as you like)
|
||||
default_cwd = os.environ.get("CODEX_WORKSPACE") # used as tool 'cwd'
|
||||
default_sandbox = os.environ.get("CODEX_SANDBOX", "workspace-write")
|
||||
default_approval = os.environ.get("CODEX_APPROVAL_POLICY", "never")
|
||||
default_cwd = os.environ.get("CODEX_WORKSPACE") or config_get(config, "codex_workspace")
|
||||
default_sandbox = (
|
||||
os.environ.get("CODEX_SANDBOX")
|
||||
or config_get(config, "codex_sandbox")
|
||||
or "workspace-write"
|
||||
)
|
||||
default_approval = (
|
||||
os.environ.get("CODEX_APPROVAL_POLICY")
|
||||
or config_get(config, "codex_approval_policy")
|
||||
or "never"
|
||||
)
|
||||
|
||||
bot = TelegramClient(token)
|
||||
store = RouteStore(db_path)
|
||||
|
||||
Reference in New Issue
Block a user