feat(web): 站点按类型分组、列表模式修样式、下掉自定义 RSS 源与索引器入口;智能体会话分对话 / 自动巡检两栏

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
rootandClaude Opus 5.5 committed 2026-10-02 23:56:27 +08:00
1 parent 8da8679a04
commit 8eb8a68295
11 files changed
+364 -312

No files matched your search

+15 -6
View File
@@ -120,8 +120,8 @@ function useAgentMockGate(): boolean {
export const agentKeys = {
all: ["agent"] as const,
runs: (status?: AgentRunStatus, trigger?: AgentTrigger) =>
["agent", "list", status ?? "all", trigger ?? "any"] as const,
runs: (status?: AgentRunStatus, trigger?: AgentTrigger, group?: AgentRunGroup) =>
["agent", "list", status ?? "all", trigger ?? "any", group ?? "any"] as const,
run: (id: string) => ["agent", "detail", id] as const,
};
@@ -137,19 +137,28 @@ export const TRIGGER_LABEL: Record<AgentTrigger, string> = {
};
/** 会话列表:按状态、来源(trigger)在服务端筛选,游标翻页 */
export function useAgentRuns(status?: AgentRunStatus, trigger?: AgentTrigger) {
/** 会话分栏:对话 = 用户发起;自动 = 定时巡检 / 事件触发(子会话随父会话) */
export type AgentRunGroup = "conversation" | "auto";
const isAutoTrigger = (t: AgentTrigger) => t === "schedule" || t === "event";
export function useAgentRuns(status?: AgentRunStatus, trigger?: AgentTrigger, group?: AgentRunGroup) {
const mock = useAgentMockGate();
return useInfiniteQuery({
queryKey: [...agentKeys.runs(status, trigger), mock],
queryKey: [...agentKeys.runs(status, trigger, group), mock],
initialPageParam: undefined as string | undefined,
queryFn: async ({ pageParam, signal }) => {
if (mock)
return {
items: MOCK_RUNS().filter((r) => (!status || r.status === status) && (!trigger || r.trigger === trigger)),
items: MOCK_RUNS().filter(
(r) =>
(!status || r.status === status) &&
(!trigger || r.trigger === trigger) &&
(!group || isAutoTrigger(r.trigger) === (group === "auto")),
),
nextCursor: null,
};
return apiParsed(RunPage, AGENT_BASE, {
params: cleanParams({ status, trigger, cursor: pageParam, limit: 30 }),
params: cleanParams({ status, trigger, group, cursor: pageParam, limit: 30 }),
signal,
});
},