UNPKG

@mastra/core

Version:
41 lines 2.35 kB
import type { LanguageModelV2Prompt } from '../../../_types/@ai-sdk_provider-v5/dist/index.d.ts'; import type { LanguageModelV1Prompt, CoreMessage as CoreMessageV4 } from '../../../_types/@internal_ai-sdk-v4/dist/index.d.ts'; import type { AIV5Type } from '../types.js'; type AIV5LanguageModelV2Message = LanguageModelV2Prompt[0]; type LanguageModelV1Message = LanguageModelV1Prompt[0]; /** * Convert an AI SDK V4 CoreMessage to a V1 LanguageModel prompt message. * Used for creating LLM prompt messages without AI SDK streamText/generateText. */ export declare function aiV4CoreMessageToV1PromptMessage(coreMessage: CoreMessageV4): LanguageModelV1Message; /** * Convert an AI SDK V5 ModelMessage to a V2 LanguageModel prompt message. * Used for creating LLM prompt messages without AI SDK streamText/generateText. */ export declare function aiV5ModelMessageToV2PromptMessage(modelMessage: AIV5Type.ModelMessage): AIV5LanguageModelV2Message; /** * Convert a V2 (AI SDK v5 / spec `v2`) prompt into the shape AI SDK v6 * (spec `v3`) providers expect, by translating tool-result `media` parts into * the `image-data`/`file-data` content parts that v6 providers consume. * * This is a single-responsibility conversion meant to be chained after the * base v5 prompt build: `aiV6.llmPrompt()` = `aiV5.llmPrompt()` -> this. * * Mastra's `toModelOutput` and the vendored AI SDK v5 use `{ type: 'media' }` * as the authored multimodal tool-result content type. AI SDK v6 added a * `mapToolResultOutput` step that converts `media` -> `image-data` (for * `image/*` media types) or `file-data` (everything else) before the prompt * reaches the provider, and v6 providers (e.g. `@ai-sdk/anthropic@3`) only * recognize `image-data`/`file-data` — they have no `media` case. The vendored * v5 converter does not run that translation, so a v5-built prompt handed to a * v6 provider drops the raw `media` part (image tool results arrive empty). * * This MUST only run for v6 (`v3`) providers: v5 providers (spec `v2`) accept * `media` and have no `image-data`/`file-data` case, so translating for them * would re-break v5. * * See: https://github.com/mastra-ai/mastra/issues/17876 */ export declare function aiV5PromptToAIV6Prompt(prompt: LanguageModelV2Prompt): LanguageModelV2Prompt; export {}; //# sourceMappingURL=to-prompt.d.ts.map