From 6474eb8dc6e1ad7b810e60354b12329eafa284a4 Mon Sep 17 00:00:00 2001 From: slhafzjw Date: Tue, 17 Mar 2026 22:51:00 +0800 Subject: [PATCH] refactor(runner): allow object-typed params in BuiltinActionRegistry builtin actions --- .../modules/action/builtin/BuiltinActionRegistry.java | 6 +++--- .../modules/action/builtin/BuiltinActionRegistryTest.java | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Partner-Core/src/main/java/work/slhaf/partner/module/modules/action/builtin/BuiltinActionRegistry.java b/Partner-Core/src/main/java/work/slhaf/partner/module/modules/action/builtin/BuiltinActionRegistry.java index a1c08d1d..35040ab2 100644 --- a/Partner-Core/src/main/java/work/slhaf/partner/module/modules/action/builtin/BuiltinActionRegistry.java +++ b/Partner-Core/src/main/java/work/slhaf/partner/module/modules/action/builtin/BuiltinActionRegistry.java @@ -37,12 +37,12 @@ public class BuiltinActionRegistry extends AbstractAgentModule.Standalone { return List.of(); } - public void defineBuiltinAction(String name, MetaActionInfo metaActionInfo, Function, String> invoker) { + public void defineBuiltinAction(String name, MetaActionInfo metaActionInfo, Function, String> invoker) { BuiltinActionDefinition definition = new BuiltinActionDefinition(BUILTIN_LOCATION + "::" + name, metaActionInfo, invoker); definitions.put(definition.actionKey(), definition); } - public String call(@NonNull String actionKey, @NonNull Map params) { + public String call(@NonNull String actionKey, @NonNull Map params) { BuiltinActionDefinition definition = definitions.get(actionKey); if (definition == null) { throw new MetaActionNotFoundException("未找到对应的内置行动程序: " + actionKey); @@ -63,7 +63,7 @@ public class BuiltinActionRegistry extends AbstractAgentModule.Standalone { public record BuiltinActionDefinition( String actionKey, MetaActionInfo metaActionInfo, - Function, String> invoker + Function, String> invoker ) { } } \ No newline at end of file diff --git a/Partner-Core/src/test/java/work/slhaf/partner/module/modules/action/builtin/BuiltinActionRegistryTest.java b/Partner-Core/src/test/java/work/slhaf/partner/module/modules/action/builtin/BuiltinActionRegistryTest.java index c1ffa057..2f65c02d 100644 --- a/Partner-Core/src/test/java/work/slhaf/partner/module/modules/action/builtin/BuiltinActionRegistryTest.java +++ b/Partner-Core/src/test/java/work/slhaf/partner/module/modules/action/builtin/BuiltinActionRegistryTest.java @@ -42,7 +42,7 @@ class BuiltinActionRegistryTest { private static BuiltinActionRegistry.BuiltinActionDefinition buildDefinition( String name, MetaActionInfo metaActionInfo, - java.util.function.Function, Object> invoker + java.util.function.Function, String> invoker ) { return new BuiltinActionRegistry.BuiltinActionDefinition( BUILTIN_LOCATION + "::" + name, @@ -59,7 +59,7 @@ class BuiltinActionRegistryTest { BuiltinActionRegistry registry = spy(new BuiltinActionRegistry()); doReturn(List.of( - buildDefinition("echo", buildMetaActionInfo("echo"), params -> params.get("value")) + buildDefinition("echo", buildMetaActionInfo("echo"), params -> params.get("value").toString()) )).when(registry).buildDefaultActionDefinitions(); injectActionCapability(registry, actionCapability); @@ -75,8 +75,8 @@ class BuiltinActionRegistryTest { @Test void testCallReturnsStringifiedResults() { BuiltinActionRegistry registry = new BuiltinActionRegistry(); - registry.defineBuiltinAction("echo", buildMetaActionInfo("echo"), params -> params.get("value")); - registry.defineBuiltinAction("json", buildMetaActionInfo("json"), params -> Map.of("ok", true)); + registry.defineBuiltinAction("echo", buildMetaActionInfo("echo"), params -> params.get("value").toString()); + registry.defineBuiltinAction("json", buildMetaActionInfo("json"), params -> Map.of("ok", true).toString()); registry.defineBuiltinAction("nil", buildMetaActionInfo("nil"), params -> null); Assertions.assertEquals("hello", registry.call("builtin::echo", Map.of("value", "hello")));