mirror of
https://github.com/bytedance/deer-flow.git
synced 2026-11-08 03:30:34 +00:00
* feat(frontend): add token usage dashboard over console APIs * fix(frontend): address token usage dashboard review feedback * fix(frontend): route usage runs to their custom agent chats * docs(frontend): keep agent guidance within the module budget
39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
import { useQuery } from "@tanstack/react-query";
|
|
|
|
import { fetchUsage, fetchUsageRuns } from "./api";
|
|
import type { UsagePeriod, UsageRunFilter } from "./types";
|
|
|
|
// The workspace QueryClient is already account-scoped; explicit owner keys
|
|
// also fence requests when auth is unknown or a caller mounts us elsewhere.
|
|
export function useUsage(
|
|
owner: string | undefined,
|
|
days: UsagePeriod,
|
|
timezoneOffsetMinutes: number,
|
|
enabled: boolean,
|
|
) {
|
|
return useQuery({
|
|
queryKey: ["usage", owner, "window", days, timezoneOffsetMinutes],
|
|
queryFn: ({ signal }) => fetchUsage(days, timezoneOffsetMinutes, signal),
|
|
enabled: enabled && !!owner,
|
|
staleTime: 30_000,
|
|
retry: false,
|
|
});
|
|
}
|
|
|
|
export function useUsageRuns(
|
|
owner: string | undefined,
|
|
page: number,
|
|
status: UsageRunFilter,
|
|
enabled: boolean,
|
|
) {
|
|
return useQuery({
|
|
queryKey: ["usage", owner, "runs", status, page],
|
|
queryFn: ({ signal }) => fetchUsageRuns(page * 20, status, signal),
|
|
enabled: enabled && !!owner,
|
|
staleTime: 30_000,
|
|
refetchOnWindowFocus: page === 0,
|
|
refetchOnReconnect: page === 0,
|
|
retry: false,
|
|
});
|
|
}
|