9b30f681c6
- React+antd+zustand,注册表驱动路由/菜单/权限 - Tauri 桌面壳、后端托管 SPA、跨标签页消息队列
36 lines
1.0 KiB
TypeScript
36 lines
1.0 KiB
TypeScript
import { useEffect, useState } from "react";
|
|
import { agentApi } from "../api/modules/agent";
|
|
import { useAgentStore } from "../stores/agentStore";
|
|
import { normalizeLevel, type ToolExecutionLevel } from "../utils/approval";
|
|
|
|
/**
|
|
* Returns the running-config approval level for the currently selected agent.
|
|
* Re-fetches automatically when the selected agent changes, and falls back to
|
|
* "AUTO" on error.
|
|
*/
|
|
export function useAgentRunningConfigApprovalLevel(): ToolExecutionLevel {
|
|
const { selectedAgent } = useAgentStore();
|
|
const [level, setLevel] = useState<ToolExecutionLevel>("AUTO");
|
|
|
|
useEffect(() => {
|
|
let cancelled = false;
|
|
(async () => {
|
|
try {
|
|
const config = await agentApi.getAgentRunningConfig();
|
|
if (!cancelled) {
|
|
setLevel(normalizeLevel(config.approval_level));
|
|
}
|
|
} catch {
|
|
if (!cancelled) {
|
|
setLevel("AUTO");
|
|
}
|
|
}
|
|
})();
|
|
return () => {
|
|
cancelled = true;
|
|
};
|
|
}, [selectedAgent]);
|
|
|
|
return level;
|
|
}
|