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:
@@ -10,7 +10,7 @@ test("top bar uses compact controls on narrow mobile viewports", async ({ page }
|
||||
);
|
||||
await expect(page.getByRole("button", { name: "切换模拟方案" })).toBeHidden();
|
||||
await expect(page.getByRole("button", { name: "切换地图 Dev Panel" })).toBeHidden();
|
||||
const alertButton = page.getByRole("button", { name: /查看异常处置面板/ });
|
||||
const alertButton = page.getByRole("button", { name: /查看待办与告警/ });
|
||||
const userButton = page.getByRole("button", { name: "打开用户菜单" });
|
||||
await expect(alertButton).toBeVisible();
|
||||
await expect(userButton).toBeVisible();
|
||||
@@ -55,6 +55,6 @@ test("top bar keeps text horizontal at the desktop breakpoint", async ({ page })
|
||||
return style.display !== "none" && style.visibility !== "hidden" && rect.width > 0 && rect.height > 0;
|
||||
})
|
||||
.map((span) => span.textContent?.trim())
|
||||
.filter((text) => text === "任务浮条" || text === "工况任务" || text === "异常处置").length;
|
||||
.filter((text) => text === "任务浮条" || text === "工况任务" || text === "待办与告警").length;
|
||||
})).toBe(0);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user