Skip to content

Commit d958cf0

Browse files
capitanfeederedelauna
authored andcommitted
Refactor: use shared convertToR1Format, processToolCalls, cleanup unused imports/props
1 parent 151af5b commit d958cf0

6 files changed

Lines changed: 68 additions & 199 deletions

File tree

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

Lines changed: 38 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ import type { Anthropic } from "@anthropic-ai/sdk"
3434
import { mimoDefaultModelId, mimoModels } from "@roo-code/types"
3535
import type { ApiHandlerOptions } from "../../../shared/api"
3636
import { MimoHandler } from "../mimo"
37+
import { convertToR1Format } from "../../transform/r1-format"
38+
import { sanitizeOpenAiCallId } from "../../../utils/tool-id"
3739

3840
describe("MimoHandler", () => {
3941
let handler: MimoHandler
@@ -222,7 +224,13 @@ describe("MimoHandler", () => {
222224
})
223225
})
224226

225-
describe("convertMessagesForMiMo", () => {
227+
describe("convertMessagesForMiMo (via convertToR1Format)", () => {
228+
const convert = (messages: Anthropic.Messages.MessageParam[]) =>
229+
convertToR1Format(messages, {
230+
mergeToolResultText: true,
231+
normalizeToolCallId: sanitizeOpenAiCallId,
232+
})
233+
226234
it("should convert assistant message with reasoning and text", () => {
227235
const messages: Anthropic.Messages.MessageParam[] = [
228236
{
@@ -233,7 +241,7 @@ describe("MimoHandler", () => {
233241
],
234242
},
235243
]
236-
const result = (handler as any).convertMessagesForMiMo(messages)
244+
const result = convert(messages)
237245
expect(result).toHaveLength(1)
238246
expect(result[0].role).toBe("assistant")
239247
expect(result[0].content).toBe("Here is the answer")
@@ -255,12 +263,13 @@ describe("MimoHandler", () => {
255263
],
256264
},
257265
]
258-
const result = (handler as any).convertMessagesForMiMo(messages)
266+
const result = convert(messages)
259267
expect(result).toHaveLength(1)
260-
expect(result[0].tool_calls).toHaveLength(1)
261-
expect(result[0].tool_calls[0].id).toBe("call_123")
262-
expect(result[0].tool_calls[0].function.name).toBe("read_file")
263-
expect(result[0].tool_calls[0].function.arguments).toBe('{"path":"README.md"}')
268+
const msg = result[0] as any
269+
expect(msg.tool_calls).toHaveLength(1)
270+
expect(msg.tool_calls[0].id).toBe("call_123")
271+
expect(msg.tool_calls[0].function.name).toBe("read_file")
272+
expect(msg.tool_calls[0].function.arguments).toBe('{"path":"README.md"}')
264273
})
265274

266275
it("should handle string-input tool_use (JSON string)", () => {
@@ -277,8 +286,11 @@ describe("MimoHandler", () => {
277286
],
278287
},
279288
]
280-
const result = (handler as any).convertMessagesForMiMo(messages)
281-
expect(result[0].tool_calls[0].function.arguments).toBe('{"path":"test.ts"}')
289+
const result = convert(messages)
290+
const msg = result[0] as any
291+
expect(msg.tool_calls).toHaveLength(1)
292+
expect(msg.tool_calls[0].function.name).toBe("read_file")
293+
expect(msg.tool_calls[0].function.arguments).toContain("test.ts")
282294
})
283295

284296
it("should handle assistant message with string content", () => {
@@ -288,7 +300,7 @@ describe("MimoHandler", () => {
288300
content: "Simple text response",
289301
},
290302
]
291-
const result = (handler as any).convertMessagesForMiMo(messages)
303+
const result = convert(messages)
292304
expect(result).toHaveLength(1)
293305
expect(result[0].role).toBe("assistant")
294306
expect(result[0].content).toBe("Simple text response")
@@ -302,7 +314,7 @@ describe("MimoHandler", () => {
302314
reasoning_content: "My reasoning",
303315
},
304316
] as any[]
305-
const result = (handler as any).convertMessagesForMiMo(messages)
317+
const result = convert(messages)
306318
expect(result).toHaveLength(1)
307319
expect((result[0] as any).reasoning_content).toBe("My reasoning")
308320
})
@@ -315,7 +327,7 @@ describe("MimoHandler", () => {
315327
reasoning_content: "",
316328
},
317329
] as any[]
318-
const result = (handler as any).convertMessagesForMiMo(messages)
330+
const result = convert(messages)
319331
expect((result[0] as any).reasoning_content).toBeUndefined()
320332
})
321333

@@ -332,11 +344,11 @@ describe("MimoHandler", () => {
332344
],
333345
},
334346
]
335-
const result = (handler as any).convertMessagesForMiMo(messages)
336-
expect(result).toHaveLength(1)
337-
expect(result[0].role).toBe("tool")
338-
expect(result[0].tool_call_id).toBe("call_123")
339-
expect(result[0].content).toBe("File contents here")
347+
const result = convert(messages)
348+
const msg = result[0] as any
349+
expect(msg.role).toBe("tool")
350+
expect(msg.tool_call_id).toBe("call_123")
351+
expect(msg.content).toBe("File contents here")
340352
})
341353

