fix: stabilize tool streaming typings

This commit is contained in:
Vaayne
2025-09-22 22:42:43 +08:00
parent 7631d9d730
commit 5d26bf15a3
2 changed files with 24 additions and 5 deletions

View File

@@ -68,15 +68,26 @@ class TextStreamAccumulator {
}
case 'tool-call':
if (part.toolCallId) {
const legacyPart = part as typeof part & {
args?: unknown
providerMetadata?: { raw?: { input?: unknown } }
}
this.toolCalls.set(part.toolCallId, {
toolName: part.toolName,
input: part.input ?? part.args ?? part.providerMetadata?.raw?.input
input: part.input ?? legacyPart.args ?? legacyPart.providerMetadata?.raw?.input
})
}
break
case 'tool-result':
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
default:

View File

@@ -14,13 +14,21 @@ vi.mock('@logger', async () => {
}
})
vi.mock('axios', () => ({
default: {
vi.mock('axios', () => {
const defaultAxiosMock = {
get: vi.fn().mockResolvedValue({ data: {} }), // Mocking axios GET request
post: vi.fn().mockResolvedValue({ data: {} }) // Mocking axios POST request
// 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', {
ipcRenderer: {