mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-02-06 02:51:07 +08:00
fix: typecheck again
This commit is contained in:
parent
5e0fd67b44
commit
b8235f5c75
@ -94,17 +94,21 @@
|
||||
"@agentic/tavily": "^7.3.3",
|
||||
"@ai-sdk/amazon-bedrock": "^4.0.37",
|
||||
"@ai-sdk/anthropic": "^3.0.29",
|
||||
"@ai-sdk/azure": "^3.0.22",
|
||||
"@ai-sdk/cerebras": "^2.0.24",
|
||||
"@ai-sdk/gateway": "^3.0.27",
|
||||
"@ai-sdk/google": "3.0.0",
|
||||
"@ai-sdk/google-vertex": "^4.0.35",
|
||||
"@ai-sdk/huggingface": "^1.0.23",
|
||||
"@ai-sdk/mistral": "^3.0.13",
|
||||
"@ai-sdk/openai": "3.0.0",
|
||||
"@ai-sdk/openai": "^3.0.0",
|
||||
"@ai-sdk/perplexity": "^3.0.12",
|
||||
"@ai-sdk/provider": "^3.0.5",
|
||||
"@ai-sdk/provider-utils": "^4.0.10",
|
||||
"@ai-sdk/test-server": "^1.0.3",
|
||||
"@ai-sdk/xai": "^3.0.0",
|
||||
"@ant-design/cssinjs": "1.23.0",
|
||||
"@ant-design/icons": "5.6.1",
|
||||
"@ant-design/v5-patch-for-react-19": "^1.0.3",
|
||||
"@anthropic-ai/sdk": "^0.41.0",
|
||||
"@anthropic-ai/vertex-sdk": "0.11.4",
|
||||
@ -201,6 +205,7 @@
|
||||
"@tiptap/y-tiptap": "^3.0.0",
|
||||
"@truto/turndown-plugin-gfm": "^1.0.2",
|
||||
"@tryfabric/martian": "^1.2.4",
|
||||
"@types/adm-zip": "^0.5.7",
|
||||
"@types/cli-progress": "^3",
|
||||
"@types/content-type": "^1.1.9",
|
||||
"@types/cors": "^2.8.19",
|
||||
@ -244,6 +249,7 @@
|
||||
"@viz-js/lang-dot": "^1.0.5",
|
||||
"@viz-js/viz": "^3.14.0",
|
||||
"@xyflow/react": "^12.4.4",
|
||||
"adm-zip": "0.4.16",
|
||||
"ai": "^6.0.59",
|
||||
"antd": "5.27.0",
|
||||
"archiver": "^7.0.1",
|
||||
|
||||
@ -36,14 +36,14 @@
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ai-sdk/anthropic": "^3.0.0",
|
||||
"@ai-sdk/google": "^3.0.0",
|
||||
"@ai-sdk/google": "3.0.0",
|
||||
"@ai-sdk/openai": "^3.0.0",
|
||||
"ai": "^6.0.26"
|
||||
},
|
||||
"dependencies": {
|
||||
"@ai-sdk/openai-compatible": "2.0.0",
|
||||
"@ai-sdk/provider": "^3.0.0",
|
||||
"@ai-sdk/provider-utils": "^4.0.0"
|
||||
"@ai-sdk/provider": "^3.0.5",
|
||||
"@ai-sdk/provider-utils": "^4.0.10"
|
||||
},
|
||||
"devDependencies": {
|
||||
"tsdown": "^0.13.3",
|
||||
|
||||
@ -302,7 +302,7 @@ export const createPromptToolUsePlugin = (
|
||||
const promptTools: ToolSet = {}
|
||||
|
||||
for (const [toolName, tool] of Object.entries(params.tools as ToolSet)) {
|
||||
if (tool.type === 'provider-defined') {
|
||||
if (tool.type === 'provider') {
|
||||
// provider 类型的工具保留在 tools 参数中
|
||||
providerDefinedTools[toolName] = tool
|
||||
} else {
|
||||
|
||||
49
pnpm-lock.yaml
generated
49
pnpm-lock.yaml
generated
@ -164,6 +164,9 @@ importers:
|
||||
'@ai-sdk/anthropic':
|
||||
specifier: ^3.0.29
|
||||
version: 3.0.29(zod@4.3.4)
|
||||
'@ai-sdk/azure':
|
||||
specifier: ^3.0.22
|
||||
version: 3.0.22(zod@4.3.4)
|
||||
'@ai-sdk/cerebras':
|
||||
specifier: ^2.0.24
|
||||
version: 2.0.24(zod@4.3.4)
|
||||
@ -183,8 +186,8 @@ importers:
|
||||
specifier: ^3.0.13
|
||||
version: 3.0.13(zod@4.3.4)
|
||||
'@ai-sdk/openai':
|
||||
specifier: 3.0.0
|
||||
version: 3.0.0(patch_hash=0de8145a8df9e7d3d2166789cf1a033e7560d2383142dd7dda4a461b36db2d72)(zod@4.3.4)
|
||||
specifier: ^3.0.0
|
||||
version: 3.0.21(zod@4.3.4)
|
||||
'@ai-sdk/perplexity':
|
||||
specifier: ^3.0.12
|
||||
version: 3.0.12(zod@4.3.4)
|
||||
@ -197,6 +200,15 @@ importers:
|
||||
'@ai-sdk/test-server':
|
||||
specifier: ^1.0.3
|
||||
version: 1.0.3(@types/node@22.17.2)(typescript@5.8.3)
|
||||
'@ai-sdk/xai':
|
||||
specifier: ^3.0.0
|
||||
version: 3.0.41(zod@4.3.4)
|
||||
'@ant-design/cssinjs':
|
||||
specifier: 1.23.0
|
||||
version: 1.23.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||
'@ant-design/icons':
|
||||
specifier: 5.6.1
|
||||
version: 5.6.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||
'@ant-design/v5-patch-for-react-19':
|
||||
specifier: ^1.0.3
|
||||
version: 1.0.3(antd@5.27.0(patch_hash=cdc383bd0d9b9fe0df2ce7b1f1d4ead200012b7f9517d9257b4ea0a5b324e243)(moment@2.30.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||
@ -485,6 +497,9 @@ importers:
|
||||
'@tryfabric/martian':
|
||||
specifier: ^1.2.4
|
||||
version: 1.2.4(encoding@0.1.13)
|
||||
'@types/adm-zip':
|
||||
specifier: ^0.5.7
|
||||
version: 0.5.7
|
||||
'@types/cli-progress':
|
||||
specifier: ^3
|
||||
version: 3.11.6
|
||||
@ -614,6 +629,9 @@ importers:
|
||||
'@xyflow/react':
|
||||
specifier: ^12.4.4
|
||||
version: 12.10.0(@types/react@19.2.7)(immer@11.1.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||
adm-zip:
|
||||
specifier: 0.4.16
|
||||
version: 0.4.16
|
||||
ai:
|
||||
specifier: ^6.0.59
|
||||
version: 6.0.59(zod@4.3.4)
|
||||
@ -1201,7 +1219,7 @@ importers:
|
||||
specifier: ^3.0.0
|
||||
version: 3.0.29(zod@4.3.6)
|
||||
'@ai-sdk/google':
|
||||
specifier: ^3.0.0
|
||||
specifier: 3.0.0
|
||||
version: 3.0.0(patch_hash=540e635fb8eaa926cb5541afd0842705ed1530ce94ec9627d9e9694ccea58115)(zod@4.3.6)
|
||||
'@ai-sdk/openai':
|
||||
specifier: ^3.0.0
|
||||
@ -1210,10 +1228,10 @@ importers:
|
||||
specifier: 2.0.0
|
||||
version: 2.0.0(patch_hash=8485d66a36f6f8fc2640cd0a3da860a01fb7b7b94f9ef7847f7e14fa333f8ea8)(zod@4.3.6)
|
||||
'@ai-sdk/provider':
|
||||
specifier: ^3.0.0
|
||||
specifier: ^3.0.5
|
||||
version: 3.0.5
|
||||
'@ai-sdk/provider-utils':
|
||||
specifier: ^4.0.0
|
||||
specifier: ^4.0.10
|
||||
version: 4.0.10(zod@4.3.6)
|
||||
ai:
|
||||
specifier: ^6.0.26
|
||||
@ -5061,6 +5079,9 @@ packages:
|
||||
'@tybys/wasm-util@0.10.1':
|
||||
resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==}
|
||||
|
||||
'@types/adm-zip@0.5.7':
|
||||
resolution: {integrity: sha512-DNEs/QvmyRLurdQPChqq0Md4zGvPwHerAJYWk9l2jCbD1VPpnzRJorOdiq4zsw09NFbYnhfsoEhWtxIzXpn2yw==}
|
||||
|
||||
'@types/aria-query@5.0.4':
|
||||
resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
|
||||
|
||||
@ -16693,6 +16714,10 @@ snapshots:
|
||||
tslib: 2.8.1
|
||||
optional: true
|
||||
|
||||
'@types/adm-zip@0.5.7':
|
||||
dependencies:
|
||||
'@types/node': 22.17.2
|
||||
|
||||
'@types/aria-query@5.0.4': {}
|
||||
|
||||
'@types/body-parser@1.19.6':
|
||||
@ -17702,11 +17727,11 @@ snapshots:
|
||||
- utf-8-validate
|
||||
- vite
|
||||
|
||||
'@vitest/browser@3.2.4(msw@2.12.7(@types/node@24.10.4)(typescript@5.8.3))(playwright@1.57.0)(rolldown-vite@7.3.0(@types/node@24.10.4)(esbuild@0.25.12)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(vitest@3.2.4)':
|
||||
'@vitest/browser@3.2.4(msw@2.12.7(@types/node@24.10.4)(typescript@5.8.3))(playwright@1.57.0)(rolldown-vite@7.3.0(@types/node@22.17.2)(esbuild@0.25.12)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(vitest@3.2.4)':
|
||||
dependencies:
|
||||
'@testing-library/dom': 10.4.1
|
||||
'@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1)
|
||||
'@vitest/mocker': 3.2.4(msw@2.12.7(@types/node@24.10.4)(typescript@5.8.3))(rolldown-vite@7.3.0(@types/node@24.10.4)(esbuild@0.25.12)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))
|
||||
'@vitest/mocker': 3.2.4(msw@2.12.7(@types/node@24.10.4)(typescript@5.8.3))(rolldown-vite@7.3.0(@types/node@22.17.2)(esbuild@0.25.12)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))
|
||||
'@vitest/utils': 3.2.4
|
||||
magic-string: 0.30.21
|
||||
sirv: 3.0.2
|
||||
@ -17760,14 +17785,14 @@ snapshots:
|
||||
msw: 2.12.7(@types/node@22.17.2)(typescript@5.8.3)
|
||||
vite: rolldown-vite@7.3.0(@types/node@22.17.2)(esbuild@0.25.12)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)
|
||||
|
||||
'@vitest/mocker@3.2.4(msw@2.12.7(@types/node@24.10.4)(typescript@5.8.3))(rolldown-vite@7.3.0(@types/node@24.10.4)(esbuild@0.25.12)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))':
|
||||
'@vitest/mocker@3.2.4(msw@2.12.7(@types/node@24.10.4)(typescript@5.8.3))(rolldown-vite@7.3.0(@types/node@22.17.2)(esbuild@0.25.12)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))':
|
||||
dependencies:
|
||||
'@vitest/spy': 3.2.4
|
||||
estree-walker: 3.0.3
|
||||
magic-string: 0.30.21
|
||||
optionalDependencies:
|
||||
msw: 2.12.7(@types/node@24.10.4)(typescript@5.8.3)
|
||||
vite: rolldown-vite@7.3.0(@types/node@24.10.4)(esbuild@0.25.12)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)
|
||||
vite: rolldown-vite@7.3.0(@types/node@22.17.2)(esbuild@0.25.12)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)
|
||||
|
||||
'@vitest/pretty-format@3.2.4':
|
||||
dependencies:
|
||||
@ -17798,7 +17823,7 @@ snapshots:
|
||||
sirv: 3.0.2
|
||||
tinyglobby: 0.2.15
|
||||
tinyrainbow: 2.0.0
|
||||
vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.10.4)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(esbuild@0.25.12)(jiti@2.6.1)(jsdom@26.1.0)(msw@2.12.7(@types/node@24.10.4)(typescript@5.8.3))(tsx@4.21.0)(yaml@2.8.2)
|
||||
vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.17.2)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(esbuild@0.25.12)(jiti@2.6.1)(jsdom@26.1.0)(msw@2.12.7(@types/node@22.17.2)(typescript@5.8.3))(tsx@4.21.0)(yaml@2.8.2)
|
||||
|
||||
'@vitest/utils@3.2.4':
|
||||
dependencies:
|
||||
@ -25175,7 +25200,7 @@ snapshots:
|
||||
dependencies:
|
||||
'@types/chai': 5.2.3
|
||||
'@vitest/expect': 3.2.4
|
||||
'@vitest/mocker': 3.2.4(msw@2.12.7(@types/node@24.10.4)(typescript@5.8.3))(rolldown-vite@7.3.0(@types/node@24.10.4)(esbuild@0.25.12)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))
|
||||
'@vitest/mocker': 3.2.4(msw@2.12.7(@types/node@24.10.4)(typescript@5.8.3))(rolldown-vite@7.3.0(@types/node@22.17.2)(esbuild@0.25.12)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))
|
||||
'@vitest/pretty-format': 3.2.4
|
||||
'@vitest/runner': 3.2.4
|
||||
'@vitest/snapshot': 3.2.4
|
||||
@ -25199,7 +25224,7 @@ snapshots:
|
||||
optionalDependencies:
|
||||
'@types/debug': 4.1.12
|
||||
'@types/node': 24.10.4
|
||||
'@vitest/browser': 3.2.4(msw@2.12.7(@types/node@24.10.4)(typescript@5.8.3))(playwright@1.57.0)(rolldown-vite@7.3.0(@types/node@24.10.4)(esbuild@0.25.12)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(vitest@3.2.4)
|
||||
'@vitest/browser': 3.2.4(msw@2.12.7(@types/node@24.10.4)(typescript@5.8.3))(playwright@1.57.0)(rolldown-vite@7.3.0(@types/node@22.17.2)(esbuild@0.25.12)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(vitest@3.2.4)
|
||||
'@vitest/ui': 3.2.4(vitest@3.2.4)
|
||||
jsdom: 26.1.0
|
||||
transitivePeerDependencies:
|
||||
|
||||
@ -11,6 +11,7 @@ import { getAiSdkProviderId } from '../provider/factory'
|
||||
import type { AiSdkMiddlewareConfig } from '../types/middlewareConfig'
|
||||
import { isOpenRouterGeminiGenerateImageModel } from '../utils/image'
|
||||
import { getReasoningTagName } from '../utils/reasoning'
|
||||
import { createAnthropicCachePlugin } from './anthropicCachePlugin'
|
||||
import { createNoThinkPlugin } from './noThinkPlugin'
|
||||
import { createOpenrouterGenerateImagePlugin } from './openrouterGenerateImagePlugin'
|
||||
import { createOpenrouterReasoningPlugin } from './openrouterReasoningPlugin'
|
||||
@ -26,7 +27,7 @@ const logger = loggerService.withContext('PluginBuilder')
|
||||
* 根据条件构建插件数组
|
||||
*/
|
||||
export function buildPlugins(
|
||||
middlewareConfig: AiSdkMiddlewareConfig & { assistant: Assistant; topicId?: string; mcpMode?: string }
|
||||
middlewareConfig: AiSdkMiddlewareConfig & { assistant: Assistant; topicId?: string }
|
||||
): AiPlugin[] {
|
||||
const plugins: AiPlugin<any, any>[] = []
|
||||
|
||||
@ -55,6 +56,10 @@ export function buildPlugins(
|
||||
const tagName = getReasoningTagName(middlewareConfig.model?.id.toLowerCase())
|
||||
plugins.push(createReasoningExtractionPlugin({ tagName }))
|
||||
}
|
||||
|
||||
if (providerType === 'anthropic' && middlewareConfig.provider.anthropicCacheControl?.tokenThreshold) {
|
||||
plugins.push(createAnthropicCachePlugin())
|
||||
}
|
||||
}
|
||||
|
||||
// 0.3 OpenRouter reasoning redaction
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
* @see https://ai-sdk.dev/providers/ai-sdk-providers/anthropic#cache-control
|
||||
*/
|
||||
import type { LanguageModelV3Message } from '@ai-sdk/provider'
|
||||
import { definePlugin } from '@cherrystudio/ai-core/core/plugins'
|
||||
import { estimateTextTokens } from '@renderer/services/TokenService'
|
||||
import type { Provider } from '@renderer/types'
|
||||
import type { LanguageModelMiddleware } from 'ai'
|
||||
@ -24,9 +25,9 @@ function estimateContentTokens(content: LanguageModelV3Message['content']): numb
|
||||
return 0
|
||||
}
|
||||
|
||||
export function anthropicCacheMiddleware(provider: Provider): LanguageModelMiddleware {
|
||||
function anthropicCacheMiddleware(provider: Provider): LanguageModelMiddleware {
|
||||
return {
|
||||
middlewareVersion: 'v3',
|
||||
specificationVersion: 'v3',
|
||||
transformParams: async ({ params }) => {
|
||||
const settings = provider.anthropicCacheControl
|
||||
if (!settings?.tokenThreshold || !Array.isArray(params.prompt) || params.prompt.length === 0) {
|
||||
@ -83,3 +84,13 @@ export function anthropicCacheMiddleware(provider: Provider): LanguageModelMiddl
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const createAnthropicCachePlugin = () =>
|
||||
definePlugin({
|
||||
name: 'anthropicCache',
|
||||
enforce: 'pre',
|
||||
configureContext: (context) => {
|
||||
context.middlewares = context.middlewares || []
|
||||
context.middlewares.push(anthropicCacheMiddleware(context.provider))
|
||||
}
|
||||
})
|
||||
@ -195,17 +195,12 @@ export async function buildStreamTextParams(
|
||||
case 'anthropic':
|
||||
case 'azure-anthropic':
|
||||
case 'google-vertex-anthropic':
|
||||
tools.web_fetch = (
|
||||
['anthropic', 'azure-anthropic'].includes(aiSdkProviderId)
|
||||
? anthropic.tools.webFetch_20250910({
|
||||
maxUses: webSearchConfig.maxResults,
|
||||
blockedDomains: blockedDomains.length > 0 ? blockedDomains : undefined
|
||||
})
|
||||
: vertexAnthropic.tools.webFetch_20250910({
|
||||
maxUses: webSearchConfig.maxResults,
|
||||
blockedDomains: blockedDomains.length > 0 ? blockedDomains : undefined
|
||||
})
|
||||
) as ProviderDefinedTool
|
||||
if (['anthropic', 'azure-anthropic'].includes(aiSdkProviderId)) {
|
||||
tools.web_fetch = anthropic.tools.webFetch_20250910({
|
||||
maxUses: webSearchConfig.maxResults,
|
||||
blockedDomains: blockedDomains.length > 0 ? blockedDomains : undefined
|
||||
}) as ProviderDefinedTool
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,4 +23,5 @@ export interface AiSdkMiddlewareConfig {
|
||||
uiMessages?: Message[]
|
||||
webSearchPluginConfig?: WebSearchPluginConfig
|
||||
knowledgeRecognition?: 'off' | 'on'
|
||||
mcpMode?: string
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user