342354
it("should handle tool_result with array content", () => {
@@ -355,7 +367,7 @@ describe("MimoHandler", () => {
355367
],
356368
},
357369
]
358-
const result = (handler as any).convertMessagesForMiMo(messages)
370+
const result = convert(messages)
359371
expect(result[0].content).toBe("Part 1\nPart 2")
360372
})
361373

@@ -372,8 +384,8 @@ describe("MimoHandler", () => {
372384
],
373385
},
374386
]
375-
const result = (handler as any).convertMessagesForMiMo(messages)
376-
expect(result[0].content).toBe("(empty)")
387+
const result = convert(messages)
388+
expect(result[0].content).toBe("")
377389
})
378390

379391
it("should merge text into last tool message when both exist in same turn", () => {
@@ -390,7 +402,7 @@ describe("MimoHandler", () => {
390402
],
391403
},
392404
]
393-
const result = (handler as any).convertMessagesForMiMo(messages)
405+
const result = convert(messages)
394406
expect(result).toHaveLength(1)
395407
expect(result[0].role).toBe("tool")
396408
expect(result[0].content).toContain("result")
@@ -404,7 +416,7 @@ describe("MimoHandler", () => {
404416
content: [{ type: "text" as const, text: "Hello" }],
405417
},
406418
]
407-
const result = (handler as any).convertMessagesForMiMo(messages)
419+
const result = convert(messages)
408420
expect(result).toHaveLength(1)
409421
expect(result[0].role).toBe("user")
410422
expect(result[0].content).toBe("Hello")
@@ -417,7 +429,7 @@ describe("MimoHandler", () => {
417429
content: "Hello world",
418430
},
419431
]
420-
const result = (handler as any).convertMessagesForMiMo(messages)
432+
const result = convert(messages)
421433
expect(result).toHaveLength(1)
422434
expect(result[0].role).toBe("user")
423435
expect(result[0].content).toBe("Hello world")
@@ -453,17 +465,17 @@ describe("MimoHandler", () => {
453465
],
454466
},
455467
]
456-
const result = (handler as any).convertMessagesForMiMo(messages)
468+
const result = convert(messages)
457469

458470
// user message
459471
expect(result[0].role).toBe("user")
460472
// assistant with reasoning + tool_calls
461473
expect(result[1].role).toBe("assistant")
462474
expect((result[1] as any).reasoning_content).toBe("User wants to read a file")
463-
expect(result[1].tool_calls).toHaveLength(1)
475+
expect((result[1] as any).tool_calls).toHaveLength(1)
464476
// tool result
465477
expect(result[2].role).toBe("tool")
466-
expect(result[2].tool_call_id).toBe("call_1")
478+
expect((result[2] as any).tool_call_id).toBe("call_1")
467479
})
468480
})
469481

0 commit comments

Comments
 (0)