From 43048f89c55efaf2b4bdd9cfb882cc9ce03a6ab3 Mon Sep 17 00:00:00 2001 From: Gab Date: Mon, 30 Mar 2026 11:36:11 +1100 Subject: [PATCH] fix: types --- .../sdk/toothfairyai/toothfairyai-provider.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/tfcode/src/provider/sdk/toothfairyai/toothfairyai-provider.ts b/packages/tfcode/src/provider/sdk/toothfairyai/toothfairyai-provider.ts index ad415eb91..832624748 100644 --- a/packages/tfcode/src/provider/sdk/toothfairyai/toothfairyai-provider.ts +++ b/packages/tfcode/src/provider/sdk/toothfairyai/toothfairyai-provider.ts @@ -1,5 +1,10 @@ import type { LanguageModelV2 } from "@ai-sdk/provider" -import { type FetchFunction, withoutTrailingSlash, safeParseJSON, EventSourceParserStream } from "@ai-sdk/provider-utils" +import { + type FetchFunction, + withoutTrailingSlash, + safeParseJSON, + EventSourceParserStream, +} from "@ai-sdk/provider-utils" import { OpenAICompatibleChatLanguageModel } from "../copilot/chat/openai-compatible-chat-language-model" import { Log } from "@/util/log" @@ -127,8 +132,8 @@ export function createToothFairyAI(options: ToothFairyAIProviderSettings = {}): return } - const parsed = await safeParseJSON({ text: data, schema: null }) - + const parsed = await safeParseJSON({ text: data }) + if (!parsed.success) { log.error("Failed to parse SSE chunk", { chunk: data.slice(0, 100), @@ -138,7 +143,11 @@ export function createToothFairyAI(options: ToothFairyAIProviderSettings = {}): return } - const value = parsed.value + const value = parsed.value as { + status?: string + choices?: Array<{ finish_reason?: string }> + usage?: { prompt_tokens?: number; completion_tokens?: number; total_tokens?: number } + } if (value.status === "initialising" || value.status === "connected") { log.debug("filtered connection status", { status: value.status })