From 01391e02d5c009eed07ef3c054b80d4a8942b852 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriele=20Cin=C3=A0?= Date: Tue, 24 Mar 2026 19:38:46 +0000 Subject: [PATCH] feat: add get_current_state workflow query to BaseWorkflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a default @workflow.query handler named "get_current_state" to BaseWorkflow. Returns "unknown" by default — agents override to report their actual state. Example for StateMachine-based agents: @workflow.query(name="get_current_state") def get_current_state(self) -> str: return self.state_machine.get_current_state() Companion to scaleapi/scale-agentex#173 which adds GET /tasks/{task_id}/query/{query_name} endpoint. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../lib/core/temporal/workflows/workflow.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/agentex/lib/core/temporal/workflows/workflow.py b/src/agentex/lib/core/temporal/workflows/workflow.py index 727f3ac85..7ef0c7a55 100644 --- a/src/agentex/lib/core/temporal/workflows/workflow.py +++ b/src/agentex/lib/core/temporal/workflows/workflow.py @@ -16,6 +16,22 @@ def __init__( ): self.display_name = display_name + @workflow.query(name="get_current_state") + def get_current_state(self) -> str: + """Query handler for the current workflow state. + + Returns "unknown" by default. Subclasses should override this + to return their actual state, enabling external callers to + detect turn completion. + + Example override for StateMachine-based agents: + + @workflow.query(name="get_current_state") + def get_current_state(self) -> str: + return self.state_machine.get_current_state() + """ + return "unknown" + @abstractmethod @workflow.signal(name=SignalName.RECEIVE_EVENT) async def on_task_event_send(self, params: SendEventParams) -> None: