Skip to main content

gproxy_protocol/adapt/generate/stream/
mod.rs

1//! Incremental generation invocation over explicitly injected capabilities.
2
3mod binding;
4pub mod bridge;
5pub mod event;
6pub mod fanout;
7mod history;
8mod invoke;
9mod next;
10mod output;
11mod prepare;
12pub mod reader;
13mod resource_map;
14pub mod synthesize;
15pub mod websocket;
16
17pub use history::ResponsesHistoryCache;
18pub use history::response_output_as_input;
19pub use invoke::{StreamChunk, StreamInvocation, StreamSettings, StreamStart, StreamTarget};
20pub use prepare::{
21    ChatViaGeminiStreamFacts, ClaudeViaGeminiStreamFacts, GeminiViaClaudeStreamFacts,
22    ResponsesViaClaudeStreamFacts, ResponsesViaGeminiStreamFacts,
23};
24
25fn invalid(message: impl Into<String>) -> crate::transform::TransformError {
26    crate::transform::TransformError::invalid_result("generation.stream", message)
27}
28
29fn conflict(message: impl Into<String>) -> crate::transform::TransformError {
30    crate::transform::TransformError::new(
31        crate::transform::TransformErrorKind::Conflict,
32        "generation.stream",
33        message,
34    )
35}
36
37fn missing(message: impl Into<String>) -> crate::transform::TransformError {
38    crate::transform::TransformError::new(
39        crate::transform::TransformErrorKind::MissingState,
40        "generation.stream",
41        message,
42    )
43}
44
45fn limit(message: impl Into<String>) -> crate::transform::TransformError {
46    crate::transform::TransformError::new(
47        crate::transform::TransformErrorKind::Limit,
48        "generation.stream",
49        message,
50    )
51}
52
53fn codec_error(e: crate::codec::CodecError) -> crate::transform::TransformError {
54    let kind = match e.kind() {
55        crate::codec::CodecErrorKind::Limit => crate::transform::TransformErrorKind::Limit,
56        crate::codec::CodecErrorKind::Transport => crate::transform::TransformErrorKind::Host,
57        _ => crate::transform::TransformErrorKind::InvalidResult,
58    };
59    crate::transform::TransformError::with_source(kind, "generation.stream.codec", e.to_string(), e)
60}