refactor(api): modularize assistant router workflow

This commit is contained in:
2026-03-31 10:30:28 +02:00
parent 45c90438ba
commit f08b47171c
13 changed files with 2186 additions and 1875 deletions
@@ -0,0 +1,35 @@
import { describe, expect, it } from "vitest";
import { readToolError, readToolSuccessMessage } from "../router/assistant-tool-results.js";
describe("assistant tool results", () => {
it("reads structured tool errors from result data or JSON content", () => {
expect(readToolError({
content: "",
data: { error: "Forbidden" },
})).toBe("Forbidden");
expect(readToolError({
content: JSON.stringify({ error: "Validation failed" }),
})).toBe("Validation failed");
expect(readToolError({
content: "plain text",
data: { ok: true },
})).toBeNull();
});
it("prefers structured success messages and falls back to plain content", () => {
expect(readToolSuccessMessage({
content: "",
data: { message: "Created project Apollo" },
})).toBe("Created project Apollo");
expect(readToolSuccessMessage({
content: JSON.stringify({ description: "Updated allocation" }),
})).toBe("Updated allocation");
expect(readToolSuccessMessage({
content: "Fallback tool response",
})).toBe("Fallback tool response");
});
});