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:
@@ -0,0 +1,30 @@
|
||||
import { useEffect } from "react";
|
||||
import { dismissMapNotice, showMapNotice } from "@/features/map/core";
|
||||
|
||||
const RECONNECT_NOTICE_DELAY_MS = 15_000;
|
||||
const RECONNECT_NOTICE_ID = "workbench-sync-reconnecting";
|
||||
|
||||
export function useWorkbenchSyncNotice(reconnecting: boolean) {
|
||||
useEffect(() => {
|
||||
if (!reconnecting) {
|
||||
dismissMapNotice(RECONNECT_NOTICE_ID);
|
||||
return;
|
||||
}
|
||||
|
||||
// Scheduled SSE renewal and brief outages normally recover within this window.
|
||||
const timer = window.setTimeout(() => {
|
||||
showMapNotice({
|
||||
id: RECONNECT_NOTICE_ID,
|
||||
tone: "warning",
|
||||
title: "业务同步正在重连",
|
||||
message: "当前数据可能陈旧,连接恢复后将自动更新。",
|
||||
duration: Infinity
|
||||
});
|
||||
}, RECONNECT_NOTICE_DELAY_MS);
|
||||
|
||||
return () => {
|
||||
window.clearTimeout(timer);
|
||||
dismissMapNotice(RECONNECT_NOTICE_ID);
|
||||
};
|
||||
}, [reconnecting]);
|
||||
}
|
||||
Reference in New Issue
Block a user