import { createActionHandler, createFetcherHandler } from "@typebot.io/forge";
import { parseUnknownError } from "@typebot.io/lib/parseUnknownError";
import ky from "ky";
import { createChatCompletion, modelsFetcher } from "./actions/createChatCompletion";
export default [
createActionHandler(createChatCompletion, {
server: async ({ credentials, options, variables, logs }) => {
// Action implementation
},
}),
createFetcherHandler(
createChatCompletion, // Pass the action as first parameter
modelsFetcher.id, // Pass the fetcher id
async ({ credentials, options }) => {
if (!credentials?.apiKey)
return {
data: [],
};
try {
const response = await ky
.get("https://api.example.com/models", {
headers: {
authorization: `Bearer ${credentials.apiKey}`,
},
})
.json<{ data: { id: string; name: string }[] }>();
return {
data: response.data.map((model) => ({
value: model.id,
label: model.name,
})),
};
} catch (err) {
return {
error: await parseUnknownError({ err }),
};
}
}
),
];