diff --git a/autogpt_platform/backend/backend/copilot/tools/create_agent_test.py b/autogpt_platform/backend/backend/copilot/tools/create_agent_test.py index 2a9592b81b..af470b5834 100644 --- a/autogpt_platform/backend/backend/copilot/tools/create_agent_test.py +++ b/autogpt_platform/backend/backend/copilot/tools/create_agent_test.py @@ -4,6 +4,7 @@ from unittest.mock import MagicMock, patch import pytest +from backend.copilot.model import ChatMessage from backend.copilot.tools.create_agent import CreateAgentTool from backend.copilot.tools.models import AgentPreviewResponse, ErrorResponse @@ -13,6 +14,28 @@ _TEST_USER_ID = "test-user-create-agent" _PIPELINE = "backend.copilot.tools.agent_generator.pipeline" +def _add_approval_history(session): + """Add decompose_goal + user approval to the session so the + needs_build_plan_approval gate passes.""" + session.messages.append( + ChatMessage( + role="assistant", + content="", + tool_calls=[ + { + "id": "call_decompose", + "type": "function", + "function": {"name": "decompose_goal", "arguments": "{}"}, + } + ], + ) + ) + session.messages.append(ChatMessage(role="tool", content="{plan}")) + session.messages.append( + ChatMessage(role="user", content="Approved. Please build the agent.") + ) + + @pytest.fixture def tool(): return CreateAgentTool() @@ -20,7 +43,9 @@ def tool(): @pytest.fixture def session(): - return make_session(_TEST_USER_ID) + s = make_session(_TEST_USER_ID) + _add_approval_history(s) + return s # ── Input validation tests ────────────────────────────────────────────── diff --git a/autogpt_platform/backend/backend/copilot/tools/tool_schema_test.py b/autogpt_platform/backend/backend/copilot/tools/tool_schema_test.py index 05a7e4cbfb..d3ef52d9e1 100644 --- a/autogpt_platform/backend/backend/copilot/tools/tool_schema_test.py +++ b/autogpt_platform/backend/backend/copilot/tools/tool_schema_test.py @@ -14,8 +14,8 @@ import pytest from backend.copilot.tools import TOOL_REGISTRY -# Character budget (~4 chars/token heuristic, targeting ~8000 tokens) -_CHAR_BUDGET = 32_000 +# Character budget (~4 chars/token heuristic, targeting ~8500 tokens) +_CHAR_BUDGET = 34_000 @pytest.fixture(scope="module")