CrossRelay stage 2: Codex /v1/responses relay, config.toml manager, Codex page

This commit is contained in:
kate522 committed 2026-10-18 18:35:01 +08:00
1 parent 404704171d
commit 5112f7ca06
30 files changed
+3539 -72

No files matched your search

+7 -6
View File
@@ -5,7 +5,7 @@ export const queryKeys = {
status: ["status"] as const,
providers: ["providers"] as const,
logs: ["logs"] as const,
backups: ["backups"] as const,
backups: (target: string) => ["backups", target] as const,
settings: ["settings"] as const,
};
@@ -21,8 +21,8 @@ export function useLogs() {
return useQuery({ queryKey: queryKeys.logs, queryFn: api.listLogs, refetchInterval: 5000 });
}
export function useBackups() {
return useQuery({ queryKey: queryKeys.backups, queryFn: api.listBackups });
export function useBackups(target: "claude" | "codex") {
return useQuery({ queryKey: queryKeys.backups(target), queryFn: () => api.listBackups(target) });
}
export function useSettings() {
@@ -33,7 +33,7 @@ function invalidateAll(queryClient: ReturnType<typeof useQueryClient>) {
return Promise.all([
queryClient.invalidateQueries({ queryKey: queryKeys.providers }),
queryClient.invalidateQueries({ queryKey: queryKeys.status }),
queryClient.invalidateQueries({ queryKey: queryKeys.backups }),
queryClient.invalidateQueries({ queryKey: ["backups"] }),
queryClient.invalidateQueries({ queryKey: queryKeys.settings }),
]);
}
@@ -53,7 +53,8 @@ export function useProviderMutations() {
onSuccess: () => invalidateAll(queryClient),
});
const apply = useMutation({
mutationFn: (id: string) => api.applyProvider(id),
mutationFn: ({ id, target }: { id: string; target: "claude" | "codex" }) =>
api.applyProvider(id, target),
onSuccess: () => invalidateAll(queryClient),
});
return { create, update, remove, apply };
@@ -62,7 +63,7 @@ export function useProviderMutations() {
export function useRestore() {
const queryClient = useQueryClient();
return useMutation({
mutationFn: () => api.restore(),
mutationFn: (input: Parameters<typeof api.restore>[0]) => api.restore(input),
onSuccess: () => invalidateAll(queryClient),
});
}