Add model router and MCP integration adapters

This commit is contained in:
2026-07-03 21:25:48 +03:00
parent 4db700bd4d
commit b681a90eae
14 changed files with 863 additions and 4 deletions
@@ -1,5 +1,6 @@
from pathlib import Path
from ai_orchestrator.application.ports import ModelInvocationRecord, ToolInvocationRecord
from ai_orchestrator.config import AppSettings
from ai_orchestrator.domain.enums import NodeType, PolicyDecisionType
from ai_orchestrator.domain.events import DomainEvent
@@ -77,3 +78,43 @@ def test_sqlite_storage_persists_confirmation_and_worker(tmp_path: Path) -> None
assert storage.confirmation_repository.get(confirmation.confirmation_id) is not None
assert storage.worker_repository.get(worker.session_id) is not None
assert len(storage.worker_repository.list_active()) == 1
def test_sqlite_storage_persists_invocation_records(tmp_path: Path) -> None:
db_path = tmp_path / "orchestrator.sqlite3"
settings = AppSettings(
storage_backend="sqlite",
database_url=f"sqlite:///{db_path.as_posix()}",
)
storage = create_storage_bundle(settings)
storage.invocation_store.save_model_invocation(
ModelInvocationRecord(
invocation_id="minv_1",
task_id="task_1",
node_id="node_1",
slot="weak",
provider="local",
model="mock",
status="success",
request={"messages": []},
response={"message": {"content": "ok"}},
usage={"input_tokens": 1},
)
)
storage.invocation_store.save_tool_invocation(
ToolInvocationRecord(
invocation_id="tinv_1",
task_id="task_1",
node_id="node_2",
source_type="mcp",
source_id="one_c",
tool_name="one_c.run_sql",
status="success",
request={"args": {"query": "select 1"}},
response={"content": {"rows": []}},
)
)
assert len(storage.invocation_store.list_model_invocations("task_1")) == 1
assert len(storage.invocation_store.list_tool_invocations("task_1")) == 1