1use std::sync::Arc;
4
5use crate::browser::BrowserManager;
6use crate::tool::Tool;
7
8pub mod browser_tools;
9pub mod commands;
10pub mod components;
11pub mod config;
12pub mod database;
13pub mod docs;
14pub mod info;
15pub mod logs;
16pub mod migrations;
17pub mod models;
18pub mod routes;
19
20pub fn all() -> Vec<Arc<dyn Tool>> {
21 let manager = BrowserManager::new();
22 vec![
23 Arc::new(routes::ListRoutes),
24 Arc::new(migrations::ListMigrations),
25 Arc::new(models::ListModels),
26 Arc::new(components::ListComponents),
27 Arc::new(info::ApplicationInfo),
28 Arc::new(config::GetConfig),
29 Arc::new(commands::ListAvailableCommands),
30 Arc::new(database::DatabaseSchema),
31 Arc::new(database::DatabaseQuery),
32 Arc::new(logs::ReadLogEntries),
33 Arc::new(logs::LastError),
34 Arc::new(docs::SearchDocs),
35 Arc::new(browser_tools::BrowserScreenshot {
36 manager: manager.clone(),
37 }),
38 Arc::new(browser_tools::BrowserConsole {
39 manager: manager.clone(),
40 }),
41 Arc::new(browser_tools::BrowserNetwork {
42 manager: manager.clone(),
43 }),
44 Arc::new(browser_tools::BrowserEval {
45 manager: manager.clone(),
46 }),
47 Arc::new(browser_tools::BrowserClick {
48 manager: manager.clone(),
49 }),
50 Arc::new(browser_tools::BrowserFill {
51 manager: manager.clone(),
52 }),
53 Arc::new(browser_tools::BrowserType {
54 manager: manager.clone(),
55 }),
56 Arc::new(browser_tools::BrowserWaitFor { manager }),
57 ]
58}