11import { Anthropic } from "@anthropic-ai/sdk"
22import { createOpenAICompatible } from "@ai-sdk/openai-compatible"
3- import { streamText , generateText } from "ai"
3+ import { streamText , generateText , type ModelMessage } from "ai"
44
55import { rooDefaultModelId , getApiProtocol , type ImageGenerationApiMethod } from "@roo-code/types"
66import { CloudService } from "@roo-code/cloud"
@@ -10,13 +10,7 @@ import type { ApiHandlerOptions } from "../../shared/api"
1010import { calculateApiCostOpenAI } from "../../shared/cost"
1111import { ApiStream } from "../transform/stream"
1212import { getModelParams } from "../transform/model-params"
13- import {
14- convertToAiSdkMessages ,
15- convertToolsForAiSdk ,
16- processAiSdkStreamPart ,
17- handleAiSdkError ,
18- mapToolChoice ,
19- } from "../transform/ai-sdk"
13+ import { convertToolsForAiSdk , processAiSdkStreamPart , handleAiSdkError , mapToolChoice } from "../transform/ai-sdk"
2014import { type ReasoningDetail } from "../transform/openai-format"
2115import type { RooReasoningParams } from "../transform/reasoning"
2216import { getRooReasoning } from "../transform/reasoning"
@@ -26,6 +20,7 @@ import { BaseProvider } from "./base-provider"
2620import { getModels , getModelsFromCache } from "./fetchers/modelCache"
2721import { generateImageWithProvider , generateImageWithImagesApi , ImageGenerationResult } from "./utils/image-generation"
2822import { t } from "../../i18n"
23+ import type { RooMessage } from "../../core/task-persistence/rooMessage"
2924
3025function getSessionToken ( ) : string {
3126 const token = CloudService . hasInstance ( ) ? CloudService . instance . authService ?. getSessionToken ( ) : undefined
@@ -95,7 +90,7 @@ export class RooHandler extends BaseProvider implements SingleCompletionHandler
9590
9691 override async * createMessage (
9792 systemPrompt : string ,
98- messages : Anthropic . Messages . MessageParam [ ] ,
93+ messages : RooMessage [ ] ,
9994 metadata ?: ApiHandlerCreateMessageMetadata ,
10095 ) : ApiStream {
10196 // Reset reasoning_details accumulator for this request
@@ -127,8 +122,8 @@ export class RooHandler extends BaseProvider implements SingleCompletionHandler
127122 // Create per-request provider with fresh session token
128123 const provider = this . createRooProvider ( { reasoning, taskId : metadata ?. taskId } )
129124
130- // Convert messages and tools to AI SDK format
131- const aiSdkMessages = convertToAiSdkMessages ( messages )
125+ // RooMessage[] is already AI SDK-compatible, cast directly
126+ const aiSdkMessages = messages as ModelMessage [ ]
132127 const tools = convertToolsForAiSdk ( this . convertToolsForOpenAI ( metadata ?. tools ) )
133128
134129 let accumulatedReasoningText = ""
0 commit comments