mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-20 15:10:59 +08:00
fix: stabilize tool streaming typings
This commit is contained in:
parent
7631d9d730
commit
5d26bf15a3
@ -68,15 +68,26 @@ class TextStreamAccumulator {
|
|||||||
}
|
}
|
||||||
case 'tool-call':
|
case 'tool-call':
|
||||||
if (part.toolCallId) {
|
if (part.toolCallId) {
|
||||||
|
const legacyPart = part as typeof part & {
|
||||||
|
args?: unknown
|
||||||
|
providerMetadata?: { raw?: { input?: unknown } }
|
||||||
|
}
|
||||||
this.toolCalls.set(part.toolCallId, {
|
this.toolCalls.set(part.toolCallId, {
|
||||||
toolName: part.toolName,
|
toolName: part.toolName,
|
||||||
input: part.input ?? part.args ?? part.providerMetadata?.raw?.input
|
input: part.input ?? legacyPart.args ?? legacyPart.providerMetadata?.raw?.input
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
case 'tool-result':
|
case 'tool-result':
|
||||||
if (part.toolCallId) {
|
if (part.toolCallId) {
|
||||||
this.toolResults.set(part.toolCallId, part.output ?? part.result ?? part.providerMetadata?.raw)
|
const legacyPart = part as typeof part & {
|
||||||
|
result?: unknown
|
||||||
|
providerMetadata?: { raw?: unknown }
|
||||||
|
}
|
||||||
|
this.toolResults.set(
|
||||||
|
part.toolCallId,
|
||||||
|
part.output ?? legacyPart.result ?? legacyPart.providerMetadata?.raw
|
||||||
|
)
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
default:
|
default:
|
||||||
|
|||||||
@ -14,13 +14,21 @@ vi.mock('@logger', async () => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
vi.mock('axios', () => ({
|
vi.mock('axios', () => {
|
||||||
default: {
|
const defaultAxiosMock = {
|
||||||
get: vi.fn().mockResolvedValue({ data: {} }), // Mocking axios GET request
|
get: vi.fn().mockResolvedValue({ data: {} }), // Mocking axios GET request
|
||||||
post: vi.fn().mockResolvedValue({ data: {} }) // Mocking axios POST request
|
post: vi.fn().mockResolvedValue({ data: {} }) // Mocking axios POST request
|
||||||
// You can add other axios methods like put, delete etc. as needed
|
// You can add other axios methods like put, delete etc. as needed
|
||||||
}
|
}
|
||||||
}))
|
|
||||||
|
const isAxiosError = (error: unknown): error is { isAxiosError?: boolean } =>
|
||||||
|
Boolean((error as { isAxiosError?: boolean } | undefined)?.isAxiosError)
|
||||||
|
|
||||||
|
return {
|
||||||
|
default: defaultAxiosMock,
|
||||||
|
isAxiosError
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
vi.stubGlobal('electron', {
|
vi.stubGlobal('electron', {
|
||||||
ipcRenderer: {
|
ipcRenderer: {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user