| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- from __future__ import annotations
- import inspect
- from pathlib import Path
- from agent.core.runner import AgentRunner
- from agent.orchestration.coordinator import TaskCoordinator
- from agent.trace.store import FileSystemTraceStore
- from agent.tools.builtin import browser
- from agent.tools.builtin.browser import baseClass
- from agent.tools.builtin.feishu.feishu_agent import FeishuAgent, execute_tool
- def _parameter_names(callable_obj) -> tuple[str, ...]:
- return tuple(inspect.signature(callable_obj).parameters)
- def test_runner_and_coordinator_public_call_shapes_are_frozen() -> None:
- assert _parameter_names(AgentRunner) == (
- "trace_store",
- "tool_registry",
- "llm_call",
- "utility_llm_call",
- "skills_dir",
- "goal_tree",
- "debug",
- "logger_name",
- "task_coordinator",
- "tool_policy",
- )
- assert _parameter_names(AgentRunner.run) == (
- "self",
- "messages",
- "config",
- "inject_skills",
- "skill_recency_threshold",
- )
- assert _parameter_names(AgentRunner.run_result) == (
- "self",
- "messages",
- "config",
- "on_event",
- "inject_skills",
- )
- assert _parameter_names(TaskCoordinator) == (
- "task_store",
- "artifact_store",
- "trace_store",
- "config",
- "event_sink",
- "executor",
- "validation_policy",
- "deterministic_validator",
- "evidence_provider",
- )
- assert _parameter_names(TaskCoordinator.decide_task) == (
- "self",
- "root_trace_id",
- "task_id",
- "validation_id",
- "action",
- "payload",
- "idempotency_key",
- )
- def test_trace_store_public_state_and_constructor_remain_stable(tmp_path) -> None:
- assert str(inspect.signature(FileSystemTraceStore)) == "(base_path: str = '.trace')"
- store = FileSystemTraceStore(str(tmp_path))
- assert isinstance(store.base_path, Path)
- assert store.base_path == tmp_path
- def test_legacy_browser_package_exports_keep_object_identity() -> None:
- legacy_exports = (
- "init_browser_session",
- "get_browser_session",
- "get_browser_live_url",
- "cleanup_browser_session",
- "kill_browser_session",
- "browser_navigate",
- "browser_search",
- "browser_back",
- "browser_interact",
- "browser_scroll",
- "browser_screenshot",
- "browser_elements",
- "browser_read",
- "browser_extract",
- "browser_tabs",
- "browser_cookies",
- "browser_wait",
- "browser_js",
- "browser_download",
- )
- for name in legacy_exports:
- assert getattr(browser, name) is getattr(baseClass, name)
- def test_feishu_agent_legacy_entrypoints_keep_call_shapes() -> None:
- assert str(inspect.signature(FeishuAgent)) == "()"
- assert _parameter_names(FeishuAgent.handle_message) == ("self", "event")
- assert _parameter_names(FeishuAgent.start) == ("self",)
- assert _parameter_names(execute_tool) == ("name", "arguments")
|