From cc9c7e6d202153804bc5ea861e6a8592de0a12ba Mon Sep 17 00:00:00 2001 From: abhijeet Date: Fri, 30 Jun 2023 19:59:28 +0530 Subject: [PATCH 1/7] updated --- superagi/tool_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/superagi/tool_manager.py b/superagi/tool_manager.py index 54b983dd9..674dd0e03 100644 --- a/superagi/tool_manager.py +++ b/superagi/tool_manager.py @@ -64,7 +64,7 @@ def download_and_extract_tools(): tools_config = load_tools_config() for tool_name, tool_url in tools_config.items(): - tool_folder = os.path.join("", "tools", tool_name) + tool_folder = os.path.join("superagi", "tools", tool_name) if not os.path.exists(tool_folder): os.makedirs(tool_folder) download_tool(tool_url, tool_folder) From 3845abe7b17eccdf9fb6ca89a7458ab5ea20a940 Mon Sep 17 00:00:00 2001 From: abhijeet Date: Sun, 2 Jul 2023 14:34:37 +0530 Subject: [PATCH 2/7] Updated Test --- tests/unit_tests/test_tool_manager.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/tests/unit_tests/test_tool_manager.py b/tests/unit_tests/test_tool_manager.py index eb4a7bcf6..fa7d461cf 100644 --- a/tests/unit_tests/test_tool_manager.py +++ b/tests/unit_tests/test_tool_manager.py @@ -6,17 +6,21 @@ from unittest.mock import Mock, patch, mock_open, MagicMock from superagi.tool_manager import parse_github_url, download_tool, load_tools_config, download_and_extract_tools + def test_parse_github_url(): url = 'https://github.com/owner/repo' assert parse_github_url(url) == 'owner/repo/main' + def setup_function(): os.makedirs('target_folder', exist_ok=True) + # Teardown function to remove the directory def teardown_function(): shutil.rmtree('target_folder') + @patch('requests.get') @patch('zipfile.ZipFile') def test_download_tool(mock_zip, mock_get): @@ -31,7 +35,6 @@ def test_download_tool(mock_zip, mock_get): mock_zip.assert_called_once_with('target_folder/tool.zip', 'r') - @patch('json.load') def test_load_tools_config(mock_json_load): mock_json_load.return_value = {"tools": {"tool1": "url1", "tool2": "url2"}} @@ -40,12 +43,13 @@ def test_load_tools_config(mock_json_load): assert config == {"tool1": "url1", "tool2": "url2"} -@patch('superagi.tool_manager.download_tool') @patch('superagi.tool_manager.load_tools_config') -def test_download_and_extract_tools(mock_load_tools_config, mock_download_tool): +@patch('superagi.tool_manager.download_tool') +def test_download_and_extract_tools(mock_download_tool, mock_load_tools_config): mock_load_tools_config.return_value = {"tool1": "url1", "tool2": "url2"} + download_and_extract_tools() mock_load_tools_config.assert_called_once() - mock_download_tool.assert_any_call('url1', 'tools/tool1') - mock_download_tool.assert_any_call('url2', 'tools/tool2') + mock_download_tool.assert_any_call('url1', os.path.join('superagi', 'tools', 'tool1')) + mock_download_tool.assert_any_call('url2', os.path.join('superagi', 'tools', 'tool2')) From 09cf340e1f4c50b0ca4cef546ccf20dd658a8f45 Mon Sep 17 00:00:00 2001 From: abhijeet Date: Sun, 2 Jul 2023 14:44:22 +0530 Subject: [PATCH 3/7] Updated tools.json format --- superagi/helper/tool_helper.py | 9 +++++---- tests/unit_tests/helper/test_tool_helper.py | 6 +++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/superagi/helper/tool_helper.py b/superagi/helper/tool_helper.py index 932c9b1d8..9d50f5dd7 100644 --- a/superagi/helper/tool_helper.py +++ b/superagi/helper/tool_helper.py @@ -248,12 +248,13 @@ def register_toolkits(session, organisation): logger.info(f"Toolkits Registered Successfully for Organisation ID : {organisation.id}!") -def extract_repo_name(repo_link): +def extract_repo_name_with_username(repo_link): # Extract the repository name from the link # Assuming the GitHub link format: https://github.com/username/repoName - repo_name = repo_link.rsplit('/', 1)[-1] + username_repo = repo_link.rsplit('/', 2)[-2:] + user_repo_key = "/".join(username_repo) - return repo_name + return user_repo_key def add_tool_to_json(repo_link): @@ -262,7 +263,7 @@ def add_tool_to_json(repo_link): tools_data = json.load(file) # Extract the repository name from the link - repo_name = extract_repo_name(repo_link) + repo_name = extract_repo_name_with_username(repo_link) # Add a new key-value pair to the tools object tools_data['tools'][repo_name] = repo_link diff --git a/tests/unit_tests/helper/test_tool_helper.py b/tests/unit_tests/helper/test_tool_helper.py index de3409660..263f5d787 100644 --- a/tests/unit_tests/helper/test_tool_helper.py +++ b/tests/unit_tests/helper/test_tool_helper.py @@ -9,7 +9,7 @@ from superagi.helper.tool_helper import ( parse_github_url, load_module_from_file, - extract_repo_name, + extract_repo_name_with_username, add_tool_to_json, get_readme_content_from_code_link, download_tool ) @@ -73,8 +73,8 @@ def test_get_readme_content_from_code_link(mock_requests_get): def test_extract_repo_name(): repo_link = 'https://github.com/username/repo' - expected_result = 'repo' - assert extract_repo_name(repo_link) == expected_result + expected_result = 'username/repo' + assert extract_repo_name_with_username(repo_link) == expected_result @patch('requests.get') From 65f6c8945e581def7ef6c5ff817571c5d7e30bcf Mon Sep 17 00:00:00 2001 From: abhijeet Date: Sun, 2 Jul 2023 15:08:41 +0530 Subject: [PATCH 4/7] Changed tools.json key format --- superagi/helper/tool_helper.py | 2 +- tests/unit_tests/helper/test_tool_helper.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/superagi/helper/tool_helper.py b/superagi/helper/tool_helper.py index 9d50f5dd7..41bd4b8f5 100644 --- a/superagi/helper/tool_helper.py +++ b/superagi/helper/tool_helper.py @@ -252,7 +252,7 @@ def extract_repo_name_with_username(repo_link): # Extract the repository name from the link # Assuming the GitHub link format: https://github.com/username/repoName username_repo = repo_link.rsplit('/', 2)[-2:] - user_repo_key = "/".join(username_repo) + user_repo_key = "_".join(username_repo) return user_repo_key diff --git a/tests/unit_tests/helper/test_tool_helper.py b/tests/unit_tests/helper/test_tool_helper.py index 263f5d787..2d888d2f5 100644 --- a/tests/unit_tests/helper/test_tool_helper.py +++ b/tests/unit_tests/helper/test_tool_helper.py @@ -73,7 +73,7 @@ def test_get_readme_content_from_code_link(mock_requests_get): def test_extract_repo_name(): repo_link = 'https://github.com/username/repo' - expected_result = 'username/repo' + expected_result = 'username_repo' assert extract_repo_name_with_username(repo_link) == expected_result From 8ec0ab24838427f54fddca48d707e59fcde377f3 Mon Sep 17 00:00:00 2001 From: abhijeet Date: Mon, 3 Jul 2023 12:45:52 +0530 Subject: [PATCH 5/7] removed username --- superagi/helper/tool_helper.py | 9 ++++----- tests/unit_tests/helper/test_tool_helper.py | 6 +++--- tests/unit_tests/test_tool_manager.py | 10 +++------- tools.json | 1 + 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/superagi/helper/tool_helper.py b/superagi/helper/tool_helper.py index 41bd4b8f5..932c9b1d8 100644 --- a/superagi/helper/tool_helper.py +++ b/superagi/helper/tool_helper.py @@ -248,13 +248,12 @@ def register_toolkits(session, organisation): logger.info(f"Toolkits Registered Successfully for Organisation ID : {organisation.id}!") -def extract_repo_name_with_username(repo_link): +def extract_repo_name(repo_link): # Extract the repository name from the link # Assuming the GitHub link format: https://github.com/username/repoName - username_repo = repo_link.rsplit('/', 2)[-2:] - user_repo_key = "_".join(username_repo) + repo_name = repo_link.rsplit('/', 1)[-1] - return user_repo_key + return repo_name def add_tool_to_json(repo_link): @@ -263,7 +262,7 @@ def add_tool_to_json(repo_link): tools_data = json.load(file) # Extract the repository name from the link - repo_name = extract_repo_name_with_username(repo_link) + repo_name = extract_repo_name(repo_link) # Add a new key-value pair to the tools object tools_data['tools'][repo_name] = repo_link diff --git a/tests/unit_tests/helper/test_tool_helper.py b/tests/unit_tests/helper/test_tool_helper.py index 2d888d2f5..de3409660 100644 --- a/tests/unit_tests/helper/test_tool_helper.py +++ b/tests/unit_tests/helper/test_tool_helper.py @@ -9,7 +9,7 @@ from superagi.helper.tool_helper import ( parse_github_url, load_module_from_file, - extract_repo_name_with_username, + extract_repo_name, add_tool_to_json, get_readme_content_from_code_link, download_tool ) @@ -73,8 +73,8 @@ def test_get_readme_content_from_code_link(mock_requests_get): def test_extract_repo_name(): repo_link = 'https://github.com/username/repo' - expected_result = 'username_repo' - assert extract_repo_name_with_username(repo_link) == expected_result + expected_result = 'repo' + assert extract_repo_name(repo_link) == expected_result @patch('requests.get') diff --git a/tests/unit_tests/test_tool_manager.py b/tests/unit_tests/test_tool_manager.py index fa7d461cf..e59a874ac 100644 --- a/tests/unit_tests/test_tool_manager.py +++ b/tests/unit_tests/test_tool_manager.py @@ -6,21 +6,17 @@ from unittest.mock import Mock, patch, mock_open, MagicMock from superagi.tool_manager import parse_github_url, download_tool, load_tools_config, download_and_extract_tools - def test_parse_github_url(): url = 'https://github.com/owner/repo' assert parse_github_url(url) == 'owner/repo/main' - def setup_function(): os.makedirs('target_folder', exist_ok=True) - # Teardown function to remove the directory def teardown_function(): shutil.rmtree('target_folder') - @patch('requests.get') @patch('zipfile.ZipFile') def test_download_tool(mock_zip, mock_get): @@ -35,6 +31,7 @@ def test_download_tool(mock_zip, mock_get): mock_zip.assert_called_once_with('target_folder/tool.zip', 'r') + @patch('json.load') def test_load_tools_config(mock_json_load): mock_json_load.return_value = {"tools": {"tool1": "url1", "tool2": "url2"}} @@ -43,11 +40,10 @@ def test_load_tools_config(mock_json_load): assert config == {"tool1": "url1", "tool2": "url2"} -@patch('superagi.tool_manager.load_tools_config') @patch('superagi.tool_manager.download_tool') -def test_download_and_extract_tools(mock_download_tool, mock_load_tools_config): +@patch('superagi.tool_manager.load_tools_config') +def test_download_and_extract_tools(mock_load_tools_config, mock_download_tool): mock_load_tools_config.return_value = {"tool1": "url1", "tool2": "url2"} - download_and_extract_tools() mock_load_tools_config.assert_called_once() diff --git a/tools.json b/tools.json index 94de16ccc..0ed79410c 100644 --- a/tools.json +++ b/tools.json @@ -1,4 +1,5 @@ { "tools": { + "GreetingTool": "https://github.com/luciferlinx101/GreetingTool" } } \ No newline at end of file From 70322f44f83bf7a4ab724163d17eb5fc0f379020 Mon Sep 17 00:00:00 2001 From: abhijeet Date: Mon, 3 Jul 2023 12:48:02 +0530 Subject: [PATCH 6/7] updated tools.json --- superagi/tools/GreetingTool/.gitignore | 3 +++ superagi/tools/GreetingTool/LICENSE | 21 +++++++++++++++++ superagi/tools/GreetingTool/README.md | 2 ++ superagi/tools/GreetingTool/__init__.py | 0 superagi/tools/GreetingTool/greetings_tool.py | 21 +++++++++++++++++ .../tools/GreetingTool/greetings_toolkit.py | 15 ++++++++++++ superagi/tools/GreetingTool/requirements.txt | 3 +++ .../GreetingTool/tests/test_greetings_tool.py | 23 +++++++++++++++++++ .../tests/test_greetings_toolkit.py | 23 +++++++++++++++++++ tools.json | 1 - 10 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 superagi/tools/GreetingTool/.gitignore create mode 100644 superagi/tools/GreetingTool/LICENSE create mode 100644 superagi/tools/GreetingTool/README.md create mode 100644 superagi/tools/GreetingTool/__init__.py create mode 100644 superagi/tools/GreetingTool/greetings_tool.py create mode 100644 superagi/tools/GreetingTool/greetings_toolkit.py create mode 100644 superagi/tools/GreetingTool/requirements.txt create mode 100644 superagi/tools/GreetingTool/tests/test_greetings_tool.py create mode 100644 superagi/tools/GreetingTool/tests/test_greetings_toolkit.py diff --git a/superagi/tools/GreetingTool/.gitignore b/superagi/tools/GreetingTool/.gitignore new file mode 100644 index 000000000..6d68f1634 --- /dev/null +++ b/superagi/tools/GreetingTool/.gitignore @@ -0,0 +1,3 @@ +.idea +__pycache__ +/tests/__pycache__ \ No newline at end of file diff --git a/superagi/tools/GreetingTool/LICENSE b/superagi/tools/GreetingTool/LICENSE new file mode 100644 index 000000000..1b5471721 --- /dev/null +++ b/superagi/tools/GreetingTool/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 luciferlinx + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/superagi/tools/GreetingTool/README.md b/superagi/tools/GreetingTool/README.md new file mode 100644 index 000000000..e58ea7d63 --- /dev/null +++ b/superagi/tools/GreetingTool/README.md @@ -0,0 +1,2 @@ +# GreetingTool +SuperAGI Greeting Tool - A sample tool to help create new external tools. diff --git a/superagi/tools/GreetingTool/__init__.py b/superagi/tools/GreetingTool/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/superagi/tools/GreetingTool/greetings_tool.py b/superagi/tools/GreetingTool/greetings_tool.py new file mode 100644 index 000000000..f84b857b6 --- /dev/null +++ b/superagi/tools/GreetingTool/greetings_tool.py @@ -0,0 +1,21 @@ +from superagi.tools.base_tool import BaseTool +from pydantic import BaseModel, Field +from typing import Type + + +class GreetingsInput(BaseModel): + greetings: str = Field(..., description="Greeting message to be sent") + + +class GreetingsTool(BaseTool): + """ + Greetings Tool + """ + name: str = "Greetings Tool" + args_schema: Type[BaseModel] = GreetingsInput + description: str = "Sends a Greeting Message" + + def _execute(self, greetings: str = None): + from_name = self.get_tool_config('FROM') + greetings_str = greetings + "\n" + from_name + return greetings_str diff --git a/superagi/tools/GreetingTool/greetings_toolkit.py b/superagi/tools/GreetingTool/greetings_toolkit.py new file mode 100644 index 000000000..48531b6c4 --- /dev/null +++ b/superagi/tools/GreetingTool/greetings_toolkit.py @@ -0,0 +1,15 @@ +from abc import ABC +from superagi.tools.base_tool import BaseToolkit, BaseTool +from typing import Type, List +from greetings_tool import GreetingsTool + + +class GreetingsToolkit(BaseToolkit, ABC): + name: str = "Greetings Toolkit" + description: str = "Greetings Tool kit contains all tools related to Greetings" + + def get_tools(self) -> List[BaseTool]: + return [GreetingsTool()] + + def get_env_keys(self) -> List[str]: + return ["FROM"] \ No newline at end of file diff --git a/superagi/tools/GreetingTool/requirements.txt b/superagi/tools/GreetingTool/requirements.txt new file mode 100644 index 000000000..3397319c8 --- /dev/null +++ b/superagi/tools/GreetingTool/requirements.txt @@ -0,0 +1,3 @@ +pydantic==1.10.8 +PyYAML==6.0 +superagi-tools==1.0.6 diff --git a/superagi/tools/GreetingTool/tests/test_greetings_tool.py b/superagi/tools/GreetingTool/tests/test_greetings_tool.py new file mode 100644 index 000000000..8171d6b5a --- /dev/null +++ b/superagi/tools/GreetingTool/tests/test_greetings_tool.py @@ -0,0 +1,23 @@ +import unittest + +from greetings_tool import GreetingsTool, GreetingsInput + + +class GreetingsToolTestCase(unittest.TestCase): + def setUp(self): + self.tool = GreetingsTool() + + def test_tool_name(self): + self.assertEqual(self.tool.name, "Greetings Tool") + + def test_tool_args_schema(self): + self.assertEqual(self.tool.args_schema, GreetingsInput) + + def test_tool_description(self): + self.assertEqual(self.tool.description, "Sends a Greeting Message") + + def test_execute_method(self): + greetings_input = GreetingsInput(greetings="Hello") + expected_output = "Hello" + "\n" + self.tool.get_tool_config('FROM') + output = self.tool._execute(greetings=greetings_input.greetings) + self.assertEqual(output, expected_output) diff --git a/superagi/tools/GreetingTool/tests/test_greetings_toolkit.py b/superagi/tools/GreetingTool/tests/test_greetings_toolkit.py new file mode 100644 index 000000000..848f9d04a --- /dev/null +++ b/superagi/tools/GreetingTool/tests/test_greetings_toolkit.py @@ -0,0 +1,23 @@ +import unittest + +from greetings_tool import GreetingsTool +from greetings_toolkit import GreetingsToolkit + + +class GreetingsToolkitTests(unittest.TestCase): + def setUp(self): + self.toolkit = GreetingsToolkit() + + def test_get_tools_returns_list_of_tools(self): + tools = self.toolkit.get_tools() + self.assertIsInstance(tools, list) + self.assertTrue(all(isinstance(tool, GreetingsTool) for tool in tools)) + + def test_get_env_keys_returns_list_of_strings(self): + env_keys = self.toolkit.get_env_keys() + self.assertIsInstance(env_keys, list) + self.assertTrue(all(isinstance(key, str) for key in env_keys)) + + def test_toolkit_has_name_and_description(self): + self.assertEqual(self.toolkit.name, "Greetings Toolkit") + self.assertEqual(self.toolkit.description, "Greetings Tool kit contains all tools related to Greetings") diff --git a/tools.json b/tools.json index 0ed79410c..94de16ccc 100644 --- a/tools.json +++ b/tools.json @@ -1,5 +1,4 @@ { "tools": { - "GreetingTool": "https://github.com/luciferlinx101/GreetingTool" } } \ No newline at end of file From 57db520aef050dbd1d3a0b58bdf20799c91117cb Mon Sep 17 00:00:00 2001 From: abhijeet Date: Mon, 3 Jul 2023 12:51:33 +0530 Subject: [PATCH 7/7] removed tool --- superagi/tools/GreetingTool/.gitignore | 3 --- superagi/tools/GreetingTool/LICENSE | 21 ----------------- superagi/tools/GreetingTool/README.md | 2 -- superagi/tools/GreetingTool/__init__.py | 0 superagi/tools/GreetingTool/greetings_tool.py | 21 ----------------- .../tools/GreetingTool/greetings_toolkit.py | 15 ------------ superagi/tools/GreetingTool/requirements.txt | 3 --- .../GreetingTool/tests/test_greetings_tool.py | 23 ------------------- .../tests/test_greetings_toolkit.py | 23 ------------------- 9 files changed, 111 deletions(-) delete mode 100644 superagi/tools/GreetingTool/.gitignore delete mode 100644 superagi/tools/GreetingTool/LICENSE delete mode 100644 superagi/tools/GreetingTool/README.md delete mode 100644 superagi/tools/GreetingTool/__init__.py delete mode 100644 superagi/tools/GreetingTool/greetings_tool.py delete mode 100644 superagi/tools/GreetingTool/greetings_toolkit.py delete mode 100644 superagi/tools/GreetingTool/requirements.txt delete mode 100644 superagi/tools/GreetingTool/tests/test_greetings_tool.py delete mode 100644 superagi/tools/GreetingTool/tests/test_greetings_toolkit.py diff --git a/superagi/tools/GreetingTool/.gitignore b/superagi/tools/GreetingTool/.gitignore deleted file mode 100644 index 6d68f1634..000000000 --- a/superagi/tools/GreetingTool/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.idea -__pycache__ -/tests/__pycache__ \ No newline at end of file diff --git a/superagi/tools/GreetingTool/LICENSE b/superagi/tools/GreetingTool/LICENSE deleted file mode 100644 index 1b5471721..000000000 --- a/superagi/tools/GreetingTool/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2023 luciferlinx - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/superagi/tools/GreetingTool/README.md b/superagi/tools/GreetingTool/README.md deleted file mode 100644 index e58ea7d63..000000000 --- a/superagi/tools/GreetingTool/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# GreetingTool -SuperAGI Greeting Tool - A sample tool to help create new external tools. diff --git a/superagi/tools/GreetingTool/__init__.py b/superagi/tools/GreetingTool/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/superagi/tools/GreetingTool/greetings_tool.py b/superagi/tools/GreetingTool/greetings_tool.py deleted file mode 100644 index f84b857b6..000000000 --- a/superagi/tools/GreetingTool/greetings_tool.py +++ /dev/null @@ -1,21 +0,0 @@ -from superagi.tools.base_tool import BaseTool -from pydantic import BaseModel, Field -from typing import Type - - -class GreetingsInput(BaseModel): - greetings: str = Field(..., description="Greeting message to be sent") - - -class GreetingsTool(BaseTool): - """ - Greetings Tool - """ - name: str = "Greetings Tool" - args_schema: Type[BaseModel] = GreetingsInput - description: str = "Sends a Greeting Message" - - def _execute(self, greetings: str = None): - from_name = self.get_tool_config('FROM') - greetings_str = greetings + "\n" + from_name - return greetings_str diff --git a/superagi/tools/GreetingTool/greetings_toolkit.py b/superagi/tools/GreetingTool/greetings_toolkit.py deleted file mode 100644 index 48531b6c4..000000000 --- a/superagi/tools/GreetingTool/greetings_toolkit.py +++ /dev/null @@ -1,15 +0,0 @@ -from abc import ABC -from superagi.tools.base_tool import BaseToolkit, BaseTool -from typing import Type, List -from greetings_tool import GreetingsTool - - -class GreetingsToolkit(BaseToolkit, ABC): - name: str = "Greetings Toolkit" - description: str = "Greetings Tool kit contains all tools related to Greetings" - - def get_tools(self) -> List[BaseTool]: - return [GreetingsTool()] - - def get_env_keys(self) -> List[str]: - return ["FROM"] \ No newline at end of file diff --git a/superagi/tools/GreetingTool/requirements.txt b/superagi/tools/GreetingTool/requirements.txt deleted file mode 100644 index 3397319c8..000000000 --- a/superagi/tools/GreetingTool/requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -pydantic==1.10.8 -PyYAML==6.0 -superagi-tools==1.0.6 diff --git a/superagi/tools/GreetingTool/tests/test_greetings_tool.py b/superagi/tools/GreetingTool/tests/test_greetings_tool.py deleted file mode 100644 index 8171d6b5a..000000000 --- a/superagi/tools/GreetingTool/tests/test_greetings_tool.py +++ /dev/null @@ -1,23 +0,0 @@ -import unittest - -from greetings_tool import GreetingsTool, GreetingsInput - - -class GreetingsToolTestCase(unittest.TestCase): - def setUp(self): - self.tool = GreetingsTool() - - def test_tool_name(self): - self.assertEqual(self.tool.name, "Greetings Tool") - - def test_tool_args_schema(self): - self.assertEqual(self.tool.args_schema, GreetingsInput) - - def test_tool_description(self): - self.assertEqual(self.tool.description, "Sends a Greeting Message") - - def test_execute_method(self): - greetings_input = GreetingsInput(greetings="Hello") - expected_output = "Hello" + "\n" + self.tool.get_tool_config('FROM') - output = self.tool._execute(greetings=greetings_input.greetings) - self.assertEqual(output, expected_output) diff --git a/superagi/tools/GreetingTool/tests/test_greetings_toolkit.py b/superagi/tools/GreetingTool/tests/test_greetings_toolkit.py deleted file mode 100644 index 848f9d04a..000000000 --- a/superagi/tools/GreetingTool/tests/test_greetings_toolkit.py +++ /dev/null @@ -1,23 +0,0 @@ -import unittest - -from greetings_tool import GreetingsTool -from greetings_toolkit import GreetingsToolkit - - -class GreetingsToolkitTests(unittest.TestCase): - def setUp(self): - self.toolkit = GreetingsToolkit() - - def test_get_tools_returns_list_of_tools(self): - tools = self.toolkit.get_tools() - self.assertIsInstance(tools, list) - self.assertTrue(all(isinstance(tool, GreetingsTool) for tool in tools)) - - def test_get_env_keys_returns_list_of_strings(self): - env_keys = self.toolkit.get_env_keys() - self.assertIsInstance(env_keys, list) - self.assertTrue(all(isinstance(key, str) for key in env_keys)) - - def test_toolkit_has_name_and_description(self): - self.assertEqual(self.toolkit.name, "Greetings Toolkit") - self.assertEqual(self.toolkit.description, "Greetings Tool kit contains all tools related to Greetings")