diff --git a/packages/ai/src/route/client.ts b/packages/ai/src/route/client.ts
index bbaf46515da..6b92bd53d7f 100644
--- a/packages/ai/src/route/client.ts
+++ b/packages/ai/src/route/client.ts
@@ -60,7 +60,8 @@ export interface Route<
readonly body: RouteBody
readonly supportsEffortUpdates?: (request: LLMRequest) => boolean
readonly sanitizer?: LanguageModelSanitizerCompatibility
- readonly namespaces: NamespaceStyle
+ /** How protocol bodies receive tool namespaces; defaults to `"flat"`. */
+ readonly namespaces?: NamespaceStyle
readonly with: {
(
patch: RoutePatch & { readonly compact: Next },
@@ -393,7 +394,7 @@ function makeFromTransport(
body: protocol.body,
supportsEffortUpdates: protocol.supportsEffortUpdates,
sanitizer: protocol.sanitizer,
- namespaces: protocol.namespaces ?? "flat",
+ namespaces: protocol.namespaces,
with: (patch: RoutePatch) => {
const { compact, id, provider, providerMetadataKey, auth, transport, endpoint, ...defaults } = patch
return build({
@@ -576,7 +577,8 @@ const prepareRequest = (request: LLMRequest) => {
}
// Protocols receive wire tool names; callers keep declared names in both directions.
-const lowerRequest = (request: LLMRequest) => ToolNames.lower(prepareRequest(request), request.model.route.namespaces)
+const lowerRequest = (request: LLMRequest) =>
+ ToolNames.lower(prepareRequest(request), request.model.route.namespaces ?? "flat")
const compile = Effect.fn("LLM.compile")(function* (request: LLMRequest, options?: StreamOptions) {
const lowered = yield* lowerRequest(request)
diff --git a/packages/core/src/aisdk.ts b/packages/core/src/aisdk.ts
index 36339b7b96e..f27ad01f375 100644
--- a/packages/core/src/aisdk.ts
+++ b/packages/core/src/aisdk.ts
@@ -368,7 +368,6 @@ function modelFromLanguage(info: RuntimeInfo, language: LanguageModelV3) {
protocol: "ai-sdk",
// AI SDK providers convert tool schemas themselves, so model-family sanitizers stay off here.
sanitizer: "none",
- namespaces: "flat",
endpoint: Endpoint.path("/", { baseURL: "https://ai-sdk.local" }),
auth: Auth.none,
transport: {