mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 08:43:02 +08:00
fix(action): correct behavior of resume intervention
This commit is contained in:
@@ -71,7 +71,7 @@ class BuiltinInterventionActionProvider implements BuiltinActionProvider {
|
|||||||
Function<Map<String, Object>, String> invoker = params -> {
|
Function<Map<String, Object>, String> invoker = params -> {
|
||||||
String actionId = BuiltinActionRegistry.BuiltinActionDefinition.requireString(params, "actionId");
|
String actionId = BuiltinActionRegistry.BuiltinActionDefinition.requireString(params, "actionId");
|
||||||
try {
|
try {
|
||||||
ExecutableAction executableAction = getExecutableAction(actionId);
|
ExecutableAction executableAction = getExecutableAction(actionId, Action.Status.INTERRUPTED);
|
||||||
executableAction.resume();
|
executableAction.resume();
|
||||||
return "Resume succeed";
|
return "Resume succeed";
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -147,7 +147,7 @@ class BuiltinInterventionActionProvider implements BuiltinActionProvider {
|
|||||||
|
|
||||||
ExecutableAction executableAction = null;
|
ExecutableAction executableAction = null;
|
||||||
try {
|
try {
|
||||||
executableAction = getExecutableAction(actionId);
|
executableAction = getExecutableAction(actionId, Action.Status.EXECUTING);
|
||||||
cognitionCapability.initiateTurn(input, target);
|
cognitionCapability.initiateTurn(input, target);
|
||||||
boolean normal = executableAction.interrupt(timeout);
|
boolean normal = executableAction.interrupt(timeout);
|
||||||
return normal ? target + "not resumed execution in time" : target + "answered, looking for related answer in recent-chat-messages";
|
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) {
|
private ExecutableAction getExecutableAction(String actionId, Action.Status status) {
|
||||||
return actionCapability.listActions(Action.Status.EXECUTING, null)
|
return actionCapability.listActions(status, null)
|
||||||
.stream()
|
.stream()
|
||||||
.filter(action -> action.getUuid().equals(actionId))
|
.filter(action -> action.getUuid().equals(actionId))
|
||||||
.findFirst()
|
.findFirst()
|
||||||
.orElseThrow();
|
.orElseThrow(() -> new IllegalArgumentException("未找到对应状态的 Action: " + actionId + ", status=" + status));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -324,8 +324,7 @@ class BuiltinInterventionActionProvider implements BuiltinActionProvider {
|
|||||||
|
|
||||||
actionCapability.handleInterventions(List.of(intervention), target);
|
actionCapability.handleInterventions(List.of(intervention), target);
|
||||||
|
|
||||||
ExecutableAction executableAction = getExecutableAction(targetId);
|
target.resume();
|
||||||
executableAction.resume();
|
|
||||||
|
|
||||||
return JSONObject.of("ok", true).toJSONString();
|
return JSONObject.of("ok", true).toJSONString();
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user