Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
14 commits
Select commit Hold shift + click to select a range
eb04f4c
test(deepseek): mark ported upstream tests with the full describe chain
cunninghamcard-bit Oct 20, 2026
bc71554
test(deepseek): port the remaining upstream internal-function tests
cunninghamcard-bit Oct 20, 2026
31834ae
test(deepseek): port the remaining upstream chat and raw-usage tests
cunninghamcard-bit Oct 20, 2026
725820b
fix(deepseek): usage counts must be numbers, as @ai-sdk/deepseek@3.0.56
cunninghamcard-bit Oct 20, 2026
d92a81a
chore(deepseek): add the layout.toml entries for @ai-sdk/deepseek
cunninghamcard-bit Oct 20, 2026
5931c72
test(deepseek): keep the vendor tests in src/deepseek/tests/
cunninghamcard-bit Oct 20, 2026
f7d20a2
Merge the DeepSeek fix PR into the test port
cunninghamcard-bit Oct 20, 2026
26e6e75
Merge fix/deepseek-usage-counts-must-be-numbers into test/port-the-up…
cunninghamcard-bit Oct 24, 2026
ea7d4ca
Merge remote-tracking branch 'origin/fix/deepseek-usage-counts-must-b…
cunninghamcard-bit Oct 25, 2026
42a8eff
Merge branch 'fix/deepseek-usage-counts-must-be-numbers' into test/po…
cunninghamcard-bit Oct 25, 2026
b4055a0
Merge branch 'fix/deepseek-usage-counts-must-be-numbers' into test/po…
cunninghamcard-bit Oct 25, 2026
f035d5e
Merge branch 'fix/deepseek-usage-counts-must-be-numbers' into test/po…
cunninghamcard-bit Oct 25, 2026
f990271
Merge branch 'fix/deepseek-usage-counts-must-be-numbers' into test/po…
cunninghamcard-bit Oct 25, 2026
b53ef34
Merge branch 'fix/deepseek-usage-counts-must-be-numbers' into test/po…
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
122 changes: 122 additions & 0 deletions aimux-providers/layout.toml
Original file line number Diff line number Diff line change
Expand Up @@ -925,3 +925,125 @@ status = "mapped"
upstream = "src/version.ts"
status = "not-applicable"
reason = "the crate version is used instead (RFC-0046 §4.2)"

[deepseek]
package = "@ai-sdk/deepseek"

[[deepseek.files]]
upstream = "src/chat/convert-to-deepseek-chat-messages.ts"
rust = "deepseek/convert.rs"
status = "mapped"

[deepseek.files.tests]

[[deepseek.files]]
upstream = "src/chat/convert-to-deepseek-usage.ts"
rust = "deepseek/usage.rs"
status = "mapped"

[deepseek.files.tests]

[[deepseek.files]]
upstream = "src/chat/deepseek-chat-api-types.ts"
rust = "deepseek/types.rs"
status = "mapped"

[deepseek.files.tests]

[[deepseek.files]]
upstream = "src/chat/deepseek-chat-language-model-options.ts"
rust = "deepseek/options.rs"
status = "mapped"

[deepseek.files.tests]

[[deepseek.files]]
upstream = "src/chat/deepseek-chat-language-model.ts"
rust = "deepseek/model.rs"
status = "mapped"

[deepseek.files.tests]
ts-only = [
{ case = "DeepSeekChatLanguageModel › doGenerate › tool call › json response format with structured outputs › should send json_schema response format and skip schema injection", reason = "unreachable through the provider: because the provider never sets supportsStructuredOutputs (deepseek-provider.ts:88-97); the case needs a model built directly" },
{ case = "DeepSeekChatLanguageModel › doGenerate › tool call › json response format with structured outputs › should honor strictJsonSchema provider option", reason = "unreachable through the provider: because the provider never sets supportsStructuredOutputs (deepseek-provider.ts:88-97); the case needs a model built directly" },
{ case = "DeepSeekChatLanguageModel › doGenerate › tool call › json response format with structured outputs › should fall back to json_object without a schema", reason = "unreachable through the provider: because the provider never sets supportsStructuredOutputs (deepseek-provider.ts:88-97); the case needs a model built directly" },
]

[[deepseek.files]]
upstream = "src/chat/deepseek-file-part-options.ts"
rust = "deepseek/options.rs"
status = "mapped"

[deepseek.files.tests]

[[deepseek.files]]
upstream = "src/chat/deepseek-prepare-tools.ts"
rust = "deepseek/prepare_tools.rs"
status = "mapped"

[deepseek.files.tests]
ts-only = [
{ case = "prepareTools › should pass through strict mode for multiple tools with different strict settings", reason = "needs supportsStrictToolCalls undefined, which only a directly built model has; the provider always sets it from the base URL (deepseek-provider.ts:95), as aimux does" },
]

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

[deepseek.files.tests]

[[deepseek.files]]
upstream = "src/chat/is-deepseek-v4-model.ts"
rust = "deepseek/is_v4_model.rs"
status = "mapped"

[deepseek.files.tests]

[[deepseek.files]]
upstream = "src/chat/map-deepseek-finish-reason.ts"
rust = "deepseek/finish_reason.rs"
status = "mapped"

[deepseek.files.tests]

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

[deepseek.files.tests]

[[deepseek.files]]
upstream = "src/index.ts"
rust = "deepseek/mod.rs"
status = "mapped"

[deepseek.files.tests]

[[deepseek.files]]
upstream = "src/internal/index.ts"
rust = "deepseek/mod.rs"
status = "mapped"

[deepseek.files.tests]

[[deepseek.files]]
upstream = "src/files/deepseek-files-api.ts"
status = "missing"
issue = 275

[[deepseek.files]]
upstream = "src/files/deepseek-files-options.ts"
status = "missing"
issue = 275

[[deepseek.files]]
upstream = "src/files/deepseek-files.ts"
status = "missing"
issue = 275

[[deepseek.files]]
upstream = "src/version.ts"
status = "not-applicable"
reason = "the crate version is used instead (RFC-0046 §4.2)"
3 changes: 3 additions & 0 deletions aimux-providers/src/deepseek/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -191,3 +191,6 @@ impl ProviderDiscovery for DeepSeekProvider {
})
}
}

#[cfg(test)]
mod tests;
Loading
Loading