@mastra/core
Version:
Mastra is a framework for building AI-powered applications and agents with a modern TypeScript stack.
70 lines • 2.99 kB
TypeScript
import type { LanguageModelV2, LanguageModelV2CallOptions } from '@ai-sdk/provider-v5';
import type { MastraLanguageModelV2 } from '../../shared.types.js';
type StreamResult = Awaited<ReturnType<LanguageModelV2['doStream']>>;
/**
* Wrapper class for AI SDK V5 (LanguageModelV2) that converts doGenerate to return
* a stream format for consistency with Mastra's streaming architecture.
*/
export declare class AISDKV5LanguageModel implements MastraLanguageModelV2 {
#private;
/**
* The language model must specify which language model interface version it implements.
*/
readonly specificationVersion: 'v2';
/**
* Name of the provider for logging purposes.
*/
readonly provider: string;
/**
* Provider-specific model ID for logging purposes.
*/
readonly modelId: string;
readonly gatewayId?: string;
/**
* Supported URL patterns by media type for the provider.
*
* The keys are media type patterns or full media types (e.g. `*\/*` for everything, `audio/*`, `video/*`, or `application/pdf`).
* and the values are arrays of regular expressions that match the URL paths.
* The matching should be against lower-case URLs.
* Matched URLs are supported natively by the model and are not downloaded.
* @returns A map of supported URL patterns by media type (as a promise or a plain object).
*/
supportedUrls: PromiseLike<Record<string, RegExp[]>> | Record<string, RegExp[]>;
constructor(config: LanguageModelV2);
doGenerate(options: LanguageModelV2CallOptions): Promise<{
request: {
body?: unknown;
};
response: StreamResult["response"];
stream: ReadableStream<any>;
content: Array<import("@ai-sdk/provider-v5").LanguageModelV2Content>;
finishReason: import("@ai-sdk/provider-v5").LanguageModelV2FinishReason;
usage: import("@ai-sdk/provider-v5").LanguageModelV2Usage;
providerMetadata?: import("@ai-sdk/provider-v5").SharedV2ProviderMetadata;
warnings: Array<import("@ai-sdk/provider-v5").LanguageModelV2CallWarning>;
}>;
doStream(options: LanguageModelV2CallOptions): Promise<{
stream: ReadableStream<import("@ai-sdk/provider-v5").LanguageModelV2StreamPart>;
request?: {
body?: unknown;
};
response?: {
headers?: import("@ai-sdk/provider-v5").SharedV2Headers;
};
}>;
/**
* Custom serialization for tracing/observability spans.
* `#model` is already a true JS private field and not enumerable, so
* the wrapped provider SDK client can't leak. This method makes the
* safe shape explicit and avoids walking `supportedUrls` (a
* PromiseLike / regex map that isn't useful in spans).
*/
serializeForSpan(): {
specificationVersion: 'v2';
modelId: string;
provider: string;
gatewayId?: string;
};
}
export {};
//# sourceMappingURL=model.d.ts.map