Add model router and MCP integration adapters
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user