2026-01-28 19:34:39 +01:00
|
|
|
// retoor <retoor@molodetz.nl>
|
|
|
|
|
|
|
|
|
|
#include "tool.h"
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
|
|
|
|
|
extern tool_t *tool_terminal_create(void);
|
|
|
|
|
extern tool_t *tool_terminal_interactive_create(void);
|
|
|
|
|
extern tool_t *tool_read_file_create(void);
|
|
|
|
|
extern tool_t *tool_write_file_create(void);
|
|
|
|
|
extern tool_t *tool_directory_glob_create(void);
|
|
|
|
|
extern tool_t *tool_mkdir_create(void);
|
|
|
|
|
extern tool_t *tool_chdir_create(void);
|
|
|
|
|
extern tool_t *tool_getpwd_create(void);
|
|
|
|
|
extern tool_t *tool_http_fetch_create(void);
|
|
|
|
|
extern tool_t *tool_web_search_create(void);
|
|
|
|
|
extern tool_t *tool_web_search_news_create(void);
|
|
|
|
|
extern tool_t *tool_db_get_create(void);
|
|
|
|
|
extern tool_t *tool_db_set_create(void);
|
|
|
|
|
extern tool_t *tool_db_query_create(void);
|
|
|
|
|
extern tool_t *tool_python_execute_create(void);
|
|
|
|
|
extern tool_t *tool_index_source_directory_create(void);
|
2026-01-29 00:38:21 +01:00
|
|
|
extern tool_t *tool_code_grep_create(void);
|
|
|
|
|
extern tool_t *tool_code_symbol_find_create(void);
|
|
|
|
|
extern tool_t *tool_file_line_replace_create(void);
|
|
|
|
|
extern tool_t *tool_file_apply_patch_create(void);
|
|
|
|
|
extern tool_t *tool_process_monitor_create(void);
|
2026-01-29 07:42:06 +01:00
|
|
|
extern tool_t *tool_process_get_status_create(void);
|
|
|
|
|
extern tool_t *tool_process_terminate_create(void);
|
2026-02-10 04:29:48 +01:00
|
|
|
extern tool_t *tool_gtr_check_task_create(void);
|
|
|
|
|
extern tool_t *tool_gtr_register_task_create(void);
|
|
|
|
|
extern tool_t *tool_gtr_update_task_create(void);
|
|
|
|
|
extern tool_t *tool_audit_log_order_create(void);
|
|
|
|
|
extern tool_t *tool_research_dispatcher_create(void);
|
|
|
|
|
extern tool_t *tool_fetch_and_scrape_create(void);
|
|
|
|
|
extern tool_t *tool_suggest_subtask_create(void);
|
2026-01-29 00:38:21 +01:00
|
|
|
extern tool_t *tool_network_check_create(void);
|
|
|
|
|
extern tool_t *tool_dns_lookup_create(void);
|
|
|
|
|
extern tool_t *tool_network_port_scan_create(void);
|
|
|
|
|
extern tool_t *tool_automation_fuzz_create(void);
|
|
|
|
|
extern tool_t *tool_automation_exploit_gen_create(void);
|
|
|
|
|
extern tool_t *tool_csv_export_create(void);
|
2026-01-29 06:01:05 +01:00
|
|
|
extern tool_t *tool_spawn_agent_create(void);
|
2026-02-10 21:20:19 +01:00
|
|
|
extern tool_t *tool_deepsearch_create(void);
|
2026-02-14 08:07:05 +01:00
|
|
|
extern tool_t *tool_create_snapshot_create(void);
|
|
|
|
|
extern tool_t *tool_list_snapshots_create(void);
|
|
|
|
|
extern tool_t *tool_restore_snapshot_create(void);
|
2026-01-28 19:34:39 +01:00
|
|
|
|
|
|
|
|
static tool_registry_t *global_registry = NULL;
|
|
|
|
|
|
|
|
|
|
tool_registry_t *tools_get_registry(void) {
|
|
|
|
|
if (global_registry) return global_registry;
|
|
|
|
|
|
|
|
|
|
global_registry = tool_registry_create();
|
|
|
|
|
if (!global_registry) return NULL;
|
|
|
|
|
|
|
|
|
|
tool_registry_register(global_registry, tool_terminal_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_terminal_interactive_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_read_file_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_write_file_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_directory_glob_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_mkdir_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_chdir_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_getpwd_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_http_fetch_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_web_search_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_web_search_news_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_db_get_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_db_set_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_db_query_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_python_execute_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_index_source_directory_create());
|
2026-01-29 00:38:21 +01:00
|
|
|
|
2026-01-29 07:42:06 +01:00
|
|
|
// New & Refined tools
|
2026-01-29 00:38:21 +01:00
|
|
|
tool_registry_register(global_registry, tool_code_grep_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_code_symbol_find_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_file_line_replace_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_file_apply_patch_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_process_monitor_create());
|
2026-01-29 07:42:06 +01:00
|
|
|
tool_registry_register(global_registry, tool_process_get_status_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_process_terminate_create());
|
2026-02-10 04:29:48 +01:00
|
|
|
tool_registry_register(global_registry, tool_gtr_check_task_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_gtr_register_task_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_gtr_update_task_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_audit_log_order_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_research_dispatcher_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_fetch_and_scrape_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_suggest_subtask_create());
|
2026-01-29 00:38:21 +01:00
|
|
|
tool_registry_register(global_registry, tool_network_check_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_dns_lookup_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_network_port_scan_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_automation_fuzz_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_automation_exploit_gen_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_csv_export_create());
|
2026-01-29 06:01:05 +01:00
|
|
|
tool_registry_register(global_registry, tool_spawn_agent_create());
|
2026-02-10 21:20:19 +01:00
|
|
|
tool_registry_register(global_registry, tool_deepsearch_create());
|
2026-02-14 08:07:05 +01:00
|
|
|
tool_registry_register(global_registry, tool_create_snapshot_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_list_snapshots_create());
|
|
|
|
|
tool_registry_register(global_registry, tool_restore_snapshot_create());
|
2026-01-28 19:34:39 +01:00
|
|
|
|
|
|
|
|
return global_registry;
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-29 06:01:05 +01:00
|
|
|
tool_registry_t *tool_registry_get_specialized(tool_registry_type_t type) {
|
|
|
|
|
tool_registry_t *reg = tool_registry_create();
|
|
|
|
|
if (!reg) return NULL;
|
|
|
|
|
|
|
|
|
|
if (type == TOOL_TYPE_RESEARCHER) {
|
|
|
|
|
tool_registry_register(reg, tool_web_search_create());
|
|
|
|
|
tool_registry_register(reg, tool_web_search_news_create());
|
|
|
|
|
tool_registry_register(reg, tool_http_fetch_create());
|
|
|
|
|
tool_registry_register(reg, tool_read_file_create());
|
2026-02-10 21:20:19 +01:00
|
|
|
tool_registry_register(reg, tool_write_file_create());
|
2026-01-29 06:01:05 +01:00
|
|
|
tool_registry_register(reg, tool_db_get_create());
|
|
|
|
|
tool_registry_register(reg, tool_db_set_create());
|
|
|
|
|
tool_registry_register(reg, tool_db_query_create());
|
|
|
|
|
tool_registry_register(reg, tool_directory_glob_create());
|
|
|
|
|
tool_registry_register(reg, tool_csv_export_create());
|
|
|
|
|
tool_registry_register(reg, tool_spawn_agent_create());
|
2026-02-10 21:20:19 +01:00
|
|
|
tool_registry_register(reg, tool_deepsearch_create());
|
2026-01-29 06:01:05 +01:00
|
|
|
} else if (type == TOOL_TYPE_DEVELOPER) {
|
|
|
|
|
tool_registry_register(reg, tool_terminal_create());
|
|
|
|
|
tool_registry_register(reg, tool_read_file_create());
|
|
|
|
|
tool_registry_register(reg, tool_write_file_create());
|
|
|
|
|
tool_registry_register(reg, tool_directory_glob_create());
|
|
|
|
|
tool_registry_register(reg, tool_mkdir_create());
|
|
|
|
|
tool_registry_register(reg, tool_chdir_create());
|
|
|
|
|
tool_registry_register(reg, tool_getpwd_create());
|
|
|
|
|
tool_registry_register(reg, tool_python_execute_create());
|
|
|
|
|
tool_registry_register(reg, tool_code_grep_create());
|
|
|
|
|
tool_registry_register(reg, tool_code_symbol_find_create());
|
|
|
|
|
tool_registry_register(reg, tool_file_line_replace_create());
|
|
|
|
|
tool_registry_register(reg, tool_file_apply_patch_create());
|
2026-01-29 07:42:06 +01:00
|
|
|
tool_registry_register(reg, tool_process_get_status_create());
|
|
|
|
|
tool_registry_register(reg, tool_process_terminate_create());
|
2026-01-29 06:01:05 +01:00
|
|
|
tool_registry_register(reg, tool_spawn_agent_create());
|
2026-02-14 08:07:05 +01:00
|
|
|
tool_registry_register(reg, tool_create_snapshot_create());
|
|
|
|
|
tool_registry_register(reg, tool_list_snapshots_create());
|
|
|
|
|
tool_registry_register(reg, tool_restore_snapshot_create());
|
2026-01-29 06:01:05 +01:00
|
|
|
} else if (type == TOOL_TYPE_SECURITY) {
|
|
|
|
|
tool_registry_register(reg, tool_terminal_create());
|
|
|
|
|
tool_registry_register(reg, tool_network_check_create());
|
|
|
|
|
tool_registry_register(reg, tool_dns_lookup_create());
|
|
|
|
|
tool_registry_register(reg, tool_network_port_scan_create());
|
|
|
|
|
tool_registry_register(reg, tool_automation_fuzz_create());
|
|
|
|
|
tool_registry_register(reg, tool_automation_exploit_gen_create());
|
|
|
|
|
tool_registry_register(reg, tool_web_search_create());
|
|
|
|
|
tool_registry_register(reg, tool_http_fetch_create());
|
|
|
|
|
tool_registry_register(reg, tool_process_monitor_create());
|
2026-01-29 07:42:06 +01:00
|
|
|
tool_registry_register(reg, tool_process_get_status_create());
|
|
|
|
|
tool_registry_register(reg, tool_process_terminate_create());
|
2026-01-29 06:01:05 +01:00
|
|
|
tool_registry_register(reg, tool_spawn_agent_create());
|
|
|
|
|
} else {
|
|
|
|
|
tool_registry_register(reg, tool_terminal_create());
|
|
|
|
|
tool_registry_register(reg, tool_read_file_create());
|
2026-02-10 21:20:19 +01:00
|
|
|
tool_registry_register(reg, tool_http_fetch_create());
|
2026-01-29 07:42:06 +01:00
|
|
|
tool_registry_register(reg, tool_process_get_status_create());
|
|
|
|
|
tool_registry_register(reg, tool_process_terminate_create());
|
2026-01-29 06:01:05 +01:00
|
|
|
tool_registry_register(reg, tool_spawn_agent_create());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return reg;
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-28 19:34:39 +01:00
|
|
|
void tools_registry_shutdown(void) {
|
|
|
|
|
if (global_registry) {
|
|
|
|
|
tool_registry_destroy(global_registry);
|
|
|
|
|
global_registry = NULL;
|
|
|
|
|
}
|
2026-01-29 07:42:06 +01:00
|
|
|
}
|