merge: integrate remote MQTT routing with seat-scoped dynamic modes

This commit is contained in:
vee
2026-09-12 15:10:16 +08:00
43 changed files with 5726 additions and 492 deletions
@@ -19,6 +19,57 @@ from cognitive_agent.application.codex_assistant import (
CONTROL_TERMS = ("空调", "座椅", "车窗", "遮阳帘", "氛围灯", "阅读灯", "出风口")
@pytest.mark.parametrize(("message", "mode_name"), [
("构建一个观影模式", "观影模式"),
("为主驾构建一个观影模式", "主驾观影模式"),
])
def test_local_first_callbacks_do_not_intercept_scoped_mode_draft_creation(message, mode_name):
client = StructuredSceneClient()
assistant = CodexAssistantService(client)
events = []
control_calls = []
def execute_control(instruction, _progress, plan):
control_calls.append((instruction, plan))
return _preview_result(mode_name)
result = assistant.stream(
message, conversation_id="conv-merged-scene-router", principal="test",
history=[], emit=events.append, execute_control=execute_control,
preview_control=lambda *_args: pytest.fail("mode previews must not partially execute via local-first controls"),
supplement_control=lambda *_args: pytest.fail("mode previews must not become unresolved control supplements"),
control_terms=CONTROL_TERMS,
capability_snapshot=_catalog_with_templates(_scene_template()),
scene_capability_context=_scene_context(),
)
assert result["success"] is True
assert result["route"] == "scene_template"
assert [instruction for instruction, _ in control_calls] == [message]
assert not client.structured_calls and not client.legacy_calls
def test_local_first_callbacks_preserve_schedule_stop_route_and_answer():
client = StructuredSceneClient()
assistant = CodexAssistantService(client)
events = []
result = assistant.stream(
"停止动态模式", conversation_id="conv-merged-schedule-stop", principal="test",
history=[], emit=events.append,
execute_control=lambda instruction, _progress: {
"request_id": "req-stop-merged", "utterance": instruction,
"status": "succeeded", "execution_mode": "dry_run",
"orchestration_route": "mode_schedule_stop",
"schedule_execution": {"status": "idle"},
},
preview_control=lambda *_args: pytest.fail("schedule stop must retain its scheduler route"),
supplement_control=lambda *_args: pytest.fail("schedule stop is not an unresolved control"),
control_terms=CONTROL_TERMS,
)
assert result["success"] is True
assert "已模拟停止动态模式" in result["answer"]
assert not client.structured_calls and not client.legacy_calls
def _structured_plan(
*,
temperature: float = 24,
@@ -798,6 +849,13 @@ def test_unknown_mode_uses_one_structured_turn_then_local_dry_run() -> None:
"default_scope": "passenger",
"applies_to": "seat capabilities in every phase",
}
expected_context["natural_language_routing"] = {
"original_utterance": "构建一个星夜模式",
"parsed_clauses": [],
"resolved_clauses": [],
"unresolved_clauses": ["构建一个星夜模式"],
"cloud_input_utterance": "构建一个星夜模式",
}
assert call["application_context"] == expected_context
assert call["output_schema"]["type"] == "object"
assert call["output_schema"]["additionalProperties"] is False