Files
paseo/packages/app/src/hooks/use-acp-provider-catalog.ts
T

35 lines
1.0 KiB
TypeScript

import { useCallback, useState } from "react";
import type { MutableDaemonConfigPatch } from "@getpaseo/protocol/messages";
import { ACP_PROVIDER_CATALOG, type AcpProviderCatalogEntry } from "@/data/acp-provider-catalog";
export type AcpProviderCatalogItem = AcpProviderCatalogEntry;
export function getAcpProviderCatalog(): AcpProviderCatalogItem[] {
return ACP_PROVIDER_CATALOG;
}
export function buildAcpProviderConfigPatch(
entry: AcpProviderCatalogItem,
): MutableDaemonConfigPatch {
return {
providers: {
[entry.id]: {
extends: "acp",
label: entry.title,
description: entry.description,
command: [...entry.command],
env: entry.env ? { ...entry.env } : {},
...(entry.params ? { params: { ...entry.params } } : {}),
},
},
};
}
export function useAcpProviderCatalog() {
const [entries] = useState<AcpProviderCatalogItem[]>(ACP_PROVIDER_CATALOG);
const refetch = useCallback(async () => entries, [entries]);
return { entries, loading: false, error: null, refetch };
}