feat(agent): add llm assistant chat with api tools (task 88)

OpenAI-compatible client with mock fallback, tool-calling loop, and /assistant UI.

Tools map to /api/v1/ endpoints per ADR 0006 direct-tools decision.
This commit is contained in:
ginnoir
2026-07-04 19:46:09 -05:00
parent 04ae809e07
commit 4a924a4107
19 changed files with 956 additions and 6 deletions
+13
View File
@@ -0,0 +1,13 @@
import { expect, test } from "@playwright/test";
test("assistant chat smoke", async ({ page }) => {
await page.goto("/assistant");
await expect(page.getByRole("heading", { name: "Assistant" })).toBeVisible();
await page.getByLabel("Message").fill("hello assistant");
await page.getByRole("button", { name: "Send" }).click();
await expect(page.getByText("You")).toBeVisible();
await expect(page.getByText("hello assistant")).toBeVisible();
await expect(page.getByText("Assistant", { exact: true }).nth(1)).toBeVisible();
});