2026-04-09 00:10:38 +08:00
|
|
|
pub use crate::contracts::{
|
|
|
|
|
core_error_background_report_kind, core_error_default_client_api_format,
|
2026-05-02 13:23:54 +08:00
|
|
|
core_success_background_report_kind, implicit_sync_finalize_report_kind,
|
2026-05-02 18:19:39 +08:00
|
|
|
is_openai_responses_stream_plan_kind, is_openai_responses_sync_plan_kind, AiControlPlanRequest,
|
|
|
|
|
ExecutionRuntimeAuthContext, CLAUDE_CHAT_STREAM_PLAN_KIND,
|
2026-05-02 13:23:54 +08:00
|
|
|
CLAUDE_CHAT_STREAM_SUCCESS_REPORT_KIND, CLAUDE_CHAT_SYNC_ERROR_REPORT_KIND,
|
|
|
|
|
CLAUDE_CHAT_SYNC_FINALIZE_REPORT_KIND, CLAUDE_CHAT_SYNC_PLAN_KIND,
|
|
|
|
|
CLAUDE_CHAT_SYNC_SUCCESS_REPORT_KIND, CLAUDE_CLI_STREAM_PLAN_KIND,
|
2026-04-09 00:10:38 +08:00
|
|
|
CLAUDE_CLI_STREAM_SUCCESS_REPORT_KIND, CLAUDE_CLI_SYNC_ERROR_REPORT_KIND,
|
|
|
|
|
CLAUDE_CLI_SYNC_FINALIZE_REPORT_KIND, CLAUDE_CLI_SYNC_PLAN_KIND,
|
|
|
|
|
CLAUDE_CLI_SYNC_SUCCESS_REPORT_KIND, EXECUTION_RUNTIME_STREAM_ACTION,
|
|
|
|
|
EXECUTION_RUNTIME_STREAM_DECISION_ACTION, EXECUTION_RUNTIME_SYNC_ACTION,
|
|
|
|
|
EXECUTION_RUNTIME_SYNC_DECISION_ACTION, GEMINI_CHAT_STREAM_PLAN_KIND,
|
|
|
|
|
GEMINI_CHAT_STREAM_SUCCESS_REPORT_KIND, GEMINI_CHAT_SYNC_ERROR_REPORT_KIND,
|
|
|
|
|
GEMINI_CHAT_SYNC_FINALIZE_REPORT_KIND, GEMINI_CHAT_SYNC_PLAN_KIND,
|
|
|
|
|
GEMINI_CHAT_SYNC_SUCCESS_REPORT_KIND, GEMINI_CLI_STREAM_PLAN_KIND,
|
|
|
|
|
GEMINI_CLI_STREAM_SUCCESS_REPORT_KIND, GEMINI_CLI_SYNC_ERROR_REPORT_KIND,
|
|
|
|
|
GEMINI_CLI_SYNC_FINALIZE_REPORT_KIND, GEMINI_CLI_SYNC_PLAN_KIND,
|
|
|
|
|
GEMINI_CLI_SYNC_SUCCESS_REPORT_KIND, GEMINI_FILES_DELETE_PLAN_KIND,
|
|
|
|
|
GEMINI_FILES_DOWNLOAD_PLAN_KIND, GEMINI_FILES_GET_PLAN_KIND, GEMINI_FILES_LIST_PLAN_KIND,
|
|
|
|
|
GEMINI_FILES_UPLOAD_PLAN_KIND, GEMINI_VIDEO_CANCEL_SYNC_PLAN_KIND,
|
|
|
|
|
GEMINI_VIDEO_CREATE_SYNC_FINALIZE_REPORT_KIND, GEMINI_VIDEO_CREATE_SYNC_PLAN_KIND,
|
|
|
|
|
OPENAI_CHAT_STREAM_PLAN_KIND, OPENAI_CHAT_STREAM_SUCCESS_REPORT_KIND,
|
|
|
|
|
OPENAI_CHAT_SYNC_ERROR_REPORT_KIND, OPENAI_CHAT_SYNC_FINALIZE_REPORT_KIND,
|
2026-04-26 21:12:57 +08:00
|
|
|
OPENAI_CHAT_SYNC_PLAN_KIND, OPENAI_CHAT_SYNC_SUCCESS_REPORT_KIND,
|
2026-05-03 17:32:41 +08:00
|
|
|
OPENAI_EMBEDDING_SYNC_PLAN_KIND, OPENAI_IMAGE_STREAM_PLAN_KIND,
|
|
|
|
|
OPENAI_IMAGE_STREAM_SUCCESS_REPORT_KIND, OPENAI_IMAGE_SYNC_FINALIZE_REPORT_KIND,
|
|
|
|
|
OPENAI_IMAGE_SYNC_PLAN_KIND, OPENAI_IMAGE_SYNC_SUCCESS_REPORT_KIND,
|
|
|
|
|
OPENAI_RERANK_SYNC_PLAN_KIND, OPENAI_RESPONSES_COMPACT_STREAM_PLAN_KIND,
|
2026-04-26 21:12:57 +08:00
|
|
|
OPENAI_RESPONSES_COMPACT_STREAM_SUCCESS_REPORT_KIND,
|
2026-04-26 20:32:55 +08:00
|
|
|
OPENAI_RESPONSES_COMPACT_SYNC_ERROR_REPORT_KIND,
|
|
|
|
|
OPENAI_RESPONSES_COMPACT_SYNC_FINALIZE_REPORT_KIND, OPENAI_RESPONSES_COMPACT_SYNC_PLAN_KIND,
|
|
|
|
|
OPENAI_RESPONSES_COMPACT_SYNC_SUCCESS_REPORT_KIND, OPENAI_RESPONSES_STREAM_PLAN_KIND,
|
|
|
|
|
OPENAI_RESPONSES_STREAM_SUCCESS_REPORT_KIND, OPENAI_RESPONSES_SYNC_ERROR_REPORT_KIND,
|
|
|
|
|
OPENAI_RESPONSES_SYNC_FINALIZE_REPORT_KIND, OPENAI_RESPONSES_SYNC_PLAN_KIND,
|
|
|
|
|
OPENAI_RESPONSES_SYNC_SUCCESS_REPORT_KIND, OPENAI_VIDEO_CANCEL_SYNC_PLAN_KIND,
|
|
|
|
|
OPENAI_VIDEO_CONTENT_PLAN_KIND, OPENAI_VIDEO_CREATE_SYNC_FINALIZE_REPORT_KIND,
|
|
|
|
|
OPENAI_VIDEO_CREATE_SYNC_PLAN_KIND, OPENAI_VIDEO_DELETE_SYNC_PLAN_KIND,
|
|
|
|
|
OPENAI_VIDEO_REMIX_SYNC_PLAN_KIND,
|
2026-04-09 00:10:38 +08:00
|
|
|
};
|
2026-05-02 18:19:39 +08:00
|
|
|
pub use crate::provider_compat::kiro_stream::{
|
|
|
|
|
build_kiro_final_message_sse_events, build_kiro_initial_sse_events,
|
|
|
|
|
build_kiro_stream_error_sse_events, calculate_kiro_context_input_tokens,
|
|
|
|
|
encode_kiro_sse_events, estimate_kiro_tokens, find_kiro_real_thinking_end_tag,
|
|
|
|
|
find_kiro_real_thinking_end_tag_at_buffer_end, find_kiro_real_thinking_start_tag, kiro_crc32,
|
|
|
|
|
KiroToClaudeCliStreamState, KIRO_MAX_THINKING_BUFFER,
|
2026-04-09 00:10:38 +08:00
|
|
|
};
|
2026-05-02 18:19:39 +08:00
|
|
|
pub use crate::provider_compat::private_envelope::{
|
|
|
|
|
maybe_build_provider_private_stream_normalizer, normalize_provider_private_report_context,
|
|
|
|
|
normalize_provider_private_response_value, provider_private_response_allows_sync_finalize,
|
|
|
|
|
stream_body_contains_error_event, transform_provider_private_stream_line,
|
|
|
|
|
ProviderPrivateStreamNormalizer,
|
2026-05-02 13:23:54 +08:00
|
|
|
};
|
2026-05-02 18:19:39 +08:00
|
|
|
pub use crate::provider_compat::surfaces::{
|
|
|
|
|
provider_adaptation_allows_sync_finalize_envelope, provider_adaptation_anchor_api_format,
|
|
|
|
|
provider_adaptation_descriptor_for_envelope, provider_adaptation_descriptor_for_provider_type,
|
|
|
|
|
provider_adaptation_requires_eventstream_accept,
|
|
|
|
|
provider_adaptation_should_unwrap_stream_envelope, ProviderAdaptationDescriptor,
|
|
|
|
|
ProviderAdaptationSurface, ANTIGRAVITY_V1INTERNAL_ENVELOPE_NAME,
|
|
|
|
|
GEMINI_CLI_V1INTERNAL_ENVELOPE_NAME, KIRO_ENVELOPE_NAME,
|
2026-04-09 00:10:38 +08:00
|
|
|
};
|
2026-05-02 18:19:39 +08:00
|
|
|
pub use crate::request::common::{
|
2026-04-09 00:10:38 +08:00
|
|
|
force_upstream_streaming_for_provider, parse_direct_request_body,
|
|
|
|
|
};
|
2026-05-03 14:48:25 +08:00
|
|
|
pub use crate::request::matrix::{
|
|
|
|
|
build_standard_request_body_from_canonical,
|
|
|
|
|
build_standard_request_body_from_canonical_with_model_directives,
|
|
|
|
|
};
|
|
|
|
|
pub use crate::request::model_directives::{
|
|
|
|
|
apply_model_directive_mapping_patch, apply_model_directive_overrides_from_model,
|
|
|
|
|
apply_model_directive_overrides_from_request, claude_model_uses_adaptive_effort,
|
|
|
|
|
extract_gemini_model_from_path, gemini_model_uses_thinking_level, model_directive_base_model,
|
|
|
|
|
normalize_model_directive_model, parse_model_directive, ModelDirective, ModelOverride,
|
|
|
|
|
ReasoningEffort,
|
|
|
|
|
};
|
2026-05-02 18:19:39 +08:00
|
|
|
pub use crate::request::openai::{
|
2026-04-09 00:10:38 +08:00
|
|
|
copy_request_number_field, copy_request_number_field_as,
|
|
|
|
|
map_openai_reasoning_effort_to_claude_output, map_openai_reasoning_effort_to_gemini_budget,
|
|
|
|
|
parse_openai_stop_sequences, resolve_openai_chat_max_tokens, value_as_u64,
|
|
|
|
|
};
|
2026-05-02 18:19:39 +08:00
|
|
|
pub use crate::request::passthrough::provider::{
|
2026-04-09 00:10:38 +08:00
|
|
|
resolve_stream_spec as resolve_local_same_format_stream_spec,
|
|
|
|
|
resolve_sync_spec as resolve_local_same_format_sync_spec, LocalSameFormatProviderFamily,
|
|
|
|
|
LocalSameFormatProviderSpec,
|
|
|
|
|
};
|
2026-05-02 18:19:39 +08:00
|
|
|
pub use crate::request::route::{
|
2026-05-02 13:23:54 +08:00
|
|
|
is_matching_stream_http_request, is_matching_stream_request,
|
|
|
|
|
resolve_execution_runtime_stream_plan_kind, resolve_execution_runtime_sync_plan_kind,
|
2026-05-02 18:19:39 +08:00
|
|
|
supports_stream_execution_decision_kind, supports_sync_execution_decision_kind,
|
2026-04-09 00:10:38 +08:00
|
|
|
};
|
2026-05-02 18:19:39 +08:00
|
|
|
pub use crate::request::specialized::{
|
2026-04-09 00:10:38 +08:00
|
|
|
files::{
|
|
|
|
|
resolve_stream_spec as resolve_gemini_files_stream_spec,
|
|
|
|
|
resolve_sync_spec as resolve_gemini_files_sync_spec, LocalGeminiFilesSpec,
|
|
|
|
|
},
|
2026-04-23 14:42:51 +08:00
|
|
|
image::{
|
2026-05-02 13:23:54 +08:00
|
|
|
build_openai_image_provider_request_body, default_model_for_openai_image_operation,
|
|
|
|
|
is_openai_image_stream_request, normalize_openai_image_request,
|
|
|
|
|
openai_image_operation_from_path, resolve_requested_openai_image_model_for_request,
|
2026-04-23 14:42:51 +08:00
|
|
|
resolve_stream_spec as resolve_local_image_stream_spec,
|
|
|
|
|
resolve_sync_spec as resolve_local_image_sync_spec, LocalOpenAiImageSpec,
|
2026-05-02 13:23:54 +08:00
|
|
|
NormalizedOpenAiImageRequest, OpenAiImageOperation, OpenAiImageResponseFormat,
|
2026-04-23 14:42:51 +08:00
|
|
|
},
|
2026-04-09 00:10:38 +08:00
|
|
|
video::{
|
|
|
|
|
resolve_sync_spec as resolve_local_video_sync_spec, LocalVideoCreateFamily,
|
|
|
|
|
LocalVideoCreateSpec,
|
|
|
|
|
},
|
|
|
|
|
};
|
2026-05-02 18:19:39 +08:00
|
|
|
pub use crate::request::standard::{
|
2026-04-26 20:32:55 +08:00
|
|
|
apply_codex_openai_responses_special_body_edits, apply_codex_openai_responses_special_headers,
|
|
|
|
|
apply_openai_responses_compact_special_body_edits, build_cross_format_openai_chat_request_body,
|
2026-05-03 14:48:25 +08:00
|
|
|
build_cross_format_openai_chat_request_body_with_model_directives,
|
|
|
|
|
build_cross_format_openai_responses_request_body,
|
|
|
|
|
build_cross_format_openai_responses_request_body_with_model_directives,
|
|
|
|
|
build_local_openai_chat_request_body,
|
|
|
|
|
build_local_openai_chat_request_body_with_model_directives,
|
|
|
|
|
build_local_openai_responses_request_body,
|
|
|
|
|
build_local_openai_responses_request_body_with_model_directives, build_standard_request_body,
|
|
|
|
|
build_standard_request_body_with_model_directives,
|
2026-04-09 00:10:38 +08:00
|
|
|
claude::{
|
|
|
|
|
resolve_stream_spec as resolve_claude_stream_spec,
|
|
|
|
|
resolve_sync_spec as resolve_claude_sync_spec,
|
|
|
|
|
},
|
|
|
|
|
gemini::{
|
|
|
|
|
resolve_stream_spec as resolve_gemini_stream_spec,
|
|
|
|
|
resolve_sync_spec as resolve_gemini_sync_spec,
|
|
|
|
|
},
|
|
|
|
|
normalize_standard_request_to_openai_chat_request,
|
2026-04-26 20:32:55 +08:00
|
|
|
openai_responses::{
|
|
|
|
|
resolve_stream_spec as resolve_openai_responses_stream_spec,
|
|
|
|
|
resolve_sync_spec as resolve_openai_responses_sync_spec, LocalOpenAiResponsesSpec,
|
2026-04-09 00:10:38 +08:00
|
|
|
},
|
|
|
|
|
LocalStandardSourceFamily, LocalStandardSourceMode, LocalStandardSpec,
|
2026-04-23 14:42:51 +08:00
|
|
|
CODEX_OPENAI_IMAGE_DEFAULT_MODEL, CODEX_OPENAI_IMAGE_DEFAULT_OUTPUT_FORMAT,
|
|
|
|
|
CODEX_OPENAI_IMAGE_DEFAULT_VARIATION_MODEL, CODEX_OPENAI_IMAGE_DEFAULT_VARIATION_PROMPT,
|
|
|
|
|
CODEX_OPENAI_IMAGE_INTERNAL_MODEL,
|
2026-04-09 00:10:38 +08:00
|
|
|
};
|
2026-05-02 18:19:39 +08:00
|
|
|
pub use crate::response::common::{
|
|
|
|
|
build_generated_tool_call_id, build_local_success_background_report,
|
|
|
|
|
build_local_success_conversion_background_report, canonicalize_tool_arguments,
|
|
|
|
|
prepare_local_success_response_parts, prepare_local_success_response_parts_owned,
|
|
|
|
|
LocalSyncReportParts,
|
|
|
|
|
};
|
|
|
|
|
pub use crate::response::error_body::{
|
|
|
|
|
build_core_error_body_for_client_format, is_core_error_finalize_kind, LocalCoreSyncErrorKind,
|
|
|
|
|
};
|
|
|
|
|
pub use crate::response::openai_image_stream::{
|
|
|
|
|
maybe_build_openai_image_sync_finalize_product, OpenAiImageStreamState,
|
|
|
|
|
OpenAiImageSyncFinalizeProduct,
|
|
|
|
|
};
|
|
|
|
|
pub use crate::response::sse::{encode_done_sse, encode_json_sse, map_claude_stop_reason};
|
|
|
|
|
pub use crate::response::standard::claude::stream::{ClaudeClientEmitter, ClaudeProviderState};
|
|
|
|
|
pub use crate::response::standard::gemini::stream::{GeminiClientEmitter, GeminiProviderState};
|
|
|
|
|
pub use crate::response::standard::openai::stream::{
|
|
|
|
|
OpenAIChatClientEmitter, OpenAIChatProviderState, OpenAIResponsesClientEmitter,
|
|
|
|
|
OpenAIResponsesProviderState,
|
|
|
|
|
};
|
|
|
|
|
pub use crate::response::standard::stream_core::common::*;
|
|
|
|
|
pub use crate::response::standard::stream_core::{
|
|
|
|
|
CanonicalStreamFrame, StreamingStandardFormatMatrix, StreamingStandardTerminalObserver,
|
|
|
|
|
};
|
|
|
|
|
pub use crate::response::sync_products::{
|
|
|
|
|
aggregate_claude_stream_sync_response, aggregate_gemini_stream_sync_response,
|
|
|
|
|
aggregate_openai_chat_stream_sync_response, aggregate_openai_responses_stream_sync_response,
|
|
|
|
|
aggregate_standard_chat_stream_sync_response, aggregate_standard_cli_stream_sync_response,
|
|
|
|
|
convert_standard_chat_response, convert_standard_cli_response,
|
|
|
|
|
maybe_build_openai_chat_cross_format_sync_product_from_normalized_payload,
|
|
|
|
|
maybe_build_openai_responses_cross_format_sync_product_from_normalized_payload,
|
|
|
|
|
maybe_build_openai_responses_same_family_sync_body_from_normalized_payload,
|
|
|
|
|
maybe_build_standard_cross_format_sync_product,
|
|
|
|
|
maybe_build_standard_cross_format_sync_product_from_normalized_payload,
|
|
|
|
|
maybe_build_standard_same_format_sync_body_from_normalized_payload,
|
|
|
|
|
maybe_build_standard_sync_finalize_product_from_normalized_payload,
|
|
|
|
|
StandardCrossFormatSyncProduct, StandardSyncFinalizeNormalizedProduct,
|
|
|
|
|
};
|
|
|
|
|
pub use crate::response::sync_to_stream::{
|
|
|
|
|
maybe_bridge_standard_sync_json_to_stream, SyncToStreamBridgeOutcome,
|
|
|
|
|
};
|
|
|
|
|
pub use crate::response::{
|
|
|
|
|
maybe_build_ai_surface_stream_rewriter, resolve_finalize_stream_rewrite_mode,
|
|
|
|
|
AiSurfaceFinalizeError, AiSurfaceStreamRewriter, FinalizeStreamRewriteMode,
|
|
|
|
|
};
|
|
|
|
|
pub use aether_ai_formats::protocol::conversion::request::{
|
2026-05-02 13:23:54 +08:00
|
|
|
convert_openai_chat_request_to_claude_request, convert_openai_chat_request_to_gemini_request,
|
|
|
|
|
convert_openai_chat_request_to_openai_responses_request, extract_openai_text_content,
|
|
|
|
|
normalize_claude_request_to_openai_chat_request,
|
|
|
|
|
normalize_gemini_request_to_openai_chat_request,
|
|
|
|
|
normalize_openai_responses_request_to_openai_chat_request, parse_openai_tool_result_content,
|
|
|
|
|
};
|
2026-05-02 18:19:39 +08:00
|
|
|
pub use aether_ai_formats::protocol::conversion::response::{
|
2026-05-02 13:23:54 +08:00
|
|
|
build_openai_responses_response, build_openai_responses_response_with_content,
|
|
|
|
|
build_openai_responses_response_with_reasoning, convert_claude_chat_response_to_openai_chat,
|
|
|
|
|
convert_claude_response_to_openai_responses, convert_gemini_chat_response_to_openai_chat,
|
|
|
|
|
convert_gemini_response_to_openai_responses, convert_openai_chat_response_to_claude_chat,
|
|
|
|
|
convert_openai_chat_response_to_gemini_chat, convert_openai_chat_response_to_openai_responses,
|
|
|
|
|
convert_openai_responses_response_to_openai_chat, OpenAiResponsesResponseUsage,
|
|
|
|
|
};
|
2026-04-26 21:47:01 +08:00
|
|
|
pub use aether_ai_formats::{
|
2026-04-29 09:25:19 +08:00
|
|
|
api_format_alias_matches, api_format_storage_aliases, is_openai_responses_compact_format,
|
|
|
|
|
is_openai_responses_family_format, is_openai_responses_format, normalize_api_format_alias,
|
2026-04-26 21:47:01 +08:00
|
|
|
};
|
2026-05-02 13:23:54 +08:00
|
|
|
pub use aether_ai_formats::{
|
|
|
|
|
canonical_request_unknown_block_count, canonical_response_unknown_block_count,
|
|
|
|
|
canonical_to_claude_request, canonical_to_claude_response, canonical_to_gemini_request,
|
|
|
|
|
canonical_to_gemini_response, canonical_to_openai_chat_request,
|
|
|
|
|
canonical_to_openai_chat_response, canonical_to_openai_responses_compact_request,
|
|
|
|
|
canonical_to_openai_responses_compact_response, canonical_to_openai_responses_request,
|
|
|
|
|
canonical_to_openai_responses_response, canonical_unknown_block_count, convert_request,
|
|
|
|
|
convert_response, from_claude_to_canonical_request, from_claude_to_canonical_response,
|
|
|
|
|
from_gemini_to_canonical_request, from_gemini_to_canonical_response,
|
|
|
|
|
from_openai_chat_to_canonical_request, from_openai_chat_to_canonical_response,
|
|
|
|
|
from_openai_responses_to_canonical_request, from_openai_responses_to_canonical_response,
|
|
|
|
|
request_candidate_api_format_preference, request_candidate_api_formats,
|
|
|
|
|
request_conversion_kind, request_conversion_requires_enable_flag,
|
|
|
|
|
sync_chat_response_conversion_kind, sync_cli_response_conversion_kind, CanonicalContentBlock,
|
|
|
|
|
CanonicalGenerationConfig, CanonicalInstruction, CanonicalMessage, CanonicalRequest,
|
|
|
|
|
CanonicalResponse, CanonicalResponseFormat, CanonicalResponseOutput, CanonicalRole,
|
|
|
|
|
CanonicalStopReason, CanonicalThinkingConfig, CanonicalToolChoice, CanonicalToolDefinition,
|
|
|
|
|
CanonicalUsage, FormatContext, FormatError, FormatFamily, FormatId, FormatProfile,
|
|
|
|
|
RequestConversionKind, SyncChatResponseConversionKind, SyncCliResponseConversionKind,
|
|
|
|
|
};
|