{
"gateway": {
"listen": "127.0.0.1:8080",
"admin_token": "${GATEWAY_ADMIN_TOKEN}",
"default_backend": "pipelit",
"adapters_dir": "./adapters",
"adapter_port_range": [9000, 9100],
"guardrails_dir": "./guardrails",
"backends_dir": "./backends",
"backend_port_range": [9200, 9300]
},
"backends": {
"pipelit": {
"protocol": "pipelit",
"inbound_url": "http://localhost:8000/api/v1/inbound",
"token": "${PIPELIT_API_TOKEN}",
"active": true
},
"opencode": {
"protocol": "external",
"adapter_dir": "./backends/opencode",
"token": "${OPENCODE_BACKEND_TOKEN}",
"active": true,
"config": {
"base_url": "http://127.0.0.1:4096",
"token": "${OPENCODE_API_TOKEN}",
"model": {
"providerID": "anthropic",
"modelID": "claude-sonnet-4-5"
}
}
}
},
"auth": {
"send_token": "${GATEWAY_SEND_TOKEN}"
},
"health_checks": {
"pipelit": {
"url": "http://localhost:8000/health",
"interval_seconds": 30,
"alert_after_failures": 3,
"notify_credentials": ["yao_telegram"]
}
},
"credentials": {
"generic_chat": {
"adapter": "generic",
"backend": "pipelit",
"token": "${GENERIC_CHAT_TOKEN}",
"active": true,
"emergency": false,
"route": {
"workflow_slug": "my-workflow",
"trigger_node_id": "node_chat_trigger"
}
},
"yao_telegram": {
"adapter": "telegram",
"backend": "pipelit",
"token": "${YAO_TELEGRAM_TOKEN}",
"active": false,
"emergency": true,
"config": {
"poll_timeout": 30
},
"route": {
"workflow_slug": "my-workflow",
"trigger_node_id": "node_telegram_trigger"
}
},
"dev_opencode": {
"adapter": "generic",
"backend": "opencode",
"token": "${DEV_OPENCODE_TOKEN}",
"active": false,
"emergency": false,
"route": {
"agent": "coder"
}
}
}
}