diff --git a/package.json b/package.json index 0f851ed2ef..642ea550db 100644 --- a/package.json +++ b/package.json @@ -174,7 +174,7 @@ "@viz-js/lang-dot": "^1.0.5", "@viz-js/viz": "^3.14.0", "@xyflow/react": "^12.4.4", - "ai": "^5.0.24", + "ai": "^5.0.26", "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", diff --git a/packages/aiCore/package.json b/packages/aiCore/package.json index 12d4fd9277..3cfca454c8 100644 --- a/packages/aiCore/package.json +++ b/packages/aiCore/package.json @@ -32,6 +32,9 @@ "url": "https://github.com/CherryHQ/cherry-studio/issues" }, "homepage": "https://github.com/CherryHQ/cherry-studio#readme", + "peerDependencies": { + "ai": "^5.0.26" + }, "dependencies": { "@ai-sdk/anthropic": "^2.0.5", "@ai-sdk/azure": "^2.0.16", @@ -42,7 +45,6 @@ "@ai-sdk/provider": "^2.0.0", "@ai-sdk/provider-utils": "^3.0.4", "@ai-sdk/xai": "^2.0.9", - "ai": "^5.0.16", "zod": "^3.25.0" }, "devDependencies": { diff --git a/packages/aiCore/src/core/plugins/manager.ts b/packages/aiCore/src/core/plugins/manager.ts index ccde1ccc87..4c927ed1de 100644 --- a/packages/aiCore/src/core/plugins/manager.ts +++ b/packages/aiCore/src/core/plugins/manager.ts @@ -80,7 +80,7 @@ export class PluginManager { for (const plugin of this.plugins) { const hook = plugin[hookName] if (hook) { - result = await hook(result, context) + result = await hook(result, context) } } diff --git a/packages/aiCore/src/core/plugins/types.ts b/packages/aiCore/src/core/plugins/types.ts index 47060e1074..378fa6c3d3 100644 --- a/packages/aiCore/src/core/plugins/types.ts +++ b/packages/aiCore/src/core/plugins/types.ts @@ -41,8 +41,8 @@ export interface AiPlugin { // 【Sequential】串行钩子 - 链式执行,支持数据转换 configureContext?: (context: AiRequestContext) => void | Promise - transformParams?: (params: any, context: AiRequestContext) => any | Promise - transformResult?: (result: any, context: AiRequestContext) => any | Promise + transformParams?: (params: T, context: AiRequestContext) => T | Promise + transformResult?: (result: T, context: AiRequestContext) => T | Promise // 【Parallel】并行钩子 - 不依赖顺序,用于副作用 onRequestStart?: (context: AiRequestContext) => void | Promise diff --git a/packages/aiCore/src/core/runtime/executor.ts b/packages/aiCore/src/core/runtime/executor.ts index 5604f52936..e53bae6474 100644 --- a/packages/aiCore/src/core/runtime/executor.ts +++ b/packages/aiCore/src/core/runtime/executor.ts @@ -106,11 +106,13 @@ export class RuntimeExecutor { const experimental_transform = params?.experimental_transform ?? (streamTransforms.length > 0 ? streamTransforms : undefined) - return await streamText({ + const finalParams = { model, ...transformedParams, experimental_transform - }) + } as Parameters[0] + + return await streamText(finalParams) } ) } @@ -147,9 +149,8 @@ export class RuntimeExecutor { 'generateText', typeof modelOrId === 'string' ? modelOrId : modelOrId.modelId, params, - async (model, transformedParams) => { - return await generateText({ model, ...transformedParams }) - } + async (model, transformedParams) => + generateText({ model, ...transformedParams } as Parameters[0]) ) } @@ -183,7 +184,8 @@ export class RuntimeExecutor { 'generateObject', typeof modelOrId === 'string' ? modelOrId : modelOrId.modelId, params, - async (model, transformedParams) => await generateObject({ model, ...transformedParams }) + async (model, transformedParams) => + generateObject({ model, ...transformedParams } as Parameters[0]) ) } @@ -217,7 +219,8 @@ export class RuntimeExecutor { 'streamObject', typeof modelOrId === 'string' ? modelOrId : modelOrId.modelId, params, - async (model, transformedParams) => await streamObject({ model, ...transformedParams }) + async (model, transformedParams) => + streamObject({ model, ...transformedParams } as Parameters[0]) ) } diff --git a/yarn.lock b/yarn.lock index 2583ea8ad2..9d86817739 100644 --- a/yarn.lock +++ b/yarn.lock @@ -140,27 +140,15 @@ __metadata: languageName: node linkType: hard -"@ai-sdk/gateway@npm:1.0.13": - version: 1.0.13 - resolution: "@ai-sdk/gateway@npm:1.0.13" +"@ai-sdk/gateway@npm:1.0.15": + version: 1.0.15 + resolution: "@ai-sdk/gateway@npm:1.0.15" dependencies: "@ai-sdk/provider": "npm:2.0.0" - "@ai-sdk/provider-utils": "npm:3.0.6" + "@ai-sdk/provider-utils": "npm:3.0.7" peerDependencies: zod: ^3.25.76 || ^4 - checksum: 10c0/cfd655440d68e1e99204cdf3a4c30fcd9d9dd21d2b6851932584fc228617e9f844b0419c5b74e8e8ee9c00256b64e34c9346369cebe43f9c76e6f31203ca4b8c - languageName: node - linkType: hard - -"@ai-sdk/gateway@npm:1.0.8": - version: 1.0.8 - resolution: "@ai-sdk/gateway@npm:1.0.8" - dependencies: - "@ai-sdk/provider": "npm:2.0.0" - "@ai-sdk/provider-utils": "npm:3.0.4" - peerDependencies: - zod: ^3.25.76 || ^4 - checksum: 10c0/7464ca5280a15ddab2a2addf8b0223bcf85519cff0d1d1893beb4ee723abebdd7eae02079429c738a16c872c8574ab8d509b349e913c0fb99d8173740d0e851a + checksum: 10c0/cdd09f119d6618f00c363a27f51dc466a8a64f57f01bcdd127030a804825bd143b0fef2dbdb7802530865d474f4b9d55855670fecd7f2e6c615a5d9ac9fd6e3b languageName: node linkType: hard @@ -293,16 +281,16 @@ __metadata: languageName: node linkType: hard -"@ai-sdk/provider-utils@npm:3.0.6": - version: 3.0.6 - resolution: "@ai-sdk/provider-utils@npm:3.0.6" +"@ai-sdk/provider-utils@npm:3.0.7": + version: 3.0.7 + resolution: "@ai-sdk/provider-utils@npm:3.0.7" dependencies: "@ai-sdk/provider": "npm:2.0.0" "@standard-schema/spec": "npm:^1.0.0" - eventsource-parser: "npm:^3.0.3" + eventsource-parser: "npm:^3.0.5" peerDependencies: zod: ^3.25.76 || ^4 - checksum: 10c0/00f8d5a4e76f66aad6ebde97d3512b8295c144c6802465ec0d7b38c6eaa0fc97fbcaeb51284f66bb7e42bcf38a92ed0edba95c1ccddf50af3040d2b64227352a + checksum: 10c0/7e709289f9e514a6ba56a9b19764eb124ea1bd36d4b3b3e455a1c05353674c152839a4d3cd061af7a4cc36106bd15859a2346e54d4ed0a861feec3b2c4c21513 languageName: node linkType: hard @@ -2253,11 +2241,12 @@ __metadata: "@ai-sdk/provider": "npm:^2.0.0" "@ai-sdk/provider-utils": "npm:^3.0.4" "@ai-sdk/xai": "npm:^2.0.9" - ai: "npm:^5.0.16" tsdown: "npm:^0.12.9" typescript: "npm:^5.0.0" vitest: "npm:^3.2.4" zod: "npm:^3.25.0" + peerDependencies: + ai: ^5.0.26 languageName: unknown linkType: soft @@ -9190,7 +9179,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.24" + ai: "npm:^5.0.26" 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" @@ -9406,31 +9395,17 @@ __metadata: languageName: node linkType: hard -"ai@npm:^5.0.16": - version: 5.0.16 - resolution: "ai@npm:5.0.16" +"ai@npm:^5.0.26": + version: 5.0.26 + resolution: "ai@npm:5.0.26" dependencies: - "@ai-sdk/gateway": "npm:1.0.8" + "@ai-sdk/gateway": "npm:1.0.15" "@ai-sdk/provider": "npm:2.0.0" - "@ai-sdk/provider-utils": "npm:3.0.4" + "@ai-sdk/provider-utils": "npm:3.0.7" "@opentelemetry/api": "npm:1.9.0" peerDependencies: zod: ^3.25.76 || ^4 - checksum: 10c0/3d26ff0af6ad56cfc7d382c0ef9664572dc661da04f2df37fbb09f3346c7b10cf3643d0c2d95e338b34f183dfbe225e9b364326e73918cf50edd050b1a6ec2e7 - languageName: node - linkType: hard - -"ai@npm:^5.0.24": - version: 5.0.24 - resolution: "ai@npm:5.0.24" - dependencies: - "@ai-sdk/gateway": "npm:1.0.13" - "@ai-sdk/provider": "npm:2.0.0" - "@ai-sdk/provider-utils": "npm:3.0.6" - "@opentelemetry/api": "npm:1.9.0" - peerDependencies: - zod: ^3.25.76 || ^4 - checksum: 10c0/a5735ee935a9499f1b87fa99d0d2aa87732db0e01dfdfd38ffa233c9e7242572f4442c15fe3f6e441b1ca62491a72ca603ca782f3f0ed7bf42c57fa7d6f2e891 + checksum: 10c0/0423f296b1aa9f22ad106278e8d1e7a2ae9d068358720cdc23c0f222af5406ac1e5ccbce19833709aa1c62b841361d310fb3c42781f426966a9f9ca287ae7faa languageName: node linkType: hard @@ -13221,6 +13196,13 @@ __metadata: languageName: node linkType: hard +"eventsource-parser@npm:^3.0.5": + version: 3.0.5 + resolution: "eventsource-parser@npm:3.0.5" + checksum: 10c0/5cb75e3f84ff1cfa1cee6199d4fd430c4544855ab03e953ddbe5927e7b31bc2af3933ab8aba6440ba160ed2c48972b6c317f27b8a1d0764c7b12e34e249de631 + languageName: node + linkType: hard + "eventsource@npm:^3.0.2": version: 3.0.6 resolution: "eventsource@npm:3.0.6"