xworkmate-bridge/example/config.yaml

75 lines
2.7 KiB
YAML

# Example configuration for xworkmate-bridge public ingress and provider sync.
#
# Usage:
# BRIDGE_CONFIG_PATH=config.yaml ./xworkmate-bridge serve
# Upstream provider endpoints
# Priority: YAML > Environment Variable (e.g. CODEX_RPC_URL) > Default Constants
upstream:
codex_url: "ws://127.0.0.1:9001"
gemini_url: "ws://127.0.0.1:8791"
hermes_url: "ws://127.0.0.1:3920"
gateway_url: "ws://127.0.0.1:18789/"
opencode_url: "ws://127.0.0.1:38992"
openclaw_gateway:
max_active: 5
max_queued: 20
queue_timeout: "10m"
# Lightweight distributed bridge task router.
# Public domains are ingress only. Bridge-to-bridge forwarding must use HTTP
# loopback/private/link-local endpoints protected by WireGuard over VLESS or an
# equivalent private transport.
distributed:
topology: "dual-node"
local_node_id: "cn-xworkmate-bridge"
# Dual-node shorthand. Equivalent to a forwarding rule that sends
# session.start/session.message to xworkmate-bridge.
task_forward_peer_id: "xworkmate-bridge"
nodes:
- id: "xworkmate-bridge"
role: "primary"
zone: "global"
public_base_url: "https://xworkmate-bridge.svc.plus"
bridge_endpoint: "http://172.29.10.1:8787"
capabilities: ["openclaw", "codex"]
- id: "cn-xworkmate-bridge"
role: "edge"
zone: "cn"
public_base_url: "https://cn-xworkmate-bridge.svc.plus"
bridge_endpoint: "http://172.29.10.2:8787"
capabilities: ["ingress"]
forwarding:
hop_limit: 3
default_action: "execute_local"
# For multi-node/star/mesh mode, prefer explicit rules over task_forward_peer_id:
# rules:
# - methods: ["session.start", "session.message"]
# target:
# selector:
# role: "executor"
# capability: "openclaw"
# strategy: "round_robin"
# routes:
# - target_node_id: "worker-eu"
# next_hop_node_id: "xworkmate-bridge"
# Optional. Defaults to BRIDGE_AUTH_TOKEN when omitted.
task_forward_token: ""
# Legacy/Reference structure (Normally managed via code constants or environment)
bridge:
listenAddr: 127.0.0.1:8787
# Token should be set via BRIDGE_AUTH_TOKEN env for security
allowedOrigins:
- https://xworkmate.svc.plus
- http://localhost:*
- http://127.0.0.1:*
notes:
- The bridge reads its own auth token from BRIDGE_AUTH_TOKEN.
- Upstream URLs can include sub-paths which will be preserved during WebSocket handshake.
- Multi-agent and Single-agent modes will use these endpoints to delegate tasks.
- Distributed task forwarding rejects public endpoints; bridge_endpoint must be private/VPN HTTP.
- task_forward_peer_id is the dual-node shorthand; forwarding.rules/routes express multi-node, star, and mesh topologies.