2026-05-02 18:19:39 +08:00
|
|
|
extern crate self as aether_ai_formats;
|
2026-04-26 20:32:55 +08:00
|
|
|
|
2026-05-02 18:19:39 +08:00
|
|
|
pub mod api;
|
|
|
|
|
pub mod contracts;
|
|
|
|
|
pub mod protocol;
|
|
|
|
|
pub mod provider_compat;
|
|
|
|
|
pub mod request;
|
|
|
|
|
pub mod response;
|
|
|
|
|
|
|
|
|
|
pub use protocol::canonical::{
|
2026-04-26 20:32:55 +08:00
|
|
|
canonical_request_unknown_block_count, canonical_response_unknown_block_count,
|
2026-05-03 17:32:41 +08:00
|
|
|
canonical_to_claude_request, canonical_to_claude_response, canonical_to_embedding_response,
|
|
|
|
|
canonical_to_gemini_request, canonical_to_gemini_response, canonical_to_openai_chat_request,
|
2026-04-26 20:32:55 +08:00
|
|
|
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,
|
|
|
|
|
from_claude_to_canonical_request, from_claude_to_canonical_response,
|
2026-05-03 17:32:41 +08:00
|
|
|
from_embedding_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, CanonicalContentBlock, CanonicalEmbedding,
|
|
|
|
|
CanonicalEmbeddingInput, CanonicalEmbeddingRequest, CanonicalEmbeddingResponse,
|
|
|
|
|
CanonicalGenerationConfig, CanonicalInstruction, CanonicalMessage, CanonicalRequest,
|
|
|
|
|
CanonicalResponse, CanonicalResponseFormat, CanonicalResponseOutput, CanonicalRole,
|
|
|
|
|
CanonicalStopReason, CanonicalStreamEvent, CanonicalStreamFrame, CanonicalThinkingConfig,
|
|
|
|
|
CanonicalToolChoice, CanonicalToolDefinition, CanonicalUsage,
|
2026-04-26 20:32:55 +08:00
|
|
|
};
|
2026-05-02 18:19:39 +08:00
|
|
|
pub use protocol::context::{FormatContext, FormatError};
|
|
|
|
|
pub use protocol::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,
|
|
|
|
|
FormatFamily, FormatId, FormatProfile,
|
2026-04-26 21:47:01 +08:00
|
|
|
};
|
2026-05-02 18:19:39 +08:00
|
|
|
pub use protocol::matrix::{
|
2026-05-03 17:32:41 +08:00
|
|
|
is_embedding_api_format, is_rerank_api_format, 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, RequestConversionKind, SyncChatResponseConversionKind,
|
|
|
|
|
SyncCliResponseConversionKind,
|
2026-04-26 23:31:28 +08:00
|
|
|
};
|
2026-05-02 18:19:39 +08:00
|
|
|
pub use protocol::registry::{build_stream_transcoder, convert_request, convert_response};
|
2026-05-03 14:48:25 +08:00
|
|
|
pub use 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,
|
|
|
|
|
};
|