Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
cb0b764
fix(provider-utils): unparsable stream events report the AI SDK parse…
cunninghamcard-bit Oct 20, 2026
7002bfa
test: port the upstream OpenAI-compatible tests
cunninghamcard-bit Oct 20, 2026
85453d9
test(openai-compatible): mark the old tests that cover upstream cases
cunninghamcard-bit Oct 20, 2026
c4771a2
refactor: move the OpenAI-compatible files to the upstream layout
claude Oct 20, 2026
007daec
Merge master into fix/openai-compatible-unparsable-stream-chunks-are-…
cunninghamcard-bit Oct 24, 2026
c4c73d0
Merge fix/openai-compatible-unparsable-stream-chunks-are-ai-sdk-parse…
cunninghamcard-bit Oct 24, 2026
9136c83
Merge the OpenAI-compatible test branch with master into the move
claude Oct 24, 2026
915f53a
Merge remote-tracking branch 'origin/master' into test/port-the-upstr…
cunninghamcard-bit Oct 25, 2026
e41d394
ci(boundaries): skip only the two vendor test files that name groq or…
claude Oct 25, 2026
031c5bc
Merge the OpenAI-compatible test branch with master into the move
claude Oct 25, 2026
1ca0a77
Merge master into test/port-the-upstream-openai-compatible-tests
cunninghamcard-bit Oct 25, 2026
cd3ff0e
Merge the OpenAI-compatible test branch with master into the move
claude Oct 25, 2026
99a807b
Merge remote-tracking branch 'origin/master' into test/port-the-upstr…
cunninghamcard-bit Oct 25, 2026
70b36c5
Merge remote-tracking branch 'origin/test/port-the-upstream-openai-co…
claude Oct 25, 2026
880f2e1
Merge branch 'master' into refactor/move-the-openai-compatible-files-…
claude Oct 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 23 additions & 23 deletions aimux-providers/layout.toml
Original file line number Diff line number Diff line change
Expand Up @@ -506,140 +506,140 @@ package = "@ai-sdk/openai-compatible"

[[openai_compatible.files]]
upstream = "src/chat/convert-openai-compatible-chat-usage.ts"
rust = "openai_compatible/chat.rs"
rust = "openai_compatible/chat/convert_chat_usage.rs"
status = "mapped"

[openai_compatible.files.tests]

[[openai_compatible.files]]
upstream = "src/chat/convert-to-openai-compatible-chat-messages.ts"
rust = "openai_compatible/convert.rs"
rust = "openai_compatible/chat/convert_to_chat_messages.rs"
status = "mapped"

[openai_compatible.files.tests]

[[openai_compatible.files]]
upstream = "src/chat/get-response-metadata.ts"
rust = "openai_compatible/chat.rs"
rust = "openai_compatible/chat/chat_language_model.rs"
status = "mapped"

[openai_compatible.files.tests]

[[openai_compatible.files]]
upstream = "src/chat/map-openai-compatible-finish-reason.ts"
rust = "openai_compatible/convert.rs"
rust = "openai_compatible/chat/map_finish_reason.rs"
status = "mapped"

[openai_compatible.files.tests]

[[openai_compatible.files]]
upstream = "src/chat/openai-compatible-api-types.ts"
rust = "openai_compatible/types.rs"
rust = "openai_compatible/chat/api_types.rs"
status = "mapped"

[openai_compatible.files.tests]

[[openai_compatible.files]]
upstream = "src/chat/openai-compatible-chat-language-model-options.ts"
rust = "openai_compatible/config.rs"
rust = "openai_compatible/chat/chat_language_model_options.rs"
status = "mapped"

[openai_compatible.files.tests]

[[openai_compatible.files]]
upstream = "src/chat/openai-compatible-chat-language-model.ts"
rust = "openai_compatible/chat.rs"
rust = "openai_compatible/chat/chat_language_model.rs"
status = "mapped"

[openai_compatible.files.tests]

[[openai_compatible.files]]
upstream = "src/chat/openai-compatible-metadata-extractor.ts"
rust = "openai_compatible/config.rs"
rust = "openai_compatible/chat/metadata_extractor.rs"
status = "mapped"

[openai_compatible.files.tests]

[[openai_compatible.files]]
upstream = "src/chat/openai-compatible-prepare-tools.ts"
rust = "openai_compatible/convert.rs"
rust = "openai_compatible/chat/prepare_tools.rs"
status = "mapped"

[openai_compatible.files.tests]

