feat(webui): polish agent output and app discovery
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
|
||||
import { coalesceActivityMessages } from "@/components/thread/activity/activity-message-model";
|
||||
import type { UIMessage } from "@/lib/types";
|
||||
|
||||
const trace = 'web_search({"query":"same query"})';
|
||||
|
||||
function progressMessage(id: string, phase: "start" | "end" | "error"): UIMessage {
|
||||
return {
|
||||
id,
|
||||
role: "tool",
|
||||
kind: "trace",
|
||||
content: trace,
|
||||
traces: [trace],
|
||||
toolEvents: [{ phase, name: "web_search", arguments: { query: "same query" } }],
|
||||
createdAt: 1,
|
||||
};
|
||||
}
|
||||
|
||||
describe("activity message coalescing", () => {
|
||||
it("folds persisted start and terminal progress into one activity", () => {
|
||||
const result = coalesceActivityMessages([
|
||||
progressMessage("start", "start"),
|
||||
progressMessage("end", "end"),
|
||||
]);
|
||||
|
||||
expect(result).toHaveLength(1);
|
||||
expect(result[0].toolEvents?.[0]?.phase).toBe("end");
|
||||
});
|
||||
|
||||
it("keeps repeated completed calls as separate activities", () => {
|
||||
const result = coalesceActivityMessages([
|
||||
progressMessage("first", "end"),
|
||||
progressMessage("second", "end"),
|
||||
]);
|
||||
|
||||
expect(result).toHaveLength(2);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user