index.js•2.5 kB
import { peopleTools, executePeopleTool } from './people.js';
import { companyTools, executeCompanyTool } from './companies.js';
import { opportunityTools, executeOpportunityTool } from './opportunities.js';
import { noteTools, executeNoteTool } from './notes.js';
import { taskTools, executeTaskTool } from './tasks.js';
import { conversaTools, executeConversaTool } from './conversas.js';
import { faturaTools, executeFaturaTool } from './faturas.js';
// Tool registry - single source of truth
export const toolRegistry = [
...peopleTools,
...companyTools,
...opportunityTools,
...noteTools,
...taskTools,
...conversaTools,
...faturaTools
];
// Map of tool executors
const toolExecutors = {
// People
list_people: executePeopleTool,
create_person: executePeopleTool,
get_person: executePeopleTool,
update_person: executePeopleTool,
delete_person: executePeopleTool,
// Companies
list_companies: executeCompanyTool,
create_company: executeCompanyTool,
get_company: executeCompanyTool,
update_company: executeCompanyTool,
delete_company: executeCompanyTool,
// Opportunities
list_opportunities: executeOpportunityTool,
create_opportunity: executeOpportunityTool,
get_opportunity: executeOpportunityTool,
update_opportunity: executeOpportunityTool,
delete_opportunity: executeOpportunityTool,
// Notes
list_notes: executeNoteTool,
create_note: executeNoteTool,
get_note: executeNoteTool,
update_note: executeNoteTool,
delete_note: executeNoteTool,
// Tasks
list_tasks: executeTaskTool,
create_task: executeTaskTool,
get_task: executeTaskTool,
update_task: executeTaskTool,
delete_task: executeTaskTool,
// Conversas
list_conversas: executeConversaTool,
create_conversa: executeConversaTool,
get_conversa: executeConversaTool,
update_conversa: executeConversaTool,
delete_conversa: executeConversaTool,
// Faturas
list_faturas: executeFaturaTool,
create_fatura: executeFaturaTool,
get_fatura: executeFaturaTool,
update_fatura: executeFaturaTool,
delete_fatura: executeFaturaTool
};
export function getAllTools() {
return toolRegistry;
}
export function getToolByName(toolName) {
return toolRegistry.find(tool => tool.name === toolName);
}
export async function executeTool(toolName, params, apiClient) {
const executor = toolExecutors[toolName];
if (!executor) {
throw new Error(`Tool '${toolName}' not found`);
}
return await executor(toolName, params, apiClient);
}