Skip to main content

gproxy_protocol/transform/generate/gemini_chat/stream/
mod.rs

1//! Direct incremental Chat ↔ Gemini streams, with native source validation.
2
3mod chat_to_gemini;
4mod common;
5mod gemini_to_chat;
6mod tools;
7
8use crate::{
9    transform::{
10        Converted, Report, TransformError, TransformErrorKind,
11        identity::{IdentityFlow, IdentityRole, SourceIdentity, TargetIdPolicy},
12    },
13    wire::{
14        DeclaredFields, gemini as g,
15        openai::chat::{self as c, stream as s},
16    },
17};
18use std::collections::BTreeMap;
19
20pub use chat_to_gemini::ChatToGeminiStream;
21pub use common::{StreamEnd, StreamLimits};
22pub use gemini_to_chat::{GeminiToChatContext, GeminiToChatStream};
23
24fn invalid(message: &'static str) -> TransformError {
25    TransformError::invalid_result("chat_gemini.stream", message)
26}
27
28fn limit() -> TransformError {
29    TransformError::new(
30        TransformErrorKind::Limit,
31        "chat_gemini.stream",
32        "stream limit exceeded",
33    )
34}