Skip to content

Commit fef98f6

Browse files
committed
fix: update RooHandler to accept RooMessage[] type
1 parent 57e9792 commit fef98f6

File tree

2 files changed

+9
-13
lines changed

2 files changed

+9
-13
lines changed

src/api/providers/__tests__/roo.spec.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { Anthropic } from "@anthropic-ai/sdk"
44
import { rooDefaultModelId } from "@roo-code/types"
55

66
import { ApiHandlerOptions } from "../../../shared/api"
7+
import type { RooMessage } from "../../../core/task-persistence/rooMessage"
78

89
// Mock the AI SDK
910
const mockStreamText = vitest.fn()
@@ -138,7 +139,7 @@ describe("RooHandler", () => {
138139
let handler: RooHandler
139140
let mockOptions: ApiHandlerOptions
140141
const systemPrompt = "You are a helpful assistant."
141-
const messages: Anthropic.Messages.MessageParam[] = [
142+
const messages: RooMessage[] = [
142143
{
143144
role: "user",
144145
content: "Hello!",
@@ -297,7 +298,7 @@ describe("RooHandler", () => {
297298
it("should handle multiple messages in conversation", async () => {
298299
mockStreamText.mockReturnValue(createMockStreamResult())
299300

300-
const multipleMessages: Anthropic.Messages.MessageParam[] = [
301+
const multipleMessages: RooMessage[] = [
301302
{ role: "user", content: "First message" },
302303
{ role: "assistant", content: "First response" },
303304
{ role: "user", content: "Second message" },

src/api/providers/roo.ts

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Anthropic } from "@anthropic-ai/sdk"
22
import { createOpenAICompatible } from "@ai-sdk/openai-compatible"
3-
import { streamText, generateText } from "ai"
3+
import { streamText, generateText, type ModelMessage } from "ai"
44

55
import { rooDefaultModelId, getApiProtocol, type ImageGenerationApiMethod } from "@roo-code/types"
66
import { CloudService } from "@roo-code/cloud"
@@ -10,13 +10,7 @@ import type { ApiHandlerOptions } from "../../shared/api"
1010
import { calculateApiCostOpenAI } from "../../shared/cost"
1111
import { ApiStream } from "../transform/stream"
1212
import { 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"
2014
import { type ReasoningDetail } from "../transform/openai-format"
2115
import type { RooReasoningParams } from "../transform/reasoning"
2216
import { getRooReasoning } from "../transform/reasoning"
@@ -26,6 +20,7 @@ import { BaseProvider } from "./base-provider"
2620
import { getModels, getModelsFromCache } from "./fetchers/modelCache"
2721
import { generateImageWithProvider, generateImageWithImagesApi, ImageGenerationResult } from "./utils/image-generation"
2822
import { t } from "../../i18n"
23+
import type { RooMessage } from "../../core/task-persistence/rooMessage"
2924

3025
function 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

Comments
 (0)