feat: add session-scoped client tool waits
This commit is contained in:
@@ -518,6 +518,42 @@ class PromptBrainTests(unittest.IsolatedAsyncioTestCase):
|
||||
|
||||
|
||||
class WorkflowBrainTests(unittest.IsolatedAsyncioTestCase):
|
||||
def test_client_tool_session_wait_disables_flow_timeout(self):
|
||||
brain = WorkflowBrain(
|
||||
{
|
||||
"specVersion": 3,
|
||||
"settings": {},
|
||||
"nodes": [{"id": "start", "type": "start", "data": {}}],
|
||||
"edges": [],
|
||||
}
|
||||
)
|
||||
timeout_tool = RuntimeTool(
|
||||
id="client_timeout",
|
||||
name="限时等待",
|
||||
function_name="wait_with_timeout",
|
||||
type="client",
|
||||
definition={
|
||||
"type": "client",
|
||||
"config": {"timeout_seconds": 7},
|
||||
},
|
||||
)
|
||||
session_tool = RuntimeTool(
|
||||
id="client_session",
|
||||
name="会话内等待",
|
||||
function_name="wait_for_session",
|
||||
type="client",
|
||||
definition={
|
||||
"type": "client",
|
||||
"config": {
|
||||
"timeout_seconds": 7,
|
||||
"response_wait_mode": "session",
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
self.assertEqual(brain._flow_tool(timeout_tool, "start").timeout_secs, 7.0)
|
||||
self.assertIsNone(brain._flow_tool(session_tool, "start").timeout_secs)
|
||||
|
||||
async def test_session_update_refreshes_current_agent_without_routing(self):
|
||||
cfg = prepare_dynamic_config(
|
||||
AssistantConfig(
|
||||
|
||||
Reference in New Issue
Block a user