app->singleton(AiToolRegistry::class, function (Application $app): AiToolRegistry { $registry = new AiToolRegistry; // Built-in read-only tools (order is presentation-only; the LLM picks). $registry->register(new SearchInvoicesTool); $registry->register(new GetInvoiceTool); $registry->register(new ListOverdueInvoicesTool); $registry->register(new SearchCustomersTool); $registry->register(new GetCustomerTool); $registry->register(new ListRecentPaymentsTool); $registry->register(new SearchItemsTool); $registry->register(new ListExpenseCategoriesTool); $registry->register(new GetCompanyStatsTool); // Ranking tools — group-by aggregates the individual-record // tools above can't express. $registry->register(new RankTopCustomersTool); $registry->register(new RankTopItemsTool); $registry->register(new RankExpenseCategoriesTool); return $registry; }); } }