feat(vercel-ai-sdk): migrate to Vercel AI SDK v6 (#4741)

Co-authored-by: kartik-mem0 <kartik.labhshetwar@mem0.ai>
This commit is contained in:
Abhishek Chauhan
2026-06-10 18:41:15 +05:30
committed by GitHub
co-authored by kartik-mem0
parent b819d95d18
commit b4a50e3dc8
24 changed files with 1766 additions and 1418 deletions
@@ -1,4 +1,4 @@
import { LanguageModelV2, LanguageModelV2CallOptions } from "@ai-sdk/provider";
import { LanguageModelV3, LanguageModelV3CallOptions, LanguageModelV3GenerateResult, LanguageModelV3StreamResult } from "@ai-sdk/provider";
import { Mem0ProviderSettings } from "./mem0-provider";
import { createOpenAI, OpenAIProviderSettings } from "@ai-sdk/openai";
import { CohereProviderSettings, createCohere } from "@ai-sdk/cohere";
@@ -7,10 +7,8 @@ import { createGoogleGenerativeAI, GoogleGenerativeAIProviderSettings } from "@a
import { createGroq, GroqProviderSettings } from "@ai-sdk/groq";
// Define a private provider field
class Mem0AITextGenerator implements LanguageModelV2 {
readonly specificationVersion = "v2";
readonly defaultObjectGenerationMode = "json";
readonly supportsImageUrls = false;
class Mem0AITextGenerator implements LanguageModelV3 {
readonly specificationVersion = "v3";
readonly modelId: string;
readonly provider = "mem0";
readonly supportedUrls: Record<string, RegExp[]> = {
@@ -59,11 +57,6 @@ class Mem0AITextGenerator implements LanguageModelV2 {
})(modelId);
break;
case "google":
this.languageModel = createGoogleGenerativeAI({
apiKey: config?.apiKey,
...provider_config as GoogleGenerativeAIProviderSettings,
})(modelId);
break;
case "gemini":
this.languageModel = createGoogleGenerativeAI({
apiKey: config?.apiKey,
@@ -74,15 +67,15 @@ class Mem0AITextGenerator implements LanguageModelV2 {
throw new Error("Invalid provider");
}
}
async doGenerate(options: LanguageModelV2CallOptions): Promise<Awaited<ReturnType<LanguageModelV2['doGenerate']>>> {
async doGenerate(options: LanguageModelV3CallOptions): Promise<LanguageModelV3GenerateResult> {
const result = await this.languageModel.doGenerate(options);
return result as Awaited<ReturnType<LanguageModelV2['doGenerate']>>;
return result as LanguageModelV3GenerateResult;
}
async doStream(options: LanguageModelV2CallOptions): Promise<Awaited<ReturnType<LanguageModelV2['doStream']>>> {
async doStream(options: LanguageModelV3CallOptions): Promise<LanguageModelV3StreamResult> {
const result = await this.languageModel.doStream(options);
return result as Awaited<ReturnType<LanguageModelV2['doStream']>>;
return result as LanguageModelV3StreamResult;
}
}