Complete multi-platform gateway wiring: config: - [platform.telegram] section with bot_token - [platform.discord] section with bot_token + guild_id - Threaded through GyandootConfig → AgentConfig via typed structs gateway: - GatewayRunner::new(platforms) takes Vec<Box<dyn Platform>> - start() spawns all platform pollers, merges receivers - serve(agent) runs full message loop: receive → access control → typing indicator → session_turn() → platform.send() - Ctrl+C graceful shutdown via tokio::select! cmd_serve now: 1. Loads config, creates agent 2. Builds Telegram + Discord adapters from config 3. Starts gateway pollers 4. Enters serve loop until Ctrl+C
24 lines
764 B
TOML
24 lines
764 B
TOML
[package]
|
|
name = "gyandoot-gateway"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
description = "GyanDoot v2 — Gateway for platform sessions, routing, streaming"
|
|
|
|
[dependencies]
|
|
gyandoot-core = { path = "../gyandoot-core" }
|
|
gyandoot-memory = { path = "../gyandoot-memory" }
|
|
gyandoot-providers = { path = "../gyandoot-providers" }
|
|
gyandoot-platform = { path = "../gyandoot-platform" }
|
|
gyandoot-agent = { path = "../gyandoot-agent" }
|
|
tokio.workspace = true
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
thiserror.workspace = true
|
|
anyhow.workspace = true
|
|
tracing.workspace = true
|
|
uuid.workspace = true
|
|
chrono.workspace = true
|
|
async-trait.workspace = true
|
|
reqwest = { workspace = true, features = ["json"] }
|
|
futures.workspace = true |