From cf087a8b68c6a00ea1dd7bc739318677744f3ce1 Mon Sep 17 00:00:00 2001 From: Mic Neale Date: Mon, 2 Sep 2024 11:14:18 +1000 Subject: [PATCH 1/2] adding in ability to provide per repo hints --- src/goose/toolkit/developer.py | 7 ++++++- tests/toolkit/test_developer.py | 14 ++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/goose/toolkit/developer.py b/src/goose/toolkit/developer.py index 6f53ca4da8f4..a8507d647e66 100644 --- a/src/goose/toolkit/developer.py +++ b/src/goose/toolkit/developer.py @@ -33,7 +33,12 @@ class Developer(Toolkit): def system(self) -> str: """Retrieve system configuration details for developer""" - return Message.load("prompts/developer.jinja").text + hints_path = Path('.goosehints') + system_prompt = Message.load("prompts/developer.jinja").text + if hints_path.is_file(): + goosehints = hints_path.read_text() + system_prompt = f"{system_prompt}\n\nHints:\n{goosehints}" + return system_prompt @tool def update_plan(self, tasks: List[dict]) -> List[dict]: diff --git a/tests/toolkit/test_developer.py b/tests/toolkit/test_developer.py index 915380dfc076..9d939671ccf8 100644 --- a/tests/toolkit/test_developer.py +++ b/tests/toolkit/test_developer.py @@ -1,4 +1,18 @@ from pathlib import Path + +def test_system_without_hints(temp_dir, developer_toolkit): + (temp_dir / 'prompts').mkdir(parents=True, exist_ok=True) + developer_toolkit.workspace = temp_dir + assert developer_toolkit.system() + +def test_system_with_hints(temp_dir, developer_toolkit): + hints_content = "Use Python 3.8" + (temp_dir / 'prompts').mkdir(parents=True, exist_ok=True) + with (temp_dir / '.goosehints').open('w') as f: + f.write(hints_content) + developer_toolkit.workspace = temp_dir + assert developer_toolkit.system() + from tempfile import TemporaryDirectory from unittest.mock import MagicMock, Mock From 6e45eb99166ba72d2fac7c0d1990655ad4a7f97c Mon Sep 17 00:00:00 2001 From: Mic Neale Date: Wed, 4 Sep 2024 14:44:25 +1000 Subject: [PATCH 2/2] tidy up test --- tests/toolkit/test_developer.py | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/tests/toolkit/test_developer.py b/tests/toolkit/test_developer.py index 9d939671ccf8..e049ee9f20bb 100644 --- a/tests/toolkit/test_developer.py +++ b/tests/toolkit/test_developer.py @@ -1,17 +1,5 @@ from pathlib import Path -def test_system_without_hints(temp_dir, developer_toolkit): - (temp_dir / 'prompts').mkdir(parents=True, exist_ok=True) - developer_toolkit.workspace = temp_dir - assert developer_toolkit.system() - -def test_system_with_hints(temp_dir, developer_toolkit): - hints_content = "Use Python 3.8" - (temp_dir / 'prompts').mkdir(parents=True, exist_ok=True) - with (temp_dir / '.goosehints').open('w') as f: - f.write(hints_content) - developer_toolkit.workspace = temp_dir - assert developer_toolkit.system() from tempfile import TemporaryDirectory from unittest.mock import MagicMock, Mock @@ -80,3 +68,5 @@ def test_write_file(temp_dir, developer_toolkit): content = "Hello World" developer_toolkit.write_file(test_file.as_posix(), content) assert test_file.read_text() == content + +