优化前端,优化前端指令,优化自定义控制
This commit is contained in:
@@ -356,6 +356,85 @@ operations:
|
||||
[{"name": "transmittance_pct", "value": 20}],
|
||||
)
|
||||
|
||||
def test_mode_card_override_persists_instruction_and_can_command_flow(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
root = Path(directory) / "presets"
|
||||
user_root = Path(directory) / "persistent-user-modes"
|
||||
preset = root / "vehicles" / "denza_n7" / "office.yaml"
|
||||
preset.parent.mkdir(parents=True)
|
||||
preset.write_text(
|
||||
"""
|
||||
id: office
|
||||
name: 办公模式
|
||||
icon: briefcase
|
||||
scope:
|
||||
vehicle_ids: [denza_n7]
|
||||
operations:
|
||||
- domain: climate
|
||||
capability: climate.set_temperature
|
||||
target_scope: passenger
|
||||
parameters:
|
||||
temperature_c: 24
|
||||
""".strip()
|
||||
+ "\n",
|
||||
encoding="utf-8",
|
||||
)
|
||||
registry = ModeProfileRegistry(root, user_root=user_root)
|
||||
flow = {
|
||||
"schema": "cognitive-agent-mode-command-flow/v1",
|
||||
"source_request_id": "req-mode-editor-001",
|
||||
"plans": {
|
||||
"native_climate": {
|
||||
"spec": {
|
||||
"commands": [
|
||||
{
|
||||
"message": "Native_0x1DE",
|
||||
"signals": {
|
||||
"frame_id": "0x1DE",
|
||||
"data_hex": "00 00 00 00 18 00 00 00",
|
||||
},
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
registry.save_mode(
|
||||
"专注办公模式",
|
||||
[
|
||||
{
|
||||
"domain": "climate",
|
||||
"capability": "climate.set_temperature",
|
||||
"target_scope": "passenger",
|
||||
"parameters": {"temperature_c": 24},
|
||||
}
|
||||
],
|
||||
mode_id="office",
|
||||
vehicle_id="denza_n7",
|
||||
icon="briefcase",
|
||||
instruction="副驾空调设置为24度",
|
||||
command_flow=flow,
|
||||
)
|
||||
|
||||
reloaded = ModeProfileRegistry(root, user_root=user_root)
|
||||
mode = next(
|
||||
item
|
||||
for item in reloaded.public_modes("denza_n7")
|
||||
if item["id"] == "office"
|
||||
)
|
||||
self.assertEqual(mode["name"], "专注办公模式")
|
||||
self.assertEqual(mode["origin"], "customized")
|
||||
self.assertTrue(mode["preset_override"])
|
||||
self.assertEqual(mode["instruction"], "副驾空调设置为24度")
|
||||
self.assertEqual(
|
||||
mode["command_flow"]["source_request_id"],
|
||||
"req-mode-editor-001",
|
||||
)
|
||||
self.assertTrue(
|
||||
(user_root / "vehicles" / "denza_n7" / "user" / "office.yaml").is_file()
|
||||
)
|
||||
|
||||
def test_session_overlay_ignores_stale_repository_user_modes(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
root = Path(directory) / "profiles"
|
||||
|
||||
Reference in New Issue
Block a user