Compare commits
2 Commits
fix/check-
...
feat/ai-sd
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9745621715 | ||
|
|
ff87ccf8d8 |
@@ -1,13 +0,0 @@
|
||||
diff --git a/dist/index.mjs b/dist/index.mjs
|
||||
index 69ab1599c76801dc1167551b6fa283dded123466..f0af43bba7ad1196fe05338817e65b4ebda40955 100644
|
||||
--- a/dist/index.mjs
|
||||
+++ b/dist/index.mjs
|
||||
@@ -477,7 +477,7 @@ function convertToGoogleGenerativeAIMessages(prompt, options) {
|
||||
|
||||
// src/get-model-path.ts
|
||||
function getModelPath(modelId) {
|
||||
- return modelId.includes("/") ? modelId : `models/${modelId}`;
|
||||
+ return modelId?.includes("models/") ? modelId : `models/${modelId}`;
|
||||
}
|
||||
|
||||
// src/google-generative-ai-options.ts
|
||||
22
.yarn/patches/@ai-sdk-google-npm-3.0.0-beta.27-8900c301e6.patch
vendored
Normal file
22
.yarn/patches/@ai-sdk-google-npm-3.0.0-beta.27-8900c301e6.patch
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
diff --git a/dist/index.mjs b/dist/index.mjs
|
||||
index e89ff0185a2e317165abdeab9fa544f676386564..776237576e80f2afbda4e638dafff1544fdcf586 100644
|
||||
--- a/dist/index.mjs
|
||||
+++ b/dist/index.mjs
|
||||
@@ -477,7 +477,7 @@ function convertToGoogleGenerativeAIMessages(prompt, options) {
|
||||
|
||||
// src/get-model-path.ts
|
||||
function getModelPath(modelId) {
|
||||
- return modelId.includes("/") ? modelId : `models/${modelId}`;
|
||||
+ return modelId.includes("models/") ? modelId : `models/${modelId}`;
|
||||
}
|
||||
|
||||
// src/google-generative-ai-options.ts
|
||||
@@ -599,7 +599,7 @@ function prepareTools({
|
||||
"gemini-flash-latest",
|
||||
"gemini-flash-lite-latest",
|
||||
"gemini-pro-latest"
|
||||
- ].some((id) => id === modelId);
|
||||
+ ].some((id) => modelId.includes(id));
|
||||
const isGemini2 = modelId.includes("gemini-2") || isLatest;
|
||||
const supportsDynamicRetrieval = modelId.includes("gemini-1.5-flash") && !modelId.includes("-8b");
|
||||
if (tools == null) {
|
||||
18
package.json
18
package.json
@@ -101,10 +101,10 @@
|
||||
"@agentic/exa": "^7.3.3",
|
||||
"@agentic/searxng": "^7.3.3",
|
||||
"@agentic/tavily": "^7.3.3",
|
||||
"@ai-sdk/amazon-bedrock": "^3.0.35",
|
||||
"@ai-sdk/google-vertex": "^3.0.40",
|
||||
"@ai-sdk/mistral": "^2.0.19",
|
||||
"@ai-sdk/perplexity": "^2.0.13",
|
||||
"@ai-sdk/amazon-bedrock": "^4.0.0-beta.38",
|
||||
"@ai-sdk/google-vertex": "^4.0.0-beta.42",
|
||||
"@ai-sdk/mistral": "^3.0.0-beta.21",
|
||||
"@ai-sdk/perplexity": "^3.0.0-beta.20",
|
||||
"@ant-design/v5-patch-for-react-19": "^1.0.3",
|
||||
"@anthropic-ai/sdk": "^0.41.0",
|
||||
"@anthropic-ai/vertex-sdk": "patch:@anthropic-ai/vertex-sdk@npm%3A0.11.4#~/.yarn/patches/@anthropic-ai-vertex-sdk-npm-0.11.4-c19cb41edb.patch",
|
||||
@@ -112,7 +112,7 @@
|
||||
"@aws-sdk/client-bedrock-runtime": "^3.840.0",
|
||||
"@aws-sdk/client-s3": "^3.840.0",
|
||||
"@biomejs/biome": "2.2.4",
|
||||
"@cherrystudio/ai-core": "workspace:^1.0.0-alpha.18",
|
||||
"@cherrystudio/ai-core": "workspace:^1.0.3",
|
||||
"@cherrystudio/embedjs": "^0.1.31",
|
||||
"@cherrystudio/embedjs-libsql": "^0.1.31",
|
||||
"@cherrystudio/embedjs-loader-csv": "^0.1.31",
|
||||
@@ -223,7 +223,7 @@
|
||||
"@viz-js/lang-dot": "^1.0.5",
|
||||
"@viz-js/viz": "^3.14.0",
|
||||
"@xyflow/react": "^12.4.4",
|
||||
"ai": "^5.0.68",
|
||||
"ai": "^6.0.0-beta.66",
|
||||
"antd": "patch:antd@npm%3A5.27.0#~/.yarn/patches/antd-npm-5.27.0-aa91c36546.patch",
|
||||
"archiver": "^7.0.1",
|
||||
"async-mutex": "^0.5.0",
|
||||
@@ -361,7 +361,7 @@
|
||||
"yjs": "^13.6.27",
|
||||
"youtubei.js": "^15.0.1",
|
||||
"zipread": "^1.3.3",
|
||||
"zod": "^4.1.5"
|
||||
"zod": "^4.1.12"
|
||||
},
|
||||
"resolutions": {
|
||||
"@codemirror/language": "6.11.3",
|
||||
@@ -385,13 +385,13 @@
|
||||
"undici": "6.21.2",
|
||||
"vite": "npm:rolldown-vite@7.1.5",
|
||||
"tesseract.js@npm:*": "patch:tesseract.js@npm%3A6.0.1#~/.yarn/patches/tesseract.js-npm-6.0.1-2562a7e46d.patch",
|
||||
"@ai-sdk/google@npm:2.0.20": "patch:@ai-sdk/google@npm%3A2.0.20#~/.yarn/patches/@ai-sdk-google-npm-2.0.20-b9102f9d54.patch",
|
||||
"@img/sharp-darwin-arm64": "0.34.3",
|
||||
"@img/sharp-darwin-x64": "0.34.3",
|
||||
"@img/sharp-linux-arm": "0.34.3",
|
||||
"@img/sharp-linux-arm64": "0.34.3",
|
||||
"@img/sharp-linux-x64": "0.34.3",
|
||||
"@img/sharp-win32-x64": "0.34.3"
|
||||
"@img/sharp-win32-x64": "0.34.3",
|
||||
"@ai-sdk/google@npm:3.0.0-beta.27": "patch:@ai-sdk/google@npm%3A3.0.0-beta.27#~/.yarn/patches/@ai-sdk-google-npm-3.0.0-beta.27-8900c301e6.patch"
|
||||
},
|
||||
"packageManager": "yarn@4.9.1",
|
||||
"lint-staged": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@cherrystudio/ai-core",
|
||||
"version": "1.0.1",
|
||||
"version": "1.0.3",
|
||||
"description": "Cherry Studio AI Core - Unified AI Provider Interface Based on Vercel AI SDK",
|
||||
"main": "dist/index.js",
|
||||
"module": "dist/index.mjs",
|
||||
@@ -36,15 +36,16 @@
|
||||
"ai": "^5.0.26"
|
||||
},
|
||||
"dependencies": {
|
||||
"@ai-sdk/anthropic": "^2.0.27",
|
||||
"@ai-sdk/azure": "^2.0.49",
|
||||
"@ai-sdk/deepseek": "^1.0.23",
|
||||
"@ai-sdk/openai": "^2.0.48",
|
||||
"@ai-sdk/openai-compatible": "^1.0.22",
|
||||
"@ai-sdk/provider": "^2.0.0",
|
||||
"@ai-sdk/provider-utils": "^3.0.12",
|
||||
"@ai-sdk/xai": "^2.0.26",
|
||||
"zod": "^4.1.5"
|
||||
"@ai-sdk/anthropic": "^3.0.0-beta.34",
|
||||
"@ai-sdk/azure": "^3.0.0-beta.34",
|
||||
"@ai-sdk/deepseek": "^2.0.0-beta.21",
|
||||
"@ai-sdk/google": "patch:@ai-sdk/google@npm%3A3.0.0-beta.27#~/.yarn/patches/@ai-sdk-google-npm-3.0.0-beta.27-8900c301e6.patch",
|
||||
"@ai-sdk/openai": "^3.0.0-beta.34",
|
||||
"@ai-sdk/openai-compatible": "^2.0.0-beta.21",
|
||||
"@ai-sdk/provider": "^3.0.0-beta.8",
|
||||
"@ai-sdk/provider-utils": "^4.0.0-beta.20",
|
||||
"@ai-sdk/xai": "^3.0.0-beta.22",
|
||||
"zod": "^4.1.12"
|
||||
},
|
||||
"devDependencies": {
|
||||
"tsdown": "^0.12.9",
|
||||
|
||||
@@ -2,15 +2,15 @@
|
||||
* 中间件管理器
|
||||
* 专注于 AI SDK 中间件的管理,与插件系统分离
|
||||
*/
|
||||
import { LanguageModelV2Middleware } from '@ai-sdk/provider'
|
||||
import { LanguageModelV3Middleware } from '@ai-sdk/provider'
|
||||
|
||||
/**
|
||||
* 创建中间件列表
|
||||
* 合并用户提供的中间件
|
||||
*/
|
||||
export function createMiddlewares(userMiddlewares: LanguageModelV2Middleware[] = []): LanguageModelV2Middleware[] {
|
||||
export function createMiddlewares(userMiddlewares: LanguageModelV3Middleware[] = []): LanguageModelV3Middleware[] {
|
||||
// 未来可以在这里添加默认的中间件
|
||||
const defaultMiddlewares: LanguageModelV2Middleware[] = []
|
||||
const defaultMiddlewares: LanguageModelV3Middleware[] = []
|
||||
|
||||
return [...defaultMiddlewares, ...userMiddlewares]
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/**
|
||||
* 中间件系统类型定义
|
||||
*/
|
||||
import { LanguageModelV2Middleware } from '@ai-sdk/provider'
|
||||
import { LanguageModelV3Middleware } from '@ai-sdk/provider'
|
||||
|
||||
/**
|
||||
* 具名中间件接口
|
||||
*/
|
||||
export interface NamedMiddleware {
|
||||
name: string
|
||||
middleware: LanguageModelV2Middleware
|
||||
middleware: LanguageModelV3Middleware
|
||||
}
|
||||
|
||||
@@ -2,16 +2,16 @@
|
||||
* 模型包装工具函数
|
||||
* 用于将中间件应用到LanguageModel上
|
||||
*/
|
||||
import { LanguageModelV2, LanguageModelV2Middleware } from '@ai-sdk/provider'
|
||||
import { LanguageModelV3, LanguageModelV3Middleware } from '@ai-sdk/provider'
|
||||
import { wrapLanguageModel } from 'ai'
|
||||
|
||||
/**
|
||||
* 使用中间件包装模型
|
||||
*/
|
||||
export function wrapModelWithMiddlewares(
|
||||
model: LanguageModelV2,
|
||||
middlewares: LanguageModelV2Middleware[]
|
||||
): LanguageModelV2 {
|
||||
model: LanguageModelV3,
|
||||
middlewares: LanguageModelV3Middleware[]
|
||||
): LanguageModelV3 {
|
||||
if (middlewares.length === 0) {
|
||||
return model
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* 集成了来自 ModelCreator 的特殊处理逻辑
|
||||
*/
|
||||
|
||||
import { EmbeddingModelV2, ImageModelV2, LanguageModelV2, LanguageModelV2Middleware } from '@ai-sdk/provider'
|
||||
import { EmbeddingModelV3, ImageModelV3, LanguageModelV3, LanguageModelV3Middleware } from '@ai-sdk/provider'
|
||||
|
||||
import { wrapModelWithMiddlewares } from '../middleware/wrapper'
|
||||
import { DEFAULT_SEPARATOR, globalRegistryManagement } from '../providers/RegistryManagement'
|
||||
@@ -23,10 +23,10 @@ export class ModelResolver {
|
||||
modelId: string,
|
||||
fallbackProviderId: string,
|
||||
providerOptions?: any,
|
||||
middlewares?: LanguageModelV2Middleware[]
|
||||
): Promise<LanguageModelV2> {
|
||||
middlewares?: LanguageModelV3Middleware[]
|
||||
): Promise<LanguageModelV3> {
|
||||
let finalProviderId = fallbackProviderId
|
||||
let model: LanguageModelV2
|
||||
let model: LanguageModelV3
|
||||
// 🎯 处理 OpenAI 模式选择逻辑 (从 ModelCreator 迁移)
|
||||
if ((fallbackProviderId === 'openai' || fallbackProviderId === 'azure') && providerOptions?.mode === 'chat') {
|
||||
finalProviderId = `${fallbackProviderId}-chat`
|
||||
@@ -51,7 +51,7 @@ export class ModelResolver {
|
||||
/**
|
||||
* 解析文本嵌入模型
|
||||
*/
|
||||
async resolveTextEmbeddingModel(modelId: string, fallbackProviderId: string): Promise<EmbeddingModelV2<string>> {
|
||||
async resolveTextEmbeddingModel(modelId: string, fallbackProviderId: string): Promise<EmbeddingModelV3<string>> {
|
||||
if (modelId.includes(DEFAULT_SEPARATOR)) {
|
||||
return this.resolveNamespacedEmbeddingModel(modelId)
|
||||
}
|
||||
@@ -62,7 +62,7 @@ export class ModelResolver {
|
||||
/**
|
||||
* 解析图像模型
|
||||
*/
|
||||
async resolveImageModel(modelId: string, fallbackProviderId: string): Promise<ImageModelV2> {
|
||||
async resolveImageModel(modelId: string, fallbackProviderId: string): Promise<ImageModelV3> {
|
||||
if (modelId.includes(DEFAULT_SEPARATOR)) {
|
||||
return this.resolveNamespacedImageModel(modelId)
|
||||
}
|
||||
@@ -74,7 +74,7 @@ export class ModelResolver {
|
||||
* 解析命名空间格式的语言模型
|
||||
* aihubmix:anthropic:claude-3 -> globalRegistryManagement.languageModel('aihubmix:anthropic:claude-3')
|
||||
*/
|
||||
private resolveNamespacedModel(modelId: string): LanguageModelV2 {
|
||||
private resolveNamespacedModel(modelId: string): LanguageModelV3 {
|
||||
return globalRegistryManagement.languageModel(modelId as any)
|
||||
}
|
||||
|
||||
@@ -82,7 +82,7 @@ export class ModelResolver {
|
||||
* 解析传统格式的语言模型
|
||||
* providerId: 'openai', modelId: 'gpt-4' -> globalRegistryManagement.languageModel('openai:gpt-4')
|
||||
*/
|
||||
private resolveTraditionalModel(providerId: string, modelId: string): LanguageModelV2 {
|
||||
private resolveTraditionalModel(providerId: string, modelId: string): LanguageModelV3 {
|
||||
const fullModelId = `${providerId}${DEFAULT_SEPARATOR}${modelId}`
|
||||
return globalRegistryManagement.languageModel(fullModelId as any)
|
||||
}
|
||||
@@ -90,14 +90,14 @@ export class ModelResolver {
|
||||
/**
|
||||
* 解析命名空间格式的嵌入模型
|
||||
*/
|
||||
private resolveNamespacedEmbeddingModel(modelId: string): EmbeddingModelV2<string> {
|
||||
private resolveNamespacedEmbeddingModel(modelId: string): EmbeddingModelV3<string> {
|
||||
return globalRegistryManagement.textEmbeddingModel(modelId as any)
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析传统格式的嵌入模型
|
||||
*/
|
||||
private resolveTraditionalEmbeddingModel(providerId: string, modelId: string): EmbeddingModelV2<string> {
|
||||
private resolveTraditionalEmbeddingModel(providerId: string, modelId: string): EmbeddingModelV3<string> {
|
||||
const fullModelId = `${providerId}${DEFAULT_SEPARATOR}${modelId}`
|
||||
return globalRegistryManagement.textEmbeddingModel(fullModelId as any)
|
||||
}
|
||||
@@ -105,14 +105,14 @@ export class ModelResolver {
|
||||
/**
|
||||
* 解析命名空间格式的图像模型
|
||||
*/
|
||||
private resolveNamespacedImageModel(modelId: string): ImageModelV2 {
|
||||
private resolveNamespacedImageModel(modelId: string): ImageModelV3 {
|
||||
return globalRegistryManagement.imageModel(modelId as any)
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析传统格式的图像模型
|
||||
*/
|
||||
private resolveTraditionalImageModel(providerId: string, modelId: string): ImageModelV2 {
|
||||
private resolveTraditionalImageModel(providerId: string, modelId: string): ImageModelV3 {
|
||||
const fullModelId = `${providerId}${DEFAULT_SEPARATOR}${modelId}`
|
||||
return globalRegistryManagement.imageModel(fullModelId as any)
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* Creation 模块类型定义
|
||||
*/
|
||||
import { LanguageModelV2Middleware } from '@ai-sdk/provider'
|
||||
import { LanguageModelV3Middleware } from '@ai-sdk/provider'
|
||||
|
||||
import type { ProviderId, ProviderSettingsMap } from '../providers/types'
|
||||
|
||||
@@ -9,7 +9,7 @@ export interface ModelConfig<T extends ProviderId = ProviderId> {
|
||||
providerId: T
|
||||
modelId: string
|
||||
providerSettings: ProviderSettingsMap[T] & { mode?: 'chat' | 'responses' }
|
||||
middlewares?: LanguageModelV2Middleware[]
|
||||
middlewares?: LanguageModelV3Middleware[]
|
||||
// 额外模型参数
|
||||
extraModelConfig?: Record<string, any>
|
||||
}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { type AnthropicProviderOptions } from '@ai-sdk/anthropic'
|
||||
import { type GoogleGenerativeAIProviderOptions } from '@ai-sdk/google'
|
||||
import { type OpenAIResponsesProviderOptions } from '@ai-sdk/openai'
|
||||
import { type SharedV2ProviderMetadata } from '@ai-sdk/provider'
|
||||
import { type SharedV3ProviderMetadata } from '@ai-sdk/provider'
|
||||
import { type XaiProviderOptions } from '@ai-sdk/xai'
|
||||
import { type OpenRouterProviderOptions } from '@openrouter/ai-sdk-provider'
|
||||
|
||||
export type ProviderOptions<T extends keyof SharedV2ProviderMetadata> = SharedV2ProviderMetadata[T]
|
||||
export type ProviderOptions<T extends keyof SharedV3ProviderMetadata> = SharedV3ProviderMetadata[T]
|
||||
|
||||
/**
|
||||
* 供应商选项类型,如果map中没有,说明没有约束
|
||||
@@ -29,4 +29,4 @@ export type TypedProviderOptions = {
|
||||
[K in keyof ProviderOptionsMap]?: ProviderOptionsMap[K]
|
||||
} & {
|
||||
[K in string]?: Record<string, any>
|
||||
} & SharedV2ProviderMetadata
|
||||
} & SharedV3ProviderMetadata
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// 核心类型和接口
|
||||
export type { AiPlugin, AiRequestContext, HookResult, PluginManagerConfig } from './types'
|
||||
import type { ImageModelV2 } from '@ai-sdk/provider'
|
||||
import type { ImageModelV3 } from '@ai-sdk/provider'
|
||||
import type { LanguageModel } from 'ai'
|
||||
|
||||
import type { ProviderId } from '../providers'
|
||||
@@ -12,7 +12,7 @@ export { PluginManager } from './manager'
|
||||
// 工具函数
|
||||
export function createContext<T extends ProviderId>(
|
||||
providerId: T,
|
||||
model: LanguageModel | ImageModelV2,
|
||||
model: LanguageModel | ImageModelV3,
|
||||
originalParams: any
|
||||
): AiRequestContext {
|
||||
return {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { ImageModelV2 } from '@ai-sdk/provider'
|
||||
import type { ImageModelV3 } from '@ai-sdk/provider'
|
||||
import type { LanguageModel, TextStreamPart, ToolSet } from 'ai'
|
||||
|
||||
import { type ProviderId } from '../providers/types'
|
||||
@@ -14,7 +14,7 @@ export type RecursiveCallFn = (newParams: any) => Promise<any>
|
||||
*/
|
||||
export interface AiRequestContext {
|
||||
providerId: ProviderId
|
||||
model: LanguageModel | ImageModelV2
|
||||
model: LanguageModel | ImageModelV3
|
||||
originalParams: any
|
||||
metadata: Record<string, any>
|
||||
startTime: number
|
||||
@@ -36,7 +36,7 @@ export interface AiPlugin {
|
||||
resolveModel?: (
|
||||
modelId: string,
|
||||
context: AiRequestContext
|
||||
) => Promise<LanguageModel | ImageModelV2 | null> | LanguageModel | ImageModelV2 | null
|
||||
) => Promise<LanguageModel | ImageModelV3 | null> | LanguageModel | ImageModelV3 | null
|
||||
loadTemplate?: (templateName: string, context: AiRequestContext) => any | null | Promise<any | null>
|
||||
|
||||
// 【Sequential】串行钩子 - 链式执行,支持数据转换
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* 例如: aihubmix:anthropic:claude-3.5-sonnet
|
||||
*/
|
||||
|
||||
import { ProviderV2 } from '@ai-sdk/provider'
|
||||
import { ProviderV3 as Provider } from '@ai-sdk/provider'
|
||||
import { customProvider } from 'ai'
|
||||
|
||||
import { globalRegistryManagement } from './RegistryManagement'
|
||||
@@ -47,10 +47,10 @@ function parseHubModelId(modelId: string): { provider: string; actualModelId: st
|
||||
/**
|
||||
* 创建Hub Provider
|
||||
*/
|
||||
export function createHubProvider(config: HubProviderConfig): ProviderV2 {
|
||||
export function createHubProvider(config: HubProviderConfig): Provider {
|
||||
const { hubId } = config
|
||||
|
||||
function getTargetProvider(providerId: string): ProviderV2 {
|
||||
function getTargetProvider(providerId: string): Provider {
|
||||
// 从全局注册表获取provider实例
|
||||
try {
|
||||
const provider = globalRegistryManagement.getProvider(providerId)
|
||||
|
||||
@@ -4,10 +4,15 @@
|
||||
* 基于 AI SDK 原生的 createProviderRegistry
|
||||
*/
|
||||
|
||||
import { EmbeddingModelV2, ImageModelV2, LanguageModelV2, ProviderV2 } from '@ai-sdk/provider'
|
||||
import {
|
||||
EmbeddingModelV3 as EmbeddingModel,
|
||||
ImageModelV3 as ImageModel,
|
||||
LanguageModelV3 as LanguageModel,
|
||||
ProviderV3 as Provider
|
||||
} from '@ai-sdk/provider'
|
||||
import { createProviderRegistry, type ProviderRegistryProvider } from 'ai'
|
||||
|
||||
type PROVIDERS = Record<string, ProviderV2>
|
||||
type PROVIDERS = Record<string, Provider>
|
||||
|
||||
export const DEFAULT_SEPARATOR = '|'
|
||||
|
||||
@@ -26,7 +31,7 @@ export class RegistryManagement<SEPARATOR extends string = typeof DEFAULT_SEPARA
|
||||
/**
|
||||
* 注册已配置好的 provider 实例
|
||||
*/
|
||||
registerProvider(id: string, provider: ProviderV2, aliases?: string[]): this {
|
||||
registerProvider(id: string, provider: Provider, aliases?: string[]): this {
|
||||
// 注册主provider
|
||||
this.providers[id] = provider
|
||||
|
||||
@@ -45,14 +50,14 @@ export class RegistryManagement<SEPARATOR extends string = typeof DEFAULT_SEPARA
|
||||
/**
|
||||
* 获取已注册的provider实例
|
||||
*/
|
||||
getProvider(id: string): ProviderV2 | undefined {
|
||||
getProvider(id: string): Provider | undefined {
|
||||
return this.providers[id]
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量注册 providers
|
||||
*/
|
||||
registerProviders(providers: Record<string, ProviderV2>): this {
|
||||
registerProviders(providers: Record<string, Provider>): this {
|
||||
Object.assign(this.providers, providers)
|
||||
this.rebuildRegistry()
|
||||
return this
|
||||
@@ -106,7 +111,7 @@ export class RegistryManagement<SEPARATOR extends string = typeof DEFAULT_SEPARA
|
||||
/**
|
||||
* 获取语言模型 - AI SDK 原生方法
|
||||
*/
|
||||
languageModel(id: `${string}${SEPARATOR}${string}`): LanguageModelV2 {
|
||||
languageModel(id: `${string}${SEPARATOR}${string}`): LanguageModel {
|
||||
if (!this.registry) {
|
||||
throw new Error('No providers registered')
|
||||
}
|
||||
@@ -116,7 +121,7 @@ export class RegistryManagement<SEPARATOR extends string = typeof DEFAULT_SEPARA
|
||||
/**
|
||||
* 获取文本嵌入模型 - AI SDK 原生方法
|
||||
*/
|
||||
textEmbeddingModel(id: `${string}${SEPARATOR}${string}`): EmbeddingModelV2<string> {
|
||||
textEmbeddingModel(id: `${string}${SEPARATOR}${string}`): EmbeddingModel<string> {
|
||||
if (!this.registry) {
|
||||
throw new Error('No providers registered')
|
||||
}
|
||||
@@ -126,7 +131,7 @@ export class RegistryManagement<SEPARATOR extends string = typeof DEFAULT_SEPARA
|
||||
/**
|
||||
* 获取图像模型 - AI SDK 原生方法
|
||||
*/
|
||||
imageModel(id: `${string}${SEPARATOR}${string}`): ImageModelV2 {
|
||||
imageModel(id: `${string}${SEPARATOR}${string}`): ImageModel {
|
||||
if (!this.registry) {
|
||||
throw new Error('No providers registered')
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import { createDeepSeek } from '@ai-sdk/deepseek'
|
||||
import { createGoogleGenerativeAI } from '@ai-sdk/google'
|
||||
import { createOpenAI, type OpenAIProviderSettings } from '@ai-sdk/openai'
|
||||
import { createOpenAICompatible } from '@ai-sdk/openai-compatible'
|
||||
import { LanguageModelV2 } from '@ai-sdk/provider'
|
||||
import { LanguageModelV2, LanguageModelV3 } from '@ai-sdk/provider'
|
||||
import { createXai } from '@ai-sdk/xai'
|
||||
import { createOpenRouter } from '@openrouter/ai-sdk-provider'
|
||||
import { customProvider, Provider } from 'ai'
|
||||
@@ -48,7 +48,7 @@ export const isBaseProvider = (id: ProviderId): id is BaseProviderId => {
|
||||
type BaseProvider = {
|
||||
id: BaseProviderId
|
||||
name: string
|
||||
creator: (options: any) => Provider | LanguageModelV2
|
||||
creator: (options: any) => Provider | LanguageModelV2 | LanguageModelV3
|
||||
supportsImageGeneration: boolean
|
||||
}
|
||||
|
||||
|
||||
@@ -5,12 +5,12 @@ import { type GoogleGenerativeAIProviderSettings } from '@ai-sdk/google'
|
||||
import { type OpenAIProviderSettings } from '@ai-sdk/openai'
|
||||
import { type OpenAICompatibleProviderSettings } from '@ai-sdk/openai-compatible'
|
||||
import {
|
||||
EmbeddingModelV2 as EmbeddingModel,
|
||||
ImageModelV2 as ImageModel,
|
||||
LanguageModelV2 as LanguageModel,
|
||||
ProviderV2,
|
||||
SpeechModelV2 as SpeechModel,
|
||||
TranscriptionModelV2 as TranscriptionModel
|
||||
EmbeddingModelV3 as EmbeddingModel,
|
||||
ImageModelV3 as ImageModel,
|
||||
LanguageModelV3 as LanguageModel,
|
||||
ProviderV3 as Provider,
|
||||
SpeechModelV3 as SpeechModel,
|
||||
TranscriptionModelV3 as TranscriptionModel
|
||||
} from '@ai-sdk/provider'
|
||||
import { type XaiProviderSettings } from '@ai-sdk/xai'
|
||||
|
||||
@@ -79,9 +79,9 @@ export const METHOD_MAP = {
|
||||
embedding: 'textEmbeddingModel',
|
||||
transcription: 'transcriptionModel',
|
||||
speech: 'speechModel'
|
||||
} as const satisfies Record<AiSdkModelType, keyof ProviderV2>
|
||||
} as const satisfies Record<AiSdkModelType, keyof Provider>
|
||||
|
||||
export type AiSdkModelMethodMap = Record<AiSdkModelType, keyof ProviderV2>
|
||||
export type AiSdkModelMethodMap = Record<AiSdkModelType, keyof Provider>
|
||||
|
||||
export type AiSdkModelReturnMap = {
|
||||
text: LanguageModel
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ImageModelV2 } from '@ai-sdk/provider'
|
||||
import { ImageModelV3 } from '@ai-sdk/provider'
|
||||
import { experimental_generateImage as aiGenerateImage, NoImageGeneratedError } from 'ai'
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
|
||||
@@ -28,7 +28,7 @@ vi.mock('../../providers/RegistryManagement', () => ({
|
||||
|
||||
describe('RuntimeExecutor.generateImage', () => {
|
||||
let executor: RuntimeExecutor<'openai'>
|
||||
let mockImageModel: ImageModelV2
|
||||
let mockImageModel: ImageModelV3
|
||||
let mockGenerateImageResult: any
|
||||
|
||||
beforeEach(() => {
|
||||
@@ -44,7 +44,7 @@ describe('RuntimeExecutor.generateImage', () => {
|
||||
mockImageModel = {
|
||||
modelId: 'dall-e-3',
|
||||
provider: 'openai'
|
||||
} as ImageModelV2
|
||||
} as ImageModelV3
|
||||
|
||||
// Mock generateImage result
|
||||
mockGenerateImageResult = {
|
||||
@@ -256,7 +256,7 @@ describe('RuntimeExecutor.generateImage', () => {
|
||||
const customImageModel = {
|
||||
modelId: 'custom-model',
|
||||
provider: 'openai'
|
||||
} as ImageModelV2
|
||||
} as ImageModelV3
|
||||
|
||||
const modelResolutionPlugin: AiPlugin = {
|
||||
name: 'model-resolver',
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* 运行时执行器
|
||||
* 专注于插件化的AI调用处理
|
||||
*/
|
||||
import { ImageModelV2, LanguageModelV2, LanguageModelV2Middleware } from '@ai-sdk/provider'
|
||||
import { ImageModelV3, LanguageModelV2, LanguageModelV3, LanguageModelV3Middleware } from '@ai-sdk/provider'
|
||||
import {
|
||||
experimental_generateImage as _generateImage,
|
||||
generateObject as _generateObject,
|
||||
@@ -44,7 +44,7 @@ export class RuntimeExecutor<T extends ProviderId = ProviderId> {
|
||||
this.pluginEngine = new PluginEngine(config.providerId, config.plugins || [])
|
||||
}
|
||||
|
||||
private createResolveModelPlugin(middlewares?: LanguageModelV2Middleware[]) {
|
||||
private createResolveModelPlugin(middlewares?: LanguageModelV3Middleware[]) {
|
||||
return definePlugin({
|
||||
name: '_internal_resolveModel',
|
||||
enforce: 'post',
|
||||
@@ -84,7 +84,7 @@ export class RuntimeExecutor<T extends ProviderId = ProviderId> {
|
||||
async streamText(
|
||||
params: streamTextParams,
|
||||
options?: {
|
||||
middlewares?: LanguageModelV2Middleware[]
|
||||
middlewares?: LanguageModelV3Middleware[]
|
||||
}
|
||||
): Promise<ReturnType<typeof _streamText>> {
|
||||
const { model } = params
|
||||
@@ -123,7 +123,7 @@ export class RuntimeExecutor<T extends ProviderId = ProviderId> {
|
||||
async generateText(
|
||||
params: generateTextParams,
|
||||
options?: {
|
||||
middlewares?: LanguageModelV2Middleware[]
|
||||
middlewares?: LanguageModelV3Middleware[]
|
||||
}
|
||||
): Promise<ReturnType<typeof _generateText>> {
|
||||
const { model } = params
|
||||
@@ -151,7 +151,7 @@ export class RuntimeExecutor<T extends ProviderId = ProviderId> {
|
||||
async generateObject(
|
||||
params: generateObjectParams,
|
||||
options?: {
|
||||
middlewares?: LanguageModelV2Middleware[]
|
||||
middlewares?: LanguageModelV3Middleware[]
|
||||
}
|
||||
): Promise<ReturnType<typeof _generateObject>> {
|
||||
const { model } = params
|
||||
@@ -179,7 +179,7 @@ export class RuntimeExecutor<T extends ProviderId = ProviderId> {
|
||||
streamObject(
|
||||
params: streamObjectParams,
|
||||
options?: {
|
||||
middlewares?: LanguageModelV2Middleware[]
|
||||
middlewares?: LanguageModelV3Middleware[]
|
||||
}
|
||||
): Promise<ReturnType<typeof _streamObject>> {
|
||||
const { model } = params
|
||||
@@ -237,8 +237,8 @@ export class RuntimeExecutor<T extends ProviderId = ProviderId> {
|
||||
*/
|
||||
private async resolveModel(
|
||||
modelOrId: LanguageModel,
|
||||
middlewares?: LanguageModelV2Middleware[]
|
||||
): Promise<LanguageModelV2> {
|
||||
middlewares?: LanguageModelV3Middleware[]
|
||||
): Promise<LanguageModelV2 | LanguageModelV3> {
|
||||
if (typeof modelOrId === 'string') {
|
||||
// 🎯 字符串modelId,使用新的ModelResolver解析,传递完整参数
|
||||
return await globalModelResolver.resolveLanguageModel(
|
||||
@@ -256,7 +256,7 @@ export class RuntimeExecutor<T extends ProviderId = ProviderId> {
|
||||
/**
|
||||
* 解析图像模型:如果是字符串则创建图像模型,如果是模型则直接返回
|
||||
*/
|
||||
private async resolveImageModel(modelOrId: ImageModelV2 | string): Promise<ImageModelV2> {
|
||||
private async resolveImageModel(modelOrId: ImageModelV3 | string): Promise<ImageModelV3> {
|
||||
try {
|
||||
if (typeof modelOrId === 'string') {
|
||||
// 字符串modelId,使用新的ModelResolver解析
|
||||
|
||||
@@ -11,7 +11,7 @@ export type { RuntimeConfig } from './types'
|
||||
|
||||
// === 便捷工厂函数 ===
|
||||
|
||||
import { LanguageModelV2Middleware } from '@ai-sdk/provider'
|
||||
import { LanguageModelV3Middleware } from '@ai-sdk/provider'
|
||||
|
||||
import { type AiPlugin } from '../plugins'
|
||||
import { type ProviderId, type ProviderSettingsMap } from '../providers/types'
|
||||
@@ -48,7 +48,7 @@ export async function streamText<T extends ProviderId>(
|
||||
options: ProviderSettingsMap[T] & { mode?: 'chat' | 'responses' },
|
||||
params: Parameters<RuntimeExecutor<T>['streamText']>[0],
|
||||
plugins?: AiPlugin[],
|
||||
middlewares?: LanguageModelV2Middleware[]
|
||||
middlewares?: LanguageModelV3Middleware[]
|
||||
): Promise<ReturnType<RuntimeExecutor<T>['streamText']>> {
|
||||
const executor = createExecutor(providerId, options, plugins)
|
||||
return executor.streamText(params, { middlewares })
|
||||
@@ -62,7 +62,7 @@ export async function generateText<T extends ProviderId>(
|
||||
options: ProviderSettingsMap[T] & { mode?: 'chat' | 'responses' },
|
||||
params: Parameters<RuntimeExecutor<T>['generateText']>[0],
|
||||
plugins?: AiPlugin[],
|
||||
middlewares?: LanguageModelV2Middleware[]
|
||||
middlewares?: LanguageModelV3Middleware[]
|
||||
): Promise<ReturnType<RuntimeExecutor<T>['generateText']>> {
|
||||
const executor = createExecutor(providerId, options, plugins)
|
||||
return executor.generateText(params, { middlewares })
|
||||
@@ -76,7 +76,7 @@ export async function generateObject<T extends ProviderId>(
|
||||
options: ProviderSettingsMap[T] & { mode?: 'chat' | 'responses' },
|
||||
params: Parameters<RuntimeExecutor<T>['generateObject']>[0],
|
||||
plugins?: AiPlugin[],
|
||||
middlewares?: LanguageModelV2Middleware[]
|
||||
middlewares?: LanguageModelV3Middleware[]
|
||||
): Promise<ReturnType<RuntimeExecutor<T>['generateObject']>> {
|
||||
const executor = createExecutor(providerId, options, plugins)
|
||||
return executor.generateObject(params, { middlewares })
|
||||
@@ -90,7 +90,7 @@ export async function streamObject<T extends ProviderId>(
|
||||
options: ProviderSettingsMap[T] & { mode?: 'chat' | 'responses' },
|
||||
params: Parameters<RuntimeExecutor<T>['streamObject']>[0],
|
||||
plugins?: AiPlugin[],
|
||||
middlewares?: LanguageModelV2Middleware[]
|
||||
middlewares?: LanguageModelV3Middleware[]
|
||||
): Promise<ReturnType<RuntimeExecutor<T>['streamObject']>> {
|
||||
const executor = createExecutor(providerId, options, plugins)
|
||||
return executor.streamObject(params, { middlewares })
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* eslint-disable @eslint-react/naming-convention/context-name */
|
||||
import { ImageModelV2 } from '@ai-sdk/provider'
|
||||
import { ImageModelV3 } from '@ai-sdk/provider'
|
||||
import { experimental_generateImage, generateObject, generateText, LanguageModel, streamObject, streamText } from 'ai'
|
||||
|
||||
import { type AiPlugin, createContext, PluginManager } from '../plugins'
|
||||
@@ -141,16 +141,16 @@ export class PluginEngine<T extends ProviderId = ProviderId> {
|
||||
* 提供给AiExecutor使用
|
||||
*/
|
||||
async executeImageWithPlugins<
|
||||
TParams extends Omit<Parameters<typeof experimental_generateImage>[0], 'model'> & { model: string | ImageModelV2 },
|
||||
TParams extends Omit<Parameters<typeof experimental_generateImage>[0], 'model'> & { model: string | ImageModelV3 },
|
||||
TResult extends ReturnType<typeof experimental_generateImage>
|
||||
>(
|
||||
methodName: string,
|
||||
params: TParams,
|
||||
executor: (model: ImageModelV2, transformedParams: TParams) => TResult,
|
||||
executor: (model: ImageModelV3, transformedParams: TParams) => TResult,
|
||||
_context?: ReturnType<typeof createContext>
|
||||
): Promise<TResult> {
|
||||
// 统一处理模型解析
|
||||
let resolvedModel: ImageModelV2 | undefined
|
||||
let resolvedModel: ImageModelV3 | undefined
|
||||
let modelId: string
|
||||
const { model } = params
|
||||
if (typeof model === 'string') {
|
||||
@@ -183,7 +183,7 @@ export class PluginEngine<T extends ProviderId = ProviderId> {
|
||||
|
||||
// 2. 解析模型(如果是字符串)
|
||||
if (typeof model === 'string') {
|
||||
const resolved = await this.pluginManager.executeFirst<ImageModelV2>('resolveModel', modelId, context)
|
||||
const resolved = await this.pluginManager.executeFirst<ImageModelV3>('resolveModel', modelId, context)
|
||||
if (!resolved) {
|
||||
throw new Error(`Failed to resolve image model: ${modelId}`)
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* Runtime 层类型定义
|
||||
*/
|
||||
import { ImageModelV2 } from '@ai-sdk/provider'
|
||||
import { ImageModelV3 } from '@ai-sdk/provider'
|
||||
import { experimental_generateImage, generateObject, generateText, streamObject, streamText } from 'ai'
|
||||
|
||||
import { type ModelConfig } from '../models/types'
|
||||
@@ -18,7 +18,7 @@ export interface RuntimeConfig<T extends ProviderId = ProviderId> {
|
||||
}
|
||||
|
||||
export type generateImageParams = Omit<Parameters<typeof experimental_generateImage>[0], 'model'> & {
|
||||
model: string | ImageModelV2
|
||||
model: string | ImageModelV3
|
||||
}
|
||||
export type generateObjectParams = Parameters<typeof generateObject>[0]
|
||||
export type generateTextParams = Parameters<typeof generateText>[0]
|
||||
|
||||
@@ -26,7 +26,7 @@ export { PluginEngine } from './core/runtime/pluginEngine'
|
||||
|
||||
// ==================== AI SDK 常用类型导出 ====================
|
||||
// 直接导出 AI SDK 的常用类型,方便使用
|
||||
export type { LanguageModelV2Middleware, LanguageModelV2StreamPart } from '@ai-sdk/provider'
|
||||
export type { LanguageModelV3Middleware, LanguageModelV3StreamPart } from '@ai-sdk/provider'
|
||||
export type { ToolCall } from '@ai-sdk/provider-utils'
|
||||
export type { ReasoningPart } from '@ai-sdk/provider-utils'
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// ported from https://github.com/ben-vargas/ai-sdk-provider-claude-code/blob/main/src/map-claude-code-finish-reason.ts#L22
|
||||
import type { LanguageModelV2FinishReason } from '@ai-sdk/provider'
|
||||
import type { LanguageModelV3FinishReason } from '@ai-sdk/provider'
|
||||
|
||||
/**
|
||||
* Maps Claude Code SDK result subtypes to AI SDK finish reasons.
|
||||
@@ -20,7 +20,7 @@ import type { LanguageModelV2FinishReason } from '@ai-sdk/provider'
|
||||
* - 'error_during_execution' -> 'error' (execution error)
|
||||
* - default -> 'stop' (unknown subtypes treated as normal completion)
|
||||
*/
|
||||
export function mapClaudeCodeFinishReason(subtype?: string): LanguageModelV2FinishReason {
|
||||
export function mapClaudeCodeFinishReason(subtype?: string): LanguageModelV3FinishReason {
|
||||
switch (subtype) {
|
||||
case 'success':
|
||||
return 'stop'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { LanguageModelV2Source } from '@ai-sdk/provider'
|
||||
import type { LanguageModelV3Source } from '@ai-sdk/provider'
|
||||
import type { WebSearchResultBlock } from '@anthropic-ai/sdk/resources'
|
||||
import type OpenAI from '@cherrystudio/openai'
|
||||
import type { GenerateImagesConfig, GroundingMetadata, PersonGeneration } from '@google/genai'
|
||||
@@ -614,7 +614,7 @@ export type WebSearchProviderResponse = {
|
||||
results: WebSearchProviderResult[]
|
||||
}
|
||||
|
||||
export type AISDKWebSearchResult = Omit<Extract<LanguageModelV2Source, { sourceType: 'url' }>, 'sourceType'>
|
||||
export type AISDKWebSearchResult = Omit<Extract<LanguageModelV3Source, { sourceType: 'url' }>, 'sourceType'>
|
||||
|
||||
export type WebSearchResults =
|
||||
| WebSearchProviderResponse
|
||||
|
||||
266
yarn.lock
266
yarn.lock
@@ -74,133 +74,133 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@ai-sdk/amazon-bedrock@npm:^3.0.35":
|
||||
version: 3.0.35
|
||||
resolution: "@ai-sdk/amazon-bedrock@npm:3.0.35"
|
||||
"@ai-sdk/amazon-bedrock@npm:^4.0.0-beta.38":
|
||||
version: 4.0.0-beta.38
|
||||
resolution: "@ai-sdk/amazon-bedrock@npm:4.0.0-beta.38"
|
||||
dependencies:
|
||||
"@ai-sdk/anthropic": "npm:2.0.27"
|
||||
"@ai-sdk/provider": "npm:2.0.0"
|
||||
"@ai-sdk/provider-utils": "npm:3.0.12"
|
||||
"@ai-sdk/anthropic": "npm:3.0.0-beta.34"
|
||||
"@ai-sdk/provider": "npm:3.0.0-beta.8"
|
||||
"@ai-sdk/provider-utils": "npm:4.0.0-beta.20"
|
||||
"@smithy/eventstream-codec": "npm:^4.0.1"
|
||||
"@smithy/util-utf8": "npm:^4.0.0"
|
||||
aws4fetch: "npm:^1.0.20"
|
||||
peerDependencies:
|
||||
zod: ^3.25.76 || ^4.1.8
|
||||
checksum: 10c0/0e3e0ed1730fa6a14d8d7ca14b7823ec0b80c9d666435d97a505e7fb0c1818378343cdb647e3cc08d7f15d201cbeb04272c5128065f6cc6858b4404961eca761
|
||||
checksum: 10c0/d6d7e41120b4dc1b7222fa898fc79c32ac8253ac9159e0315e22dc7d14ccd6f7b01a256cbf093cf7c93c20faeebb7d89a63b78876204f8d1ba31297fb8047633
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@ai-sdk/anthropic@npm:2.0.27, @ai-sdk/anthropic@npm:^2.0.27":
|
||||
version: 2.0.27
|
||||
resolution: "@ai-sdk/anthropic@npm:2.0.27"
|
||||
"@ai-sdk/anthropic@npm:3.0.0-beta.34, @ai-sdk/anthropic@npm:^3.0.0-beta.34":
|
||||
version: 3.0.0-beta.34
|
||||
resolution: "@ai-sdk/anthropic@npm:3.0.0-beta.34"
|
||||
dependencies:
|
||||
"@ai-sdk/provider": "npm:2.0.0"
|
||||
"@ai-sdk/provider-utils": "npm:3.0.12"
|
||||
"@ai-sdk/provider": "npm:3.0.0-beta.8"
|
||||
"@ai-sdk/provider-utils": "npm:4.0.0-beta.20"
|
||||
peerDependencies:
|
||||
zod: ^3.25.76 || ^4.1.8
|
||||
checksum: 10c0/b568b3b8639af8ec7ea9b766061a4f18bcdef16f2bb12da3a4c4124c751bd6aab1b96dbe1a0eb8e38831d305871ce0787a6536d1a4d8a8ab8aaf03aca3e48e3f
|
||||
checksum: 10c0/4708b4e286d0a121f14141f5c32025d432f6ec8f16e9f457cde7912b074b4bdd0ac118b9477be8ca47e81713f692cc1d2371eb5999c883277a4592dda3289c5f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@ai-sdk/azure@npm:^2.0.49":
|
||||
version: 2.0.49
|
||||
resolution: "@ai-sdk/azure@npm:2.0.49"
|
||||
"@ai-sdk/azure@npm:^3.0.0-beta.34":
|
||||
version: 3.0.0-beta.34
|
||||
resolution: "@ai-sdk/azure@npm:3.0.0-beta.34"
|
||||
dependencies:
|
||||
"@ai-sdk/openai": "npm:2.0.48"
|
||||
"@ai-sdk/provider": "npm:2.0.0"
|
||||
"@ai-sdk/provider-utils": "npm:3.0.12"
|
||||
"@ai-sdk/openai": "npm:3.0.0-beta.34"
|
||||
"@ai-sdk/provider": "npm:3.0.0-beta.8"
|
||||
"@ai-sdk/provider-utils": "npm:4.0.0-beta.20"
|
||||
peerDependencies:
|
||||
zod: ^3.25.76 || ^4.1.8
|
||||
checksum: 10c0/d4dc5a8e0cbe0cefc8db987c4a7b784a9898d40cc55ef38618c71eba7f40dbef77b754aec1d507559f643fed49e538ffe2b677b327f001a2efc0474f6b544ba9
|
||||
checksum: 10c0/732a386035ffa295a4025d3bdbc6633c40268cda9d0dacfe413d2ce14442d2bbe7e1f706c52f6261f30d62fe43b8014bc4a4b1a51fbaa4df135ba81b4e1aaaee
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@ai-sdk/deepseek@npm:^1.0.23":
|
||||
version: 1.0.23
|
||||
resolution: "@ai-sdk/deepseek@npm:1.0.23"
|
||||
"@ai-sdk/deepseek@npm:^2.0.0-beta.21":
|
||||
version: 2.0.0-beta.21
|
||||
resolution: "@ai-sdk/deepseek@npm:2.0.0-beta.21"
|
||||
dependencies:
|
||||
"@ai-sdk/openai-compatible": "npm:1.0.22"
|
||||
"@ai-sdk/provider": "npm:2.0.0"
|
||||
"@ai-sdk/provider-utils": "npm:3.0.12"
|
||||
"@ai-sdk/openai-compatible": "npm:2.0.0-beta.21"
|
||||
"@ai-sdk/provider": "npm:3.0.0-beta.8"
|
||||
"@ai-sdk/provider-utils": "npm:4.0.0-beta.20"
|
||||
peerDependencies:
|
||||
zod: ^3.25.76 || ^4.1.8
|
||||
checksum: 10c0/39736e9787420ce86d0f2ce6935ba51f2b721acfb4c0d2b77064a8b939cf22b0767a83b82a5c99efff1311080532a3aaa2f34804d7981133f671a050521ed197
|
||||
checksum: 10c0/3e0fcd4254d105c5398afb9ee07b4ff7cd029c4c635708c4c15536da8caece64093bde9fb6a06a407748975ecc1197aa8bd3881e995574216bab102ffd48eecc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@ai-sdk/gateway@npm:1.0.39":
|
||||
version: 1.0.39
|
||||
resolution: "@ai-sdk/gateway@npm:1.0.39"
|
||||
"@ai-sdk/gateway@npm:2.0.0-beta.36":
|
||||
version: 2.0.0-beta.36
|
||||
resolution: "@ai-sdk/gateway@npm:2.0.0-beta.36"
|
||||
dependencies:
|
||||
"@ai-sdk/provider": "npm:2.0.0"
|
||||
"@ai-sdk/provider-utils": "npm:3.0.12"
|
||||
"@vercel/oidc": "npm:3.0.2"
|
||||
"@ai-sdk/provider": "npm:3.0.0-beta.8"
|
||||
"@ai-sdk/provider-utils": "npm:4.0.0-beta.20"
|
||||
"@vercel/oidc": "npm:3.0.3"
|
||||
peerDependencies:
|
||||
zod: ^3.25.76 || ^4.1.8
|
||||
checksum: 10c0/1b6eedf12ac641c96a1eb75e48e43474694b60eb7dca273f76a636a4e2bfc89efda1d9855d5abf9cc464e23cdbf5a3119fed65c3d22cec726e29a2bad3c3318b
|
||||
checksum: 10c0/5acd5ba5b858e439013a1035af63701996caff57575fe956bd227eed55b969e295b538727567e911342e95d965b6f7db9d7cdfafe7deffbe28cff34e56a19f37
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@ai-sdk/google-vertex@npm:^3.0.40":
|
||||
version: 3.0.40
|
||||
resolution: "@ai-sdk/google-vertex@npm:3.0.40"
|
||||
"@ai-sdk/google-vertex@npm:^4.0.0-beta.42":
|
||||
version: 4.0.0-beta.42
|
||||
resolution: "@ai-sdk/google-vertex@npm:4.0.0-beta.42"
|
||||
dependencies:
|
||||
"@ai-sdk/anthropic": "npm:2.0.27"
|
||||
"@ai-sdk/google": "npm:2.0.20"
|
||||
"@ai-sdk/provider": "npm:2.0.0"
|
||||
"@ai-sdk/provider-utils": "npm:3.0.12"
|
||||
"@ai-sdk/anthropic": "npm:3.0.0-beta.34"
|
||||
"@ai-sdk/google": "npm:3.0.0-beta.27"
|
||||
"@ai-sdk/provider": "npm:3.0.0-beta.8"
|
||||
"@ai-sdk/provider-utils": "npm:4.0.0-beta.20"
|
||||
google-auth-library: "npm:^9.15.0"
|
||||
peerDependencies:
|
||||
zod: ^3.25.76 || ^4.1.8
|
||||
checksum: 10c0/680a06e1b80bc036744e2f13e1a55b57661c3674000ab82b863d6536730edfc3696b1b0b2235f6354de11fa323c4ef817d8edbd2dbf94dc4037ea882e560c9ea
|
||||
checksum: 10c0/45f3346877b67dfdca1eea7d7ae8ed3827732cedabe2dd5dec1aa6f7c133cbb3d5eb2d60085e20dabd2a0e348a1d5da76b86808501aea5243628a2817cb042ca
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@ai-sdk/google@npm:2.0.20":
|
||||
version: 2.0.20
|
||||
resolution: "@ai-sdk/google@npm:2.0.20"
|
||||
"@ai-sdk/google@npm:3.0.0-beta.27":
|
||||
version: 3.0.0-beta.27
|
||||
resolution: "@ai-sdk/google@npm:3.0.0-beta.27"
|
||||
dependencies:
|
||||
"@ai-sdk/provider": "npm:2.0.0"
|
||||
"@ai-sdk/provider-utils": "npm:3.0.12"
|
||||
"@ai-sdk/provider": "npm:3.0.0-beta.8"
|
||||
"@ai-sdk/provider-utils": "npm:4.0.0-beta.20"
|
||||
peerDependencies:
|
||||
zod: ^3.25.76 || ^4.1.8
|
||||
checksum: 10c0/9c73bb67061673b16f0996c85bf4e79ab9968c8a203c4f9731bf569e45960db88950dfc227aca69661ea805d381b285697ba1763faa03a38c01b86e6d2e90629
|
||||
checksum: 10c0/b0d3431ceb0a7aaf0e4f68c1b6850fc38afc13b225032f5fce847e7dfc91e79c96b09cabfb51db607559724beecf8727b48f7c1a481bd6fe383a92787b73e7f0
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@ai-sdk/google@patch:@ai-sdk/google@npm%3A2.0.20#~/.yarn/patches/@ai-sdk-google-npm-2.0.20-b9102f9d54.patch":
|
||||
version: 2.0.20
|
||||
resolution: "@ai-sdk/google@patch:@ai-sdk/google@npm%3A2.0.20#~/.yarn/patches/@ai-sdk-google-npm-2.0.20-b9102f9d54.patch::version=2.0.20&hash=1f2ccb"
|
||||
"@ai-sdk/google@patch:@ai-sdk/google@npm%3A3.0.0-beta.27#~/.yarn/patches/@ai-sdk-google-npm-3.0.0-beta.27-8900c301e6.patch":
|
||||
version: 3.0.0-beta.27
|
||||
resolution: "@ai-sdk/google@patch:@ai-sdk/google@npm%3A3.0.0-beta.27#~/.yarn/patches/@ai-sdk-google-npm-3.0.0-beta.27-8900c301e6.patch::version=3.0.0-beta.27&hash=911263"
|
||||
dependencies:
|
||||
"@ai-sdk/provider": "npm:2.0.0"
|
||||
"@ai-sdk/provider-utils": "npm:3.0.12"
|
||||
"@ai-sdk/provider": "npm:3.0.0-beta.8"
|
||||
"@ai-sdk/provider-utils": "npm:4.0.0-beta.20"
|
||||
peerDependencies:
|
||||
zod: ^3.25.76 || ^4.1.8
|
||||
checksum: 10c0/2d567361d533a4e2be83aa135cb5f01f09ea54c255d7751171855ef4244cfaeff73fe7b3c7b044b384a9c170e89d053160a26933176ad68dcaf03bd3c69c0be3
|
||||
checksum: 10c0/7adaaa600456fee0712284ee35bdaf4fdf0205c9658e2dbaf1d9884fc1e863980e4abd5d08359f2153d2748a7949ec415bfc10adab21533fd92224f72fffba86
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@ai-sdk/mistral@npm:^2.0.19":
|
||||
version: 2.0.19
|
||||
resolution: "@ai-sdk/mistral@npm:2.0.19"
|
||||
"@ai-sdk/mistral@npm:^3.0.0-beta.21":
|
||||
version: 3.0.0-beta.21
|
||||
resolution: "@ai-sdk/mistral@npm:3.0.0-beta.21"
|
||||
dependencies:
|
||||
"@ai-sdk/provider": "npm:2.0.0"
|
||||
"@ai-sdk/provider-utils": "npm:3.0.12"
|
||||
"@ai-sdk/provider": "npm:3.0.0-beta.8"
|
||||
"@ai-sdk/provider-utils": "npm:4.0.0-beta.20"
|
||||
peerDependencies:
|
||||
zod: ^3.25.76 || ^4.1.8
|
||||
checksum: 10c0/522d1e4631e9318f82f5993030c8fa2a28341e749bc920d32966d91d5cd5a4d1638980b7e0a62601aaaaf7a25e04fefed18b07ce50034c5c5d903ac5bebb65ec
|
||||
checksum: 10c0/2ce97b88d9eb2baebb1357a82fc338e719836245ed586a748aff57ae8b51e9332c3c5862536b366d784b8fddb37a4467649a26f8165eb8a06e00287e73ba5410
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@ai-sdk/openai-compatible@npm:1.0.22, @ai-sdk/openai-compatible@npm:^1.0.22":
|
||||
version: 1.0.22
|
||||
resolution: "@ai-sdk/openai-compatible@npm:1.0.22"
|
||||
"@ai-sdk/openai-compatible@npm:2.0.0-beta.21, @ai-sdk/openai-compatible@npm:^2.0.0-beta.21":
|
||||
version: 2.0.0-beta.21
|
||||
resolution: "@ai-sdk/openai-compatible@npm:2.0.0-beta.21"
|
||||
dependencies:
|
||||
"@ai-sdk/provider": "npm:2.0.0"
|
||||
"@ai-sdk/provider-utils": "npm:3.0.12"
|
||||
"@ai-sdk/provider": "npm:3.0.0-beta.8"
|
||||
"@ai-sdk/provider-utils": "npm:4.0.0-beta.20"
|
||||
peerDependencies:
|
||||
zod: ^3.25.76 || ^4.1.8
|
||||
checksum: 10c0/31eb07b63eaf07384391e81d824e16589af540f3af2fde1cb24f2a6d04dd07ddb843c9301dbceca78fa5ae5002cb235fc376c41532ab167d1564491526e6011b
|
||||
checksum: 10c0/69663b4521a175e45f68fca57c47c0a0de481d1cbdee2210cd6b96ad243d406c3287f83f1c35330e46e967e1b52e48772de1410adcfd20fc48f04b2146371026
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -216,15 +216,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@ai-sdk/openai@npm:2.0.48, @ai-sdk/openai@npm:^2.0.48":
|
||||
version: 2.0.48
|
||||
resolution: "@ai-sdk/openai@npm:2.0.48"
|
||||
"@ai-sdk/openai@npm:3.0.0-beta.34, @ai-sdk/openai@npm:^3.0.0-beta.34":
|
||||
version: 3.0.0-beta.34
|
||||
resolution: "@ai-sdk/openai@npm:3.0.0-beta.34"
|
||||
dependencies:
|
||||
"@ai-sdk/provider": "npm:2.0.0"
|
||||
"@ai-sdk/provider-utils": "npm:3.0.12"
|
||||
"@ai-sdk/provider": "npm:3.0.0-beta.8"
|
||||
"@ai-sdk/provider-utils": "npm:4.0.0-beta.20"
|
||||
peerDependencies:
|
||||
zod: ^3.25.76 || ^4.1.8
|
||||
checksum: 10c0/6c584d7ffb80025da6b7253106a83f8c7a023e8ca322fd32e6858453782d6a0a6d268d7afa7145e3ea743a9c6cbc882932bb59eb1a659750f5205639c414fb49
|
||||
checksum: 10c0/2abb4e528c606bd41dcd02d51612152d9aa34500909ef7ad896ec21ddee42a751fc04606a88e85929d6be503120473c95c48891e7e46c7875e14d52c45fdce43
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -240,15 +240,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@ai-sdk/perplexity@npm:^2.0.13":
|
||||
version: 2.0.13
|
||||
resolution: "@ai-sdk/perplexity@npm:2.0.13"
|
||||
"@ai-sdk/perplexity@npm:^3.0.0-beta.20":
|
||||
version: 3.0.0-beta.20
|
||||
resolution: "@ai-sdk/perplexity@npm:3.0.0-beta.20"
|
||||
dependencies:
|
||||
"@ai-sdk/provider": "npm:2.0.0"
|
||||
"@ai-sdk/provider-utils": "npm:3.0.12"
|
||||
"@ai-sdk/provider": "npm:3.0.0-beta.8"
|
||||
"@ai-sdk/provider-utils": "npm:4.0.0-beta.20"
|
||||
peerDependencies:
|
||||
zod: ^3.25.76 || ^4.1.8
|
||||
checksum: 10c0/80434eebec088d5f373901f1beb77ca4ba564df5f04dec43c69a7996ea0d88344a3d86ca5e5ef2dc4f5c45f45fc478dabf3a0e44a3faea86a0190c087491a661
|
||||
checksum: 10c0/7964c7bfe14d2c7a6d4c145c845245cc1c772b922d7dd0af768021bbdf55387948d22d8178ee008ff6c55b91a03c0c44b98f9e30c8fd057f0cef0de0d2daacf8
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -278,20 +278,30 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@ai-sdk/provider-utils@npm:3.0.12, @ai-sdk/provider-utils@npm:^3.0.12":
|
||||
version: 3.0.12
|
||||
resolution: "@ai-sdk/provider-utils@npm:3.0.12"
|
||||
"@ai-sdk/provider-utils@npm:4.0.0-beta.20, @ai-sdk/provider-utils@npm:^4.0.0-beta.20":
|
||||
version: 4.0.0-beta.20
|
||||
resolution: "@ai-sdk/provider-utils@npm:4.0.0-beta.20"
|
||||
dependencies:
|
||||
"@ai-sdk/provider": "npm:2.0.0"
|
||||
"@ai-sdk/provider": "npm:3.0.0-beta.8"
|
||||
"@standard-schema/spec": "npm:^1.0.0"
|
||||
eventsource-parser: "npm:^3.0.5"
|
||||
peerDependencies:
|
||||
"@valibot/to-json-schema": ^1.3.0
|
||||
arktype: ^2.1.22
|
||||
effect: ^3.18.4
|
||||
zod: ^3.25.76 || ^4.1.8
|
||||
checksum: 10c0/83886bf188cad0cc655b680b710a10413989eaba9ec59dd24a58b985c02a8a1d50ad0f96dd5259385c07592ec3c37a7769fdf4a1ef569a73c9edbdb2cd585915
|
||||
peerDependenciesMeta:
|
||||
"@valibot/to-json-schema":
|
||||
optional: true
|
||||
arktype:
|
||||
optional: true
|
||||
effect:
|
||||
optional: true
|
||||
checksum: 10c0/74f1265e8f635910bde16632ba07d35b3bb89b7dea337fa044190089879cc96b994ebeafcf1012911b6bcd8273011374805d8a9c689db4a093edd02ae2f77ca8
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@ai-sdk/provider@npm:2.0.0, @ai-sdk/provider@npm:^2.0.0":
|
||||
"@ai-sdk/provider@npm:2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "@ai-sdk/provider@npm:2.0.0"
|
||||
dependencies:
|
||||
@@ -300,6 +310,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@ai-sdk/provider@npm:3.0.0-beta.8, @ai-sdk/provider@npm:^3.0.0-beta.8":
|
||||
version: 3.0.0-beta.8
|
||||
resolution: "@ai-sdk/provider@npm:3.0.0-beta.8"
|
||||
dependencies:
|
||||
json-schema: "npm:^0.4.0"
|
||||
checksum: 10c0/7ce4d8f56180da8ce60faccd4caff871924c3fa6234dcafcf3f877f1c81973685c607da2b00118878e0a7fc12dff8c8fa0692a4b422ceaca40aea6e48c85c028
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@ai-sdk/provider@npm:^2.1.0-beta.4":
|
||||
version: 2.1.0-beta.5
|
||||
resolution: "@ai-sdk/provider@npm:2.1.0-beta.5"
|
||||
@@ -309,16 +328,16 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@ai-sdk/xai@npm:^2.0.26":
|
||||
version: 2.0.26
|
||||
resolution: "@ai-sdk/xai@npm:2.0.26"
|
||||
"@ai-sdk/xai@npm:^3.0.0-beta.22":
|
||||
version: 3.0.0-beta.22
|
||||
resolution: "@ai-sdk/xai@npm:3.0.0-beta.22"
|
||||
dependencies:
|
||||
"@ai-sdk/openai-compatible": "npm:1.0.22"
|
||||
"@ai-sdk/provider": "npm:2.0.0"
|
||||
"@ai-sdk/provider-utils": "npm:3.0.12"
|
||||
"@ai-sdk/openai-compatible": "npm:2.0.0-beta.21"
|
||||
"@ai-sdk/provider": "npm:3.0.0-beta.8"
|
||||
"@ai-sdk/provider-utils": "npm:4.0.0-beta.20"
|
||||
peerDependencies:
|
||||
zod: ^3.25.76 || ^4.1.8
|
||||
checksum: 10c0/72fef55a96d9c3820de02beb9b63e53902649c5db906a892b7818a984b6e8afe161daa225b8d527b74f783e2c4eecd474af6e96efbb95761aca2c508e0c7c2d9
|
||||
checksum: 10c0/ac6fd663a79bd72fba59917b1b76654b2505a92cbd464b4fc621e200cafd71644203d968ff227388adf1959d925228a088a242160c169ab466b12b0d16fbaf2b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -2435,22 +2454,23 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@cherrystudio/ai-core@workspace:^1.0.0-alpha.18, @cherrystudio/ai-core@workspace:packages/aiCore":
|
||||
"@cherrystudio/ai-core@workspace:^1.0.3, @cherrystudio/ai-core@workspace:packages/aiCore":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@cherrystudio/ai-core@workspace:packages/aiCore"
|
||||
dependencies:
|
||||
"@ai-sdk/anthropic": "npm:^2.0.27"
|
||||
"@ai-sdk/azure": "npm:^2.0.49"
|
||||
"@ai-sdk/deepseek": "npm:^1.0.23"
|
||||
"@ai-sdk/openai": "npm:^2.0.48"
|
||||
"@ai-sdk/openai-compatible": "npm:^1.0.22"
|
||||
"@ai-sdk/provider": "npm:^2.0.0"
|
||||
"@ai-sdk/provider-utils": "npm:^3.0.12"
|
||||
"@ai-sdk/xai": "npm:^2.0.26"
|
||||
"@ai-sdk/anthropic": "npm:^3.0.0-beta.34"
|
||||
"@ai-sdk/azure": "npm:^3.0.0-beta.34"
|
||||
"@ai-sdk/deepseek": "npm:^2.0.0-beta.21"
|
||||
"@ai-sdk/google": "patch:@ai-sdk/google@npm%3A3.0.0-beta.27#~/.yarn/patches/@ai-sdk-google-npm-3.0.0-beta.27-8900c301e6.patch"
|
||||
"@ai-sdk/openai": "npm:^3.0.0-beta.34"
|
||||
"@ai-sdk/openai-compatible": "npm:^2.0.0-beta.21"
|
||||
"@ai-sdk/provider": "npm:^3.0.0-beta.8"
|
||||
"@ai-sdk/provider-utils": "npm:^4.0.0-beta.20"
|
||||
"@ai-sdk/xai": "npm:^3.0.0-beta.22"
|
||||
tsdown: "npm:^0.12.9"
|
||||
typescript: "npm:^5.0.0"
|
||||
vitest: "npm:^3.2.4"
|
||||
zod: "npm:^4.1.5"
|
||||
zod: "npm:^4.1.12"
|
||||
peerDependencies:
|
||||
ai: ^5.0.26
|
||||
languageName: unknown
|
||||
@@ -13541,10 +13561,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vercel/oidc@npm:3.0.2":
|
||||
version: 3.0.2
|
||||
resolution: "@vercel/oidc@npm:3.0.2"
|
||||
checksum: 10c0/8d4c8553baa5aed339ab7614d775139bc124a6d443b76877ab17e98c156daa4dbeb3cf2f3bf21fabfae2ac0dd3ff462ab43b9398708e02483e5923d302a1c4c8
|
||||
"@vercel/oidc@npm:3.0.3":
|
||||
version: 3.0.3
|
||||
resolution: "@vercel/oidc@npm:3.0.3"
|
||||
checksum: 10c0/c8eecb1324559435f4ab8a955f5ef44f74f546d11c2ddcf28151cb636d989bd4b34e0673fd8716cb21bb21afb34b3de663bacc30c9506036eeecbcbf2fd86241
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -13851,10 +13871,10 @@ __metadata:
|
||||
"@agentic/exa": "npm:^7.3.3"
|
||||
"@agentic/searxng": "npm:^7.3.3"
|
||||
"@agentic/tavily": "npm:^7.3.3"
|
||||
"@ai-sdk/amazon-bedrock": "npm:^3.0.35"
|
||||
"@ai-sdk/google-vertex": "npm:^3.0.40"
|
||||
"@ai-sdk/mistral": "npm:^2.0.19"
|
||||
"@ai-sdk/perplexity": "npm:^2.0.13"
|
||||
"@ai-sdk/amazon-bedrock": "npm:^4.0.0-beta.38"
|
||||
"@ai-sdk/google-vertex": "npm:^4.0.0-beta.42"
|
||||
"@ai-sdk/mistral": "npm:^3.0.0-beta.21"
|
||||
"@ai-sdk/perplexity": "npm:^3.0.0-beta.20"
|
||||
"@ant-design/v5-patch-for-react-19": "npm:^1.0.3"
|
||||
"@anthropic-ai/claude-agent-sdk": "patch:@anthropic-ai/claude-agent-sdk@npm%3A0.1.1#~/.yarn/patches/@anthropic-ai-claude-agent-sdk-npm-0.1.1-d937b73fed.patch"
|
||||
"@anthropic-ai/sdk": "npm:^0.41.0"
|
||||
@@ -13863,7 +13883,7 @@ __metadata:
|
||||
"@aws-sdk/client-bedrock-runtime": "npm:^3.840.0"
|
||||
"@aws-sdk/client-s3": "npm:^3.840.0"
|
||||
"@biomejs/biome": "npm:2.2.4"
|
||||
"@cherrystudio/ai-core": "workspace:^1.0.0-alpha.18"
|
||||
"@cherrystudio/ai-core": "workspace:^1.0.3"
|
||||
"@cherrystudio/embedjs": "npm:^0.1.31"
|
||||
"@cherrystudio/embedjs-libsql": "npm:^0.1.31"
|
||||
"@cherrystudio/embedjs-loader-csv": "npm:^0.1.31"
|
||||
@@ -13978,7 +13998,7 @@ __metadata:
|
||||
"@viz-js/lang-dot": "npm:^1.0.5"
|
||||
"@viz-js/viz": "npm:^3.14.0"
|
||||
"@xyflow/react": "npm:^12.4.4"
|
||||
ai: "npm:^5.0.68"
|
||||
ai: "npm:^6.0.0-beta.66"
|
||||
antd: "patch:antd@npm%3A5.27.0#~/.yarn/patches/antd-npm-5.27.0-aa91c36546.patch"
|
||||
archiver: "npm:^7.0.1"
|
||||
async-mutex: "npm:^0.5.0"
|
||||
@@ -14129,7 +14149,7 @@ __metadata:
|
||||
yjs: "npm:^13.6.27"
|
||||
youtubei.js: "npm:^15.0.1"
|
||||
zipread: "npm:^1.3.3"
|
||||
zod: "npm:^4.1.5"
|
||||
zod: "npm:^4.1.12"
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
@@ -14242,17 +14262,17 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ai@npm:^5.0.68":
|
||||
version: 5.0.68
|
||||
resolution: "ai@npm:5.0.68"
|
||||
"ai@npm:^6.0.0-beta.66":
|
||||
version: 6.0.0-beta.66
|
||||
resolution: "ai@npm:6.0.0-beta.66"
|
||||
dependencies:
|
||||
"@ai-sdk/gateway": "npm:1.0.39"
|
||||
"@ai-sdk/provider": "npm:2.0.0"
|
||||
"@ai-sdk/provider-utils": "npm:3.0.12"
|
||||
"@ai-sdk/gateway": "npm:2.0.0-beta.36"
|
||||
"@ai-sdk/provider": "npm:3.0.0-beta.8"
|
||||
"@ai-sdk/provider-utils": "npm:4.0.0-beta.20"
|
||||
"@opentelemetry/api": "npm:1.9.0"
|
||||
peerDependencies:
|
||||
zod: ^3.25.76 || ^4.1.8
|
||||
checksum: 10c0/0c042cd58c7193a47b06b3074a9e62790c4d5a8134e8e12bbb750714151e9aa217c641ee60c8cbe59d9869bade52ccbb283f9fcbf6d79711ebf1f774fa3feee3
|
||||
checksum: 10c0/025ace76e0be1bfa4d23288d7107027313191cd30eaf7e5100216608490c0d667592c66c3ec5333795d0c2b07c2fb578a311c04806b1244b297c46b75f708c8c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -30192,10 +30212,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"zod@npm:^4.1.5":
|
||||
version: 4.1.5
|
||||
resolution: "zod@npm:4.1.5"
|
||||
checksum: 10c0/7826fb931bc71d4d0fff2fbb72f1a1cf30a6672cf9dbe6933a216bbb60242ef1c3bdfbcd3c5b27e806235a35efaad7a4a9897ff4d3621452f9ea278bce6fd42a
|
||||
"zod@npm:^4.1.12":
|
||||
version: 4.1.12
|
||||
resolution: "zod@npm:4.1.12"
|
||||
checksum: 10c0/b64c1feb19e99d77075261eaf613e0b2be4dfcd3551eff65ad8b4f2a079b61e379854d066f7d447491fcf193f45babd8095551a9d47973d30b46b6d8e2c46774
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
||||
Reference in New Issue
Block a user