From 13d04f85e2f42a39630556150aceda87bf4bb517 Mon Sep 17 00:00:00 2001 From: slhafzjw Date: Tue, 21 Apr 2026 21:38:04 +0800 Subject: [PATCH] fix(action): correct behavior of resume intervention --- .../builtin/BuiltinInterventionActionProvider.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/Partner-Core/src/main/java/work/slhaf/partner/module/action/builtin/BuiltinInterventionActionProvider.java b/Partner-Core/src/main/java/work/slhaf/partner/module/action/builtin/BuiltinInterventionActionProvider.java index f7273955..0db68c68 100644 --- a/Partner-Core/src/main/java/work/slhaf/partner/module/action/builtin/BuiltinInterventionActionProvider.java +++ b/Partner-Core/src/main/java/work/slhaf/partner/module/action/builtin/BuiltinInterventionActionProvider.java @@ -71,7 +71,7 @@ class BuiltinInterventionActionProvider implements BuiltinActionProvider { Function, String> invoker = params -> { String actionId = BuiltinActionRegistry.BuiltinActionDefinition.requireString(params, "actionId"); try { - ExecutableAction executableAction = getExecutableAction(actionId); + ExecutableAction executableAction = getExecutableAction(actionId, Action.Status.INTERRUPTED); executableAction.resume(); return "Resume succeed"; } catch (Exception e) { @@ -147,7 +147,7 @@ class BuiltinInterventionActionProvider implements BuiltinActionProvider { ExecutableAction executableAction = null; try { - executableAction = getExecutableAction(actionId); + executableAction = getExecutableAction(actionId, Action.Status.EXECUTING); cognitionCapability.initiateTurn(input, target); boolean normal = executableAction.interrupt(timeout); return normal ? target + "not resumed execution in time" : target + "answered, looking for related answer in recent-chat-messages"; @@ -168,12 +168,12 @@ class BuiltinInterventionActionProvider implements BuiltinActionProvider { ); } - private ExecutableAction getExecutableAction(String actionId) { - return actionCapability.listActions(Action.Status.EXECUTING, null) + private ExecutableAction getExecutableAction(String actionId, Action.Status status) { + return actionCapability.listActions(status, null) .stream() .filter(action -> action.getUuid().equals(actionId)) .findFirst() - .orElseThrow(); + .orElseThrow(() -> new IllegalArgumentException("未找到对应状态的 Action: " + actionId + ", status=" + status)); } /** @@ -324,8 +324,7 @@ class BuiltinInterventionActionProvider implements BuiltinActionProvider { actionCapability.handleInterventions(List.of(intervention), target); - ExecutableAction executableAction = getExecutableAction(targetId); - executableAction.resume(); + target.resume(); return JSONObject.of("ok", true).toJSONString(); };