feat: validate real-bench seat orchestration and self-repair
This commit is contained in:
@@ -62,6 +62,9 @@ from cognitive_agent.application.vehicle_profile import ( # noqa: E402
|
||||
VehicleProfile,
|
||||
VehicleProfileRegistry,
|
||||
)
|
||||
from cognitive_agent.application.zcan_seat_executor import ( # noqa: E402
|
||||
ZcanBridgeSeatExecutor,
|
||||
)
|
||||
from cognitive_agent.infrastructure.llm.openai_responses import ( # noqa: E402
|
||||
OpenAIIntentError,
|
||||
OpenAIIntentInterpreter,
|
||||
@@ -217,7 +220,7 @@ class SeatDemoService:
|
||||
"execution_modes": ["dry_run", "simulated_hardware", "hardware"],
|
||||
"hardware_execution_allowed": (
|
||||
self.hardware_settings.configured
|
||||
and self.vehicle_can_settings.configured
|
||||
or self.vehicle_can_settings.configured
|
||||
),
|
||||
"hardware": hardware_info,
|
||||
"vehicle_can": self.vehicle_can_settings.public_info(),
|
||||
@@ -334,6 +337,29 @@ class SeatDemoService:
|
||||
def _new_hardware_executor(
|
||||
self, bus_factory: Any | None = None
|
||||
) -> HardwareSeatExecutor:
|
||||
shared_bridge_enabled = os.getenv(
|
||||
"COGNITIVE_AGENT_SEAT_SHARED_ZCANPRO_BRIDGE_ENABLED", "true"
|
||||
).strip().lower() in {"1", "true", "yes", "on"}
|
||||
if bus_factory is None and shared_bridge_enabled:
|
||||
# Import lazily so the ordinary dry-run service does not initialize
|
||||
# any self-repair runtime state. Both modules then share the one
|
||||
# process that is allowed to own the Windows ZLG adapter.
|
||||
from cognitive_agent.application.self_repair.service import (
|
||||
BRIDGE_MANAGER,
|
||||
PENDING_DIR,
|
||||
REQUIRED_BRIDGE_VERSION,
|
||||
STATUS_PATH,
|
||||
ZCANPRO_EXE,
|
||||
)
|
||||
if ZCANPRO_EXE.is_file():
|
||||
return ZcanBridgeSeatExecutor(
|
||||
self.hardware_matrix,
|
||||
BRIDGE_MANAGER,
|
||||
STATUS_PATH,
|
||||
PENDING_DIR,
|
||||
required_version=REQUIRED_BRIDGE_VERSION,
|
||||
auto_home=self.hardware_settings.auto_home_enabled,
|
||||
)
|
||||
resolved_bus_factory = bus_factory or self.hardware_settings.bus_factory()
|
||||
return HardwareSeatExecutor(
|
||||
self.hardware_matrix,
|
||||
@@ -554,7 +580,8 @@ class SeatDemoService:
|
||||
)
|
||||
parsed = merge_native_can_intent(parsed, utterance)
|
||||
parsed = self._partition_native_actions(
|
||||
parsed, promote_supported=hardware_request
|
||||
parsed,
|
||||
promote_supported=(hardware_request and self.vehicle_can_settings.enabled),
|
||||
)
|
||||
if hardware_request and not control_plane_request:
|
||||
if parsed.get("actions"):
|
||||
|
||||
Reference in New Issue
Block a user