import type { LanguageModelV2FinishReason, LanguageModelV2StreamPart, LanguageModelV2Usage, SharedV2ProviderMetadata } from '@ai-sdk/provider-v5'; import type { ModelMessage, ObjectStreamPart, TextStreamPart, ToolSet } from '../../../_types/@internal_ai-sdk-v5/dist/index.js'; import type { AIV5ResponseMessage } from '../../../agent/message-list/index.js'; import type { ChunkType } from '../../types.js'; /** * Sanitizes tool-call input strings for safe JSON parsing. * * LLMs sometimes append internal tokens like `<|call|>`, `<|endoftext|>`, or `<|end|>` * to otherwise valid JSON in streamed tool-call arguments, causing JSON.parse to fail. * * This function first attempts JSON.parse on the original input. If parsing succeeds, * the original string is returned unchanged — this avoids corrupting valid JSON payloads * that legitimately contain `<|...|>` patterns inside string values. * * Only when the original input is not valid JSON does the function fall back to stripping * `<|...|>` token patterns and surrounding whitespace via regex. * * @see https://github.com/mastra-ai/mastra/issues/13261 * @see https://github.com/mastra-ai/mastra/issues/13185 */ export declare function sanitizeToolCallInput(input: string): string; /** * Attempts to repair common JSON malformations produced by LLM providers. * * Some LLM providers (e.g., Kimi/K2) occasionally generate malformed JSON for * tool call arguments. This function applies a sequence of targeted fixes for * the most common errors before giving up. * * Repairs applied (in order): * 1. Missing quote before property name: `{"a":"b",c":"d"}` → `{"a":"b","c":"d"}` * 2. Unquoted property names: `{command:"value"}` → `{"command":"value"}` * 3. Single quotes → double quotes (only outside already-double-quoted strings) * 4. Trailing commas: `{"a":1,}` → `{"a":1}` * * @returns The parsed object if repair succeeds, or null if the JSON is unrecoverable. * @see https://github.com/mastra-ai/mastra/issues/11078 */ export declare function tryRepairJson(input: string): Record | null; export type StreamPart = Exclude | { type: 'finish'; /** Includes 'tripwire' and 'retry' for processor scenarios */ finishReason: LanguageModelV2FinishReason | 'tripwire' | 'retry'; usage: LanguageModelV2Usage; providerMetadata: SharedV2ProviderMetadata; messages: { all: ModelMessage[]; user: ModelMessage[]; nonUser: AIV5ResponseMessage[]; }; }; export declare function convertFullStreamChunkToMastra(value: StreamPart, ctx: { runId: string; }): ChunkType | undefined; export type OutputChunkType = TextStreamPart | ObjectStreamPart> | undefined; export declare function convertMastraChunkToAISDKv5({ chunk, mode, }: { chunk: ChunkType; mode?: 'generate' | 'stream'; }): OutputChunkType; //# sourceMappingURL=transform.d.ts.map