feat: added goal start sending functionality

ref: N25B-400
This commit is contained in:
Pim Hutting
2026-01-08 14:52:55 +01:00
parent 3a8d1730a1
commit 500bbc2d82
2 changed files with 13 additions and 19 deletions

View File

@@ -212,7 +212,6 @@ class BDIProgramManager(BaseAgent):
continue
self._initialize_internal_state(program)
await self._send_program_to_user_interrupt(program)
await self._send_clear_llm_history()

View File

@@ -1,4 +1,3 @@
import asyncio
import json
import zmq
@@ -151,6 +150,15 @@ class UserInterruptAgent(BaseAgent):
payload = {"type": "phase_update", "phase_id": new_phase_id}
await self._send_experiment_update(payload)
case "goal_start":
goal_name = msg.body
ui_id = self._goal_reverse_map.get(goal_name)
if ui_id:
payload = {"type": "goal_update", "id": ui_id, "active": True}
await self._send_experiment_update(payload)
self.logger.info(f"UI Update: Goal {goal_name} started (ID: {ui_id})")
else:
self.logger.warning(f"Goal start received for unknown goal : {goal_name}")
case "active_norms_update":
asl_slugs = [s.strip() for s in msg.body.split(";")]
@@ -159,23 +167,6 @@ class UserInterruptAgent(BaseAgent):
case _:
self.logger.debug(f"Received internal message on unhandled thread: {msg.thread}")
# moet weg!!!!!
async def test_sending_behaviour(self):
self.logger.info("Starting simple test sending behaviour...")
while True:
try:
test_data = {"type": "heartbeat", "status": "ok"}
await self._send_experiment_update(test_data)
except zmq.ZMQError as ze:
self.logger.error(f"ZMQ error: {ze}")
except Exception as e:
self.logger.error(f"Error: {e}")
await asyncio.sleep(2)
async def _broadcast_cond_norms(self, active_slugs: list[str]):
"""
Sends the current state of all conditional norms to the UI.
@@ -209,6 +200,10 @@ class UserInterruptAgent(BaseAgent):
for goal in phase.goals:
self._goal_map[str(goal.id)] = AgentSpeakGenerator.slugify(goal)
self._goal_reverse_map[AgentSpeakGenerator.slugify(goal)] = str(goal.id)
for goal, id in self._goal_reverse_map.items():
self.logger.debug(f"Goal mapping: UI ID {goal} -> {id}")
for norm in phase.norms:
if not isinstance(norm, BasicNorm):