From 365d449666e30ce7def496e394998bab95e5de56 Mon Sep 17 00:00:00 2001
From: Pim Hutting
Date: Wed, 7 Jan 2026 22:41:59 +0100
Subject: [PATCH] feat: commit before I can merge new changes
ref: N25B-400
---
src/control_backend/agents/bdi/agentspeak.asl | 26 +++++++++++++++----
.../agents/bdi/bdi_program_manager.py | 1 +
.../user_interrupt/user_interrupt_agent.py | 19 +++++++++++++-
3 files changed, 40 insertions(+), 6 deletions(-)
diff --git a/src/control_backend/agents/bdi/agentspeak.asl b/src/control_backend/agents/bdi/agentspeak.asl
index 7f71fbd..e6e1fb0 100644
--- a/src/control_backend/agents/bdi/agentspeak.asl
+++ b/src/control_backend/agents/bdi/agentspeak.asl
@@ -1,4 +1,4 @@
-phase("9922935f-ec70-4792-9a61-37a129e1ec14").
+phase("0e0f239c-efe9-442c-bdd7-3aabfccd1c49").
keyword_said(Keyword) :- (user_said(Message) & .substring(Keyword, Message, Pos)) & (Pos >= 0).
@@ -19,20 +19,36 @@ keyword_said(Keyword) :- (user_said(Message) & .substring(Keyword, Message, Pos)
.reply(Message, Norms).
+user_said(Message)
- : phase("9922935f-ec70-4792-9a61-37a129e1ec14")
+ : phase("0e0f239c-efe9-442c-bdd7-3aabfccd1c49")
<- .notify_user_said(Message);
-responded_this_turn;
!check_triggers;
!transition_phase.
+!transition_phase
- : phase("9922935f-ec70-4792-9a61-37a129e1ec14") &
+ : phase("0e0f239c-efe9-442c-bdd7-3aabfccd1c49") &
not responded_this_turn
- <- -phase("9922935f-ec70-4792-9a61-37a129e1ec14");
+ <- -phase("0e0f239c-efe9-442c-bdd7-3aabfccd1c49");
+ +phase("1fc60869-86db-483d-b475-b8ecdec4bba8");
+ ?user_said(Message);
+ -+user_said(Message);
+ .notify_transition_phase("0e0f239c-efe9-442c-bdd7-3aabfccd1c49", "1fc60869-86db-483d-b475-b8ecdec4bba8").
+
++user_said(Message)
+ : phase("1fc60869-86db-483d-b475-b8ecdec4bba8")
+ <- .notify_user_said(Message);
+ -responded_this_turn;
+ !check_triggers;
+ !transition_phase.
+
++!transition_phase
+ : phase("1fc60869-86db-483d-b475-b8ecdec4bba8") &
+ not responded_this_turn
+ <- -phase("1fc60869-86db-483d-b475-b8ecdec4bba8");
+phase("end");
?user_said(Message);
-+user_said(Message);
- .notify_transition_phase("9922935f-ec70-4792-9a61-37a129e1ec14", "end").
+ .notify_transition_phase("1fc60869-86db-483d-b475-b8ecdec4bba8", "end").
+user_said(Message)
: phase("end")
diff --git a/src/control_backend/agents/bdi/bdi_program_manager.py b/src/control_backend/agents/bdi/bdi_program_manager.py
index fefd6a7..29ff859 100644
--- a/src/control_backend/agents/bdi/bdi_program_manager.py
+++ b/src/control_backend/agents/bdi/bdi_program_manager.py
@@ -93,6 +93,7 @@ class BDIProgramManager(BaseAgent):
thread="transition_phase",
body=str(self._phase.id),
)
+ self.logger.info(f"Transitioned to phase {new}, notifying UserInterruptAgent.")
self.add_behavior(self.send(msg))
diff --git a/src/control_backend/agents/user_interrupt/user_interrupt_agent.py b/src/control_backend/agents/user_interrupt/user_interrupt_agent.py
index af00a7b..cfb6d2f 100644
--- a/src/control_backend/agents/user_interrupt/user_interrupt_agent.py
+++ b/src/control_backend/agents/user_interrupt/user_interrupt_agent.py
@@ -50,7 +50,7 @@ class UserInterruptAgent(BaseAgent):
self.pub_socket.connect(settings.zmq_settings.internal_pub_address)
self.add_behavior(self._receive_button_event())
- self.add_behavior(self.test_sending_behaviour())
+ # self.add_behavior(self.test_sending_behaviour())
async def _receive_button_event(self):
"""
@@ -99,6 +99,23 @@ class UserInterruptAgent(BaseAgent):
event_context,
)
+ async def handle_message(self, msg: InternalMessage):
+ """
+ Handle commands received from other internal Python agents.
+ """
+ match msg.thread:
+ case "transition_phase":
+ new_phase_id = msg.body
+ self.logger.info(f"Phase transition detected: {new_phase_id}")
+
+ payload = {"type": "phase_update", "phase_id": new_phase_id}
+
+ await self._send_experiment_update(payload)
+
+ 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...")