[[openai_compatible.files]]
upstream = "src/completion/convert-openai-compatible-completion-usage.ts"
rust = "openai_compatible/completion.rs"
rust = "openai_compatible/completion/convert_completion_usage.rs"
status = "mapped"

[openai_compatible.files.tests]

[[openai_compatible.files]]
upstream = "src/completion/convert-to-openai-compatible-completion-prompt.ts"
rust = "openai_compatible/completion.rs"
rust = "openai_compatible/completion/convert_to_completion_prompt.rs"
status = "mapped"

[openai_compatible.files.tests]

[[openai_compatible.files]]
upstream = "src/completion/get-response-metadata.ts"
rust = "openai_compatible/completion.rs"
rust = "openai_compatible/completion/get_response_metadata.rs"
status = "mapped"

[openai_compatible.files.tests]

[[openai_compatible.files]]
upstream = "src/completion/map-openai-compatible-finish-reason.ts"
rust = "openai_compatible/convert.rs"
rust = "openai_compatible/chat/map_finish_reason.rs"
status = "mapped"

[openai_compatible.files.tests]

[[openai_compatible.files]]
upstream = "src/completion/openai-compatible-completion-language-model-options.ts"
rust = "openai_compatible/completion.rs"
rust = "openai_compatible/completion/completion_language_model.rs"
status = "mapped"

[openai_compatible.files.tests]

[[openai_compatible.files]]
upstream = "src/completion/openai-compatible-completion-language-model.ts"
rust = "openai_compatible/completion.rs"
rust = "openai_compatible/completion/completion_language_model.rs"
status = "mapped"

[openai_compatible.files.tests]

[[openai_compatible.files]]
upstream = "src/embedding/openai-compatible-embedding-model-options.ts"
rust = "openai_compatible/embedding.rs"
rust = "openai_compatible/embedding/embedding_model_options.rs"
status = "mapped"

[openai_compatible.files.tests]

[[openai_compatible.files]]
upstream = "src/embedding/openai-compatible-embedding-model.ts"
rust = "openai_compatible/embedding.rs"
rust = "openai_compatible/embedding/embedding_model.rs"
status = "mapped"

[openai_compatible.files.tests]

[[openai_compatible.files]]
upstream = "src/image/openai-compatible-image-model-options.ts"
rust = "openai_compatible/image.rs"
rust = "openai_compatible/image/image_model.rs"
status = "mapped"

[openai_compatible.files.tests]

[[openai_compatible.files]]
upstream = "src/image/openai-compatible-image-model.ts"
rust = "openai_compatible/image.rs"
rust = "openai_compatible/image/image_model.rs"
status = "mapped"

[openai_compatible.files.tests]

[[openai_compatible.files]]
upstream = "src/image/openai-compatible-image-settings.ts"
rust = "openai_compatible/image.rs"
rust = "openai_compatible/image/image_model.rs"
status = "mapped"

[openai_compatible.files.tests]
Expand All @@ -660,14 +660,14 @@ status = "mapped"

[[openai_compatible.files]]
upstream = "src/openai-compatible-error.ts"
rust = "openai_compatible/config.rs"
rust = "openai_compatible/error.rs"
status = "mapped"

[openai_compatible.files.tests]

[[openai_compatible.files]]
upstream = "src/openai-compatible-provider.ts"
rust = "openai_compatible/mod.rs"
rust = "openai_compatible/provider.rs"
status = "mapped"

[openai_compatible.files.tests]
Expand All @@ -678,7 +678,7 @@ ts-only = [

[[openai_compatible.files]]
upstream = "src/utils/to-camel-case.ts"
rust = "openai_compatible/convert.rs"
rust = "openai_compatible/utils/to_camel_case.rs"
status = "mapped"

[openai_compatible.files.tests]
Expand Down
2 changes: 1 addition & 1 deletion aimux-providers/src/decision_support.rs
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ pub(crate) fn take_images(
}

use crate::openai::config::OpenAIModelConfig;
use crate::openai_compatible::config::CompatModelConfig;
use crate::openai_compatible::CompatModelConfig;

/// The connection a decision adapter borrows from the provider that made it:
/// native OpenAI, or an OpenAI-compatible preset (a local runtime,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ use serde::{Deserialize, Serialize};
use serde_json::Value;

// ── Non-streaming response ──

#[derive(Debug, Deserialize)]
pub(crate) struct ChatCompletionResponse {
#[serde(default)]
Expand Down
Loading
Loading