use crate::internal::domain::GatewayError;
use crate::internal::sidecar::{
ForwardedBrokerRequest, RelaySession, build_forwarded_broker_request, require_available_session,
};
use time::OffsetDateTime;
#[derive(Clone, Debug, Eq, PartialEq, serde::Serialize, serde::Deserialize)]
pub struct SidecarRelayAccepted {
pub forwarded_request: ForwardedBrokerRequest,
}
pub fn accept_sidecar_relay_request(
session: Option<&RelaySession>,
tool_name: &str,
scope: &str,
payload: &serde_json::Value,
now: OffsetDateTime,
) -> Result<SidecarRelayAccepted, GatewayError> {
require_available_session(session, now)?;
let forwarded_request = build_forwarded_broker_request(tool_name, scope, payload)?;
Ok(SidecarRelayAccepted { forwarded_request })
}