// retoor #include "tool.h" #include 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); 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); extern tool_t *tool_process_get_status_create(void); extern tool_t *tool_process_terminate_create(void); 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); 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); extern tool_t *tool_spawn_agent_create(void); extern tool_t *tool_deepsearch_create(void); extern tool_t *tool_create_snapshot_create(void); extern tool_t *tool_list_snapshots_create(void); extern tool_t *tool_restore_snapshot_create(void); 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()); // New & Refined tools 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()); tool_registry_register(global_registry, tool_process_get_status_create()); tool_registry_register(global_registry, tool_process_terminate_create()); 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()); 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()); tool_registry_register(global_registry, tool_spawn_agent_create()); tool_registry_register(global_registry, tool_deepsearch_create()); 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()); return global_registry; } 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()); tool_registry_register(reg, tool_write_file_create()); 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()); tool_registry_register(reg, tool_deepsearch_create()); } 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()); tool_registry_register(reg, tool_process_get_status_create()); tool_registry_register(reg, tool_process_terminate_create()); tool_registry_register(reg, tool_spawn_agent_create()); tool_registry_register(reg, tool_create_snapshot_create()); tool_registry_register(reg, tool_list_snapshots_create()); tool_registry_register(reg, tool_restore_snapshot_create()); } 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()); tool_registry_register(reg, tool_process_get_status_create()); tool_registry_register(reg, tool_process_terminate_create()); tool_registry_register(reg, tool_spawn_agent_create()); } else { tool_registry_register(reg, tool_terminal_create()); tool_registry_register(reg, tool_read_file_create()); tool_registry_register(reg, tool_http_fetch_create()); tool_registry_register(reg, tool_process_get_status_create()); tool_registry_register(reg, tool_process_terminate_create()); tool_registry_register(reg, tool_spawn_agent_create()); } return reg; } void tools_registry_shutdown(void) { if (global_registry) { tool_registry_destroy(global_registry); global_registry = NULL; } }