pub struct PunchConfig {
pub api_listen: String,
pub api_key: String,
pub rate_limit_rpm: u32,
pub default_model: ModelConfig,
pub memory: MemoryConfig,
pub tunnel: Option<TunnelConfig>,
pub channels: HashMap<String, ChannelConfig>,
pub mcp_servers: HashMap<String, McpServerConfig>,
pub model_routing: ModelRoutingConfig,
pub budget: BudgetConfig,
}Expand description
Top-level Punch configuration.
Fields§
§api_listen: StringSocket address for the Arena API server (e.g. “127.0.0.1:6660”). Use 127.0.0.1 for local-only access. Only bind to 0.0.0.0 if you need external access AND have authentication configured.
api_key: StringAPI key for authentication. If empty, auth is disabled (dev mode).
rate_limit_rpm: u32Per-IP rate limit in requests per minute. Default: 60.
default_model: ModelConfigDefault model to use when none is specified.
memory: MemoryConfigMemory subsystem configuration.
tunnel: Option<TunnelConfig>Tunnel / public URL configuration shared by all channel webhooks.
channels: HashMap<String, ChannelConfig>Channel configurations keyed by channel name (e.g. “slack”, “discord”).
mcp_servers: HashMap<String, McpServerConfig>MCP server definitions keyed by server name.
model_routing: ModelRoutingConfigSmart model routing configuration. When enabled, messages are routed to cheap / mid / expensive models based on query complexity.
budget: BudgetConfigBudget limits and eco mode configuration. When set, fighters enter eco mode (cheap tier, no reflection, minimal tools) as limits approach.
Trait Implementations§
Source§impl Clone for PunchConfig
impl Clone for PunchConfig
Source§fn clone(&self) -> PunchConfig
fn clone(&self) -> PunchConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more