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: {