mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-06-22 20:55:29 -04:00
fix(agent): enforce guide-only tool policy (#3088)
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
import pytest
|
||||
from types import SimpleNamespace
|
||||
|
||||
from src.chat_handler import ChatHandler
|
||||
|
||||
|
||||
class _UploadHandler:
|
||||
def resolve_upload(self, *_args, **_kwargs):
|
||||
raise AssertionError("attachments must not be resolved when tool preprocessing is disabled")
|
||||
|
||||
def is_image_file(self, *_args, **_kwargs):
|
||||
raise AssertionError("images must not be inspected when tool preprocessing is disabled")
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_preprocess_can_skip_external_context_and_attachment_work(monkeypatch):
|
||||
async def _fail_transcript(*_args, **_kwargs):
|
||||
raise AssertionError("YouTube transcripts must not be fetched")
|
||||
|
||||
async def _fail_comments(*_args, **_kwargs):
|
||||
raise AssertionError("YouTube comments must not be fetched")
|
||||
|
||||
monkeypatch.setattr("src.chat_handler.extract_transcript_async", _fail_transcript)
|
||||
monkeypatch.setattr("src.chat_handler.fetch_youtube_comments", _fail_comments)
|
||||
monkeypatch.setattr(
|
||||
"src.chat_handler.model_supports_vision",
|
||||
lambda *_args, **_kwargs: (_ for _ in ()).throw(
|
||||
AssertionError("vision support must not be probed")
|
||||
),
|
||||
)
|
||||
|
||||
handler = ChatHandler(
|
||||
session_manager=None,
|
||||
memory_manager=None,
|
||||
chat_processor=None,
|
||||
research_handler=None,
|
||||
preset_manager=None,
|
||||
upload_handler=_UploadHandler(),
|
||||
)
|
||||
sess = SimpleNamespace(model="text-only", endpoint_url="", owner="user", id="session")
|
||||
|
||||
enhanced, user_content, text_ctx, youtube, attachment_meta = await handler.preprocess_message(
|
||||
"Do not use tools. https://www.youtube.com/watch?v=dQw4w9WgXcQ",
|
||||
["image-id"],
|
||||
sess,
|
||||
auto_opened_docs=[],
|
||||
allow_tool_preprocessing=False,
|
||||
)
|
||||
|
||||
assert enhanced.startswith("Do not use tools.")
|
||||
assert user_content == enhanced
|
||||
assert text_ctx == enhanced
|
||||
assert youtube == []
|
||||
assert attachment_meta == []
|
||||
Reference in New Issue
Block a user