"""Offline test doubles for the refactoring safety net (R01-T02). Every double here is deliberately Qt-free, network-free and disk-free so the unit/contract suites run in well under a second and give the same answer on a laptop, in CI and on a machine with no API keys configured. * :class:`~tests.fakes.fake_provider.FakeProvider` - a scripted ``providers.base.Provider`` that streams canned text/tool calls. * :class:`~tests.fakes.fake_tool_executor.FakeToolExecutor` - a scripted stand-in for the ``extra_executor`` callable that ``core.chat_agent.run_cowork`` routes MCP/connector tool calls to. """ from .fake_provider import FakeProvider, ScriptedTurn from .fake_tool_executor import FakeToolExecutor, ToolInvocation __all__ = ["FakeProvider", "ScriptedTurn", "FakeToolExecutor", "ToolInvocation"]