mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-06-17 02:05:22 -04:00
Scope auxiliary LLM endpoints by owner (#2996)
* fix(auth): scope auxiliary llm endpoints by owner * fix(auth): scope auxiliary llm fallbacks by owner
This commit is contained in:
@@ -79,6 +79,7 @@ class _FakeSession:
|
||||
endpoint_url = "http://example.test/v1"
|
||||
model = "test-model"
|
||||
headers = {}
|
||||
owner = "session-owner"
|
||||
|
||||
def __init__(self, history):
|
||||
self.history = history
|
||||
@@ -107,7 +108,11 @@ def _compact_prompt_for(monkeypatch, history):
|
||||
import src.model_context as model_context
|
||||
|
||||
monkeypatch.setattr(agent_runs, "is_active", lambda session_id: False)
|
||||
monkeypatch.setattr(endpoint_resolver, "resolve_endpoint", lambda kind, owner=None: (None, None, {}))
|
||||
def fake_resolve_endpoint(kind, owner=None):
|
||||
captured.setdefault("resolve_calls", []).append((kind, owner))
|
||||
return None, None, {}
|
||||
|
||||
monkeypatch.setattr(endpoint_resolver, "resolve_endpoint", fake_resolve_endpoint)
|
||||
monkeypatch.setattr(llm_core, "llm_call_async", fake_llm_call_async)
|
||||
monkeypatch.setattr(model_context, "estimate_tokens", lambda messages: 100)
|
||||
monkeypatch.setattr(model_context, "get_context_length", lambda endpoint_url, model: 1000)
|
||||
@@ -146,7 +151,11 @@ def _registered_compact_response(monkeypatch, history, active_run=False):
|
||||
import src.llm_core as llm_core
|
||||
|
||||
monkeypatch.setattr(agent_runs, "is_active", lambda session_id: active_run)
|
||||
monkeypatch.setattr(endpoint_resolver, "resolve_endpoint", lambda kind, owner=None: (None, None, {}))
|
||||
def fake_resolve_endpoint(kind, owner=None):
|
||||
captured.setdefault("resolve_calls", []).append((kind, owner))
|
||||
return None, None, {}
|
||||
|
||||
monkeypatch.setattr(endpoint_resolver, "resolve_endpoint", fake_resolve_endpoint)
|
||||
monkeypatch.setattr(llm_core, "llm_call_async", fake_llm_call_async)
|
||||
|
||||
session = _FakeSession(history)
|
||||
@@ -212,6 +221,24 @@ def test_registered_manual_compact_route_tolerates_none_content(monkeypatch):
|
||||
assert manager.replaced_messages is not None
|
||||
|
||||
|
||||
def test_registered_manual_compact_route_uses_session_owner(monkeypatch):
|
||||
response, captured, manager = _registered_compact_response(
|
||||
monkeypatch,
|
||||
[
|
||||
ChatMessage(role="user", content="start"),
|
||||
ChatMessage(role="assistant", content="tool call"),
|
||||
ChatMessage(role="tool", content="tool result"),
|
||||
ChatMessage(role="assistant", content="done"),
|
||||
ChatMessage(role="user", content="next"),
|
||||
ChatMessage(role="assistant", content="final"),
|
||||
],
|
||||
)
|
||||
|
||||
assert response.status_code == 200
|
||||
assert manager.replaced_messages is not None
|
||||
assert ("utility", "session-owner") in captured["resolve_calls"]
|
||||
|
||||
|
||||
def test_registered_manual_compact_route_rejects_active_agent_run(monkeypatch):
|
||||
response, captured, manager = _registered_compact_response(
|
||||
monkeypatch,
|
||||
|
||||
Reference in New Issue
Block a user