[真实全双工运行时]:完成run-agent-live可打断语音闭环,包含持续监听、软件回声抑制和播放取消验证

This commit is contained in:
mkbk
2026-06-18 22:56:01 +08:00
parent e730883c64
commit a489f8eee1
11 changed files with 378 additions and 46 deletions
+12 -6
View File
@@ -83,14 +83,20 @@ class CliAcceptanceTests(unittest.TestCase):
self.assertTrue(data["success"])
self.assertEqual(data["command"], "run-agent-live")
self.assertEqual(data["assistant_mode"], "full_duplex_agent")
self.assertFalse(data["full_duplex_runtime_ready"])
self.assertTrue(data["full_duplex_runtime_ready"])
self.assertEqual(data["turn_based_entry"], "run-live")
def test_run_agent_live_without_runtime_returns_explicit_not_implemented(self) -> None:
code, data = self.call("run-agent-live")
self.assertEqual(code, 1)
self.assertFalse(data["success"])
self.assertEqual(data["code"], "FULL_DUPLEX_RUNTIME_NOT_IMPLEMENTED")
def test_run_agent_live_once_invokes_agent_runtime(self) -> None:
class FakeRuntime:
def run_agent(self, *, once: bool = False):
self.once = once
return type("Summary", (), {"completed_turns": 1, "interrupted": False})()
fake_runtime = FakeRuntime()
with patch("owner_voice_pet.cli.build_live_runtime", return_value=fake_runtime):
code = main(["run-agent-live", "--once"])
self.assertEqual(code, 0)
self.assertTrue(fake_runtime.once)
def test_security_check_command_has_no_leaks(self) -> None:
code, data = self.call("security-check")