feat(agent): support Responses steering and project-aware tools

Use the dedicated TJWATER_AGENT_URL and Responses stream protocol. Keep running
turns active while users steer or queue follow-ups and edit pending delivery.
Refresh the model catalog before generation and preserve approval mode selection.

Integrate scoped investigation messaging/presentation, geographic place selection,
current Agent composer styles and supporting workbench contracts.

Validation: 77 focused Vitest checks, 21 browser cases, lint, typecheck and
production build. Preserve direct Server/Agent routing and project authentication.
This commit is contained in:
2026-10-19 18:46:58 +08:00
parent 2c5bf15cce
commit ec23d44b02
131 changed files with 6663 additions and 1204 deletions
@@ -266,12 +266,12 @@ test("审批动作展示中文参数和证据,viewer 不可审批,冲突后
await page.goto("/");
const alertTrigger = page.getByRole("button", {
name: "查看异常处置面板,当前 0 条待复核工况"
name: "查看待办与告警,当前 0 条待处理事项"
}).first();
await expect(alertTrigger).toBeVisible();
await alertTrigger.click();
await expect(page.getByText("当前无待复核工况", { exact: true }).first()).toBeVisible();
await expect(page.getByText("来源:未配置告警源", { exact: true })).toBeVisible();
await expect(page.getByText("当前无待处理事项", { exact: true }).first()).toBeVisible();
await expect(page.getByText("业务告警来源:未配置", { exact: true })).toBeVisible();
await page.keyboard.press("Escape");
const reconnectNotice = page.locator("[data-sonner-toast]").filter({
hasText: "业务同步正在重连"