90 lines · 2.2 KB · TypeScript
RawDownload
import { describe, expect, test } from "bun:test"import { LLM } from "../../src/session/llm"import type { ModelMessage } from "ai" describe("session.llm.hasToolCalls", () => {  test("returns false for empty messages array", () => {    expect(LLM.hasToolCalls([])).toBe(false)  })   test("returns false for messages with only text content", () => {    const messages: ModelMessage[] = [      {        role: "user",        content: [{ type: "text", text: "Hello" }],      },      {        role: "assistant",        content: [{ type: "text", text: "Hi there" }],      },    ]    expect(LLM.hasToolCalls(messages)).toBe(false)  })   test("returns true when messages contain tool-call", () => {    const messages = [      {        role: "user",        content: [{ type: "text", text: "Run a command" }],      },      {        role: "assistant",        content: [          {            type: "tool-call",            toolCallId: "call-123",            toolName: "bash",          },        ],      },    ] as ModelMessage[]    expect(LLM.hasToolCalls(messages)).toBe(true)  })   test("returns true when messages contain tool-result", () => {    const messages = [      {        role: "tool",        content: [          {            type: "tool-result",            toolCallId: "call-123",            toolName: "bash",          },        ],      },    ] as ModelMessage[]    expect(LLM.hasToolCalls(messages)).toBe(true)  })   test("returns false for messages with string content", () => {    const messages: ModelMessage[] = [      {        role: "user",        content: "Hello world",      },      {        role: "assistant",        content: "Hi there",      },    ]    expect(LLM.hasToolCalls(messages)).toBe(false)  })   test("returns true when tool-call is mixed with text content", () => {    const messages = [      {        role: "assistant",        content: [          { type: "text", text: "Let me run that command" },          {            type: "tool-call",            toolCallId: "call-456",            toolName: "read",          },        ],      },    ] as ModelMessage[]    expect(LLM.hasToolCalls(messages)).toBe(true)  })})

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t