backends.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import { backendKeyMap } from "@/features/diagnosed/backendKeys";
  2. import { Agent } from "@/types/agent";
  3. import { supabase } from "@/utils/supabase";
  4. export async function getBackendsFromSupabase(agentId?: string | null) {
  5. let query = supabase.from("agent-backend").select("*");
  6. if (agentId) {
  7. query = query.eq("agentId", agentId);
  8. }
  9. const { data, error } = await query;
  10. if (error) throw error;
  11. return data;
  12. }
  13. export async function fetchBackends(agentId: string, config: Agent["config"]) {
  14. const res = await fetch(`/api/backends?agentId=${agentId}`);
  15. if (!res.ok) throw new Error("Failed to fetch backends. ");
  16. const json = await res.json();
  17. const result = json[0];
  18. const fullConfig: { [key: string]: Record<string, string> } = {};
  19. // Assign metadata values back to the appropriate backend sections
  20. for (const backendName in config) {
  21. const configKey = backendName as keyof Agent["config"];
  22. const configValue = config[configKey];
  23. fullConfig[configValue] = result[configKey];
  24. }
  25. return fullConfig
  26. }
  27. export function extractKeyNames(agentConfig: Record<string, string>) {
  28. const keysMap: Record<string, string[]> = {};
  29. for (const backendType in agentConfig) {
  30. const backendName = agentConfig[backendType];
  31. const mappedKeys = backendKeyMap[backendName];
  32. if (mappedKeys) {
  33. keysMap[backendType] = mappedKeys;
  34. }
  35. }
  36. const keysList = Object.values(keysMap).flat();
  37. return { keysMap, keysList };
  38. }