/**
* Returns a list of all projects you've previously created.
*
* @returns {Promise<Object>} - The response from the Supabase Management API.
*/
const listAllProjects = async () => {
const baseUrl = 'https://api.supabase.com';
const bearerToken = process.env.SUPABASE_PUBLIC_API_API_KEY;
try {
const url = `${baseUrl}/v1/projects`;
const response = await fetch(url, {
method: 'GET',
headers: {
'Accept': 'application/json',
'Authorization': `Bearer ${bearerToken}`
}
});
if (!response.ok) {
let err;
try {
err = await response.json();
} catch {
err = await response.text();
}
throw new Error(typeof err === 'string' ? err : JSON.stringify(err));
}
return await response.json();
} catch (error) {
return {
error: error instanceof Error ? error.message : JSON.stringify(error)
};
}
};
/**
* Tool definition for listing all projects.
*/
const apiTool = {
function: listAllProjects,
definition: {
type: 'function',
function: {
name: 'list_all_projects',
description: "Returns a list of all projects you've previously created.",
parameters: {
type: 'object',
properties: {},
required: []
}
}
}
};
export { apiTool };