refactor(project): normalize formatting and reorder class members across modules

This commit is contained in:
2026-02-20 17:22:54 +08:00
parent c47d2b2285
commit bbace28d7a
102 changed files with 706 additions and 492 deletions

View File

@@ -1,29 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<artifactId>Partner</artifactId>
<groupId>work.slhaf</groupId>
<version>0.5.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>Partner-Api</artifactId>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
<exclusions>
<exclusion>
<artifactId>hamcrest-core</artifactId>
<groupId>org.hamcrest</groupId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<properties>
<maven.compiler.target>21</maven.compiler.target>
<maven.compiler.source>21</maven.compiler.source>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<artifactId>Partner</artifactId>
<groupId>work.slhaf</groupId>
<version>0.5.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>Partner-Api</artifactId>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
<exclusions>
<exclusion>
<artifactId>hamcrest-core</artifactId>
<groupId>org.hamcrest</groupId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<properties>
<maven.compiler.target>21</maven.compiler.target>
<maven.compiler.source>21</maven.compiler.source>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>

View File

@@ -56,14 +56,13 @@ public final class Agent {
private final ExecutorService executorService = Executors.newVirtualThreadPerTaskExecutor();
private final List<Runnable> beforeLaunchRunners = new ArrayList<>();
private final List<Runnable> afterLaunchRunners = new ArrayList<>();
private AgentGateway gateway;
private final Class<?> applicationClass;
private final CountDownLatch latch = new CountDownLatch(1);
private AgentGateway gateway;
private Class<? extends AgentConfigManager> agentConfigManagerClass;
private Class<? extends AgentGateway> gatewayClass;
private Class<? extends AgentExceptionCallback> agentExceptionCallbackClass;
private final CountDownLatch latch = new CountDownLatch(1);
private AgentApp(Class<?> clazz) {
this.applicationClass = clazz;
}
@@ -136,9 +135,9 @@ public final class Agent {
private void beforeLaunch() {
try {
AgentConfigManager.setINSTANCE(agentConfigManagerClass.getDeclaredConstructor().newInstance());
log.info("配置管理器设置完毕: {}",agentConfigManagerClass.getSimpleName());
log.info("配置管理器设置完毕: {}", agentConfigManagerClass.getSimpleName());
GlobalExceptionHandler.setExceptionCallback(agentExceptionCallbackClass.getDeclaredConstructor().newInstance());
log.info("异常处理回调设置完毕: {}",agentExceptionCallbackClass.getSimpleName());
log.info("异常处理回调设置完毕: {}", agentExceptionCallbackClass.getSimpleName());
launchRunners(beforeLaunchRunners);
log.info("前置任务启动完毕");
} catch (Exception e) {

View File

@@ -37,7 +37,8 @@ import static work.slhaf.partner.api.agent.util.AgentUtil.methodSignature;
* </ol>
*
* <p>下一步流程请参阅 {@link ModuleInitHookExecuteFactory}</p>
*/public class CapabilityInjectFactory extends AgentBaseFactory {
*/
public class CapabilityInjectFactory extends AgentBaseFactory {
private Reflections reflections;
private HashMap<String, Function<Object[], Object>> coordinatedMethodsRouterTable;

View File

@@ -1,6 +1,6 @@
package work.slhaf.partner.api.agent.factory.capability.exception;
public class DuplicateMethodException extends CapabilityCheckFailedException{
public class DuplicateMethodException extends CapabilityCheckFailedException {
public DuplicateMethodException(String message) {
super(message);
}

View File

@@ -1,6 +1,6 @@
package work.slhaf.partner.api.agent.factory.capability.exception;
public class EmptyCapabilityHolderException extends CapabilityCheckFailedException{
public class EmptyCapabilityHolderException extends CapabilityCheckFailedException {
public EmptyCapabilityHolderException(String message) {
super(message);
}

View File

@@ -1,6 +1,6 @@
package work.slhaf.partner.api.agent.factory.capability.exception;
public class UnMatchedCapabilityException extends CapabilityCheckFailedException{
public class UnMatchedCapabilityException extends CapabilityCheckFailedException {
public UnMatchedCapabilityException(String message) {
super(message);
}

View File

@@ -1,6 +1,6 @@
package work.slhaf.partner.api.agent.factory.config.exception;
public class ConfigUpdateFailedException extends ConfigFactoryRuntimeException{
public class ConfigUpdateFailedException extends ConfigFactoryRuntimeException {
public ConfigUpdateFailedException(String message, Throwable cause) {
super(message, cause);
}

View File

@@ -1,6 +1,6 @@
package work.slhaf.partner.api.agent.factory.exception;
public class ExternalModuleLoadFailedException extends AgentRegisterFactoryFailedException{
public class ExternalModuleLoadFailedException extends AgentRegisterFactoryFailedException {
public ExternalModuleLoadFailedException(String message, Throwable cause) {
super(message, cause);
}

View File

@@ -157,26 +157,27 @@ public class ModuleCheckFactory extends AgentBaseFactory {
private void checkIfClassCorresponds(AnnotatedModules annotatedModules, ExtendedModules extendedModules) {
// 检查是否有被@AgentModule注解但没有继承AgentRunningModule的类
checkSets(annotatedModules.moduleTypes(), extendedModules.moduleTypes(),
"存在被@AgentModule注解但未继承AgentRunningModule的类");
checkSets(annotatedModules.moduleTypes(), extendedModules.moduleTypes(),
"存在被@AgentModule注解但未继承AgentRunningModule的类");
// 检查是否有继承AgentRunningModule但没有被@AgentModule注解的类
checkSets(extendedModules.moduleTypes(), annotatedModules.moduleTypes(),
"存在继承AgentRunningModule但未被@AgentModule注解的类");
"存在继承AgentRunningModule但未被@AgentModule注解的类");
// 检查是否有被@AgentSubModule注解但没有继承AgentRunningSubModule的类
checkSets(annotatedModules.subModuleTypes(), extendedModules.subModuleTypes(),
"存在被@AgentSubModule注解但未继承AgentRunningSubModule的类");
"存在被@AgentSubModule注解但未继承AgentRunningSubModule的类");
// 检查是否有继承AgentRunningSubModule但没有被@AgentSubModule注解的类
checkSets(extendedModules.subModuleTypes(), annotatedModules.subModuleTypes(),
"存在继承AgentRunningSubModule但未被@AgentSubModule注解的类");
"存在继承AgentRunningSubModule但未被@AgentSubModule注解的类");
}
/**
* 检查源集合中是否有不在目标集合中的元素
* @param source 源集合
* @param target 目标集合
*
* @param source 源集合
* @param target 目标集合
* @param errorMessage 错误信息前缀
*/
private void checkSets(Set<Class<?>> source, Set<Class<?>> target, String errorMessage) {
@@ -188,7 +189,7 @@ public class ModuleCheckFactory extends AgentBaseFactory {
.map(Class::getSimpleName)
.limit(10) // 限制显示数量,避免信息泄露
.collect(Collectors.joining(", ", "[", "]"));
throw new ModuleCheckException(errorMessage + ": " + classNames);
}
}

View File

@@ -40,11 +40,11 @@ import java.util.List;
*/
public class ModuleProxyFactory extends AgentBaseFactory {
private final HashMap<Class<?>, Object> subModuleInstances = new HashMap<>();
private final HashMap<Class<?>, Object> moduleInstances = new HashMap<>();
private List<MetaModule> moduleList;
private List<MetaSubModule> subModuleList;
private HashMap<Class<?>, Object> capabilityHolderInstances;
private final HashMap<Class<?>, Object> subModuleInstances = new HashMap<>();
private final HashMap<Class<?>, Object> moduleInstances = new HashMap<>();
@Override
protected void setVariables(AgentRegisterContext context) {

View File

@@ -46,6 +46,20 @@ public class ModuleRegisterFactory extends AgentBaseFactory {
private List<MetaModule> moduleList;
private List<MetaSubModule> subModuleList;
private static MetaModule getMetaModule(Class<? extends AbstractAgentRunningModule> clazz) {
MetaModule metaModule = new MetaModule();
AgentRunningModule agentRunningModule;
if (clazz.isAnnotationPresent(CoreModule.class)) {
agentRunningModule = CoreModule.class.getAnnotation(AgentRunningModule.class);
} else {
agentRunningModule = clazz.getAnnotation(AgentRunningModule.class);
}
metaModule.setName(agentRunningModule.name());
metaModule.setOrder(agentRunningModule.order());
metaModule.setClazz(clazz);
return metaModule;
}
@Override
protected void setVariables(AgentRegisterContext context) {
ModuleFactoryContext factoryContext = context.getModuleFactoryContext();
@@ -60,20 +74,6 @@ public class ModuleRegisterFactory extends AgentBaseFactory {
setSubModuleList();
}
private static MetaModule getMetaModule(Class<? extends AbstractAgentRunningModule> clazz) {
MetaModule metaModule = new MetaModule();
AgentRunningModule agentRunningModule;
if (clazz.isAnnotationPresent(CoreModule.class)){
agentRunningModule = CoreModule.class.getAnnotation(AgentRunningModule.class);
}else{
agentRunningModule = clazz.getAnnotation(AgentRunningModule.class);
}
metaModule.setName(agentRunningModule.name());
metaModule.setOrder(agentRunningModule.order());
metaModule.setClazz(clazz);
return metaModule;
}
private void setSubModuleList() {
Set<Class<?>> subModules = reflections.getTypesAnnotatedWith(AgentSubModule.class);
for (Class<?> subModule : subModules) {

View File

@@ -21,12 +21,12 @@ public abstract class AbstractAgentRunningModule<C extends RunningFlowContext> e
log.debug("[{}] 模块执行结束...", getModuleName());
}
private String getModuleName(){
private String getModuleName() {
if (this.getClass().isAnnotationPresent(AgentRunningModule.class)) {
return this.getClass().getAnnotation(AgentRunningModule.class).name();
} else if (this.getClass().isAnnotationPresent(CoreModule.class)) {
return CoreModule.class.getAnnotation(AgentRunningModule.class).name();
}else {
} else {
return "Unknown AbstractAgentModule";
}
}

View File

@@ -2,10 +2,10 @@ package work.slhaf.partner.api.agent.factory.module.exception;
public class ModuleFactoryInitFailedException extends RuntimeException {
public ModuleFactoryInitFailedException(String message) {
super("ModuleFactory 执行失败: "+message);
super("ModuleFactory 执行失败: " + message);
}
public ModuleFactoryInitFailedException(String message, Throwable cause) {
super("ModuleFactory 执行失败: "+message, cause);
super("ModuleFactory 执行失败: " + message, cause);
}
}

View File

@@ -15,10 +15,9 @@ import java.util.*;
@Data
public abstract class AgentConfigManager {
private static final String DEFAULT_KEY = "default";
@Setter
public static AgentConfigManager INSTANCE;
private static final String DEFAULT_KEY = "default";
protected HashMap<String, ModelConfig> modelConfigMap;
protected HashMap<String, List<Message>> modelPromptMap;
protected HashMap<String, Boolean> moduleEnabledStatus;

View File

@@ -2,5 +2,6 @@ package work.slhaf.partner.api.agent.runtime.exception;
public interface AgentExceptionCallback {
void onRuntimeException(AgentRuntimeException e);
void onFailedException(AgentLaunchFailedException e);
}

View File

@@ -1,6 +1,6 @@
package work.slhaf.partner.api.agent.runtime.exception;
public class AgentRunningFailedException extends AgentRuntimeException{
public class AgentRunningFailedException extends AgentRuntimeException {
public AgentRunningFailedException(String message) {
super(message);
}

View File

@@ -9,6 +9,10 @@ public class GlobalExceptionHandler {
private AgentExceptionCallback exceptionCallback = new LogAgentExceptionCallback();
public static void setExceptionCallback(AgentExceptionCallback callback) {
INSTANCE.exceptionCallback = callback;
}
public boolean handle(Throwable e) {
boolean exit;
Throwable cause = e.getCause();
@@ -32,8 +36,4 @@ public class GlobalExceptionHandler {
}
return exit;
}
public static void setExceptionCallback(AgentExceptionCallback callback) {
INSTANCE.exceptionCallback = callback;
}
}

View File

@@ -4,11 +4,11 @@ import work.slhaf.partner.api.agent.runtime.interaction.data.AgentInputData;
import work.slhaf.partner.api.agent.runtime.interaction.data.AgentOutputData;
import work.slhaf.partner.api.agent.runtime.interaction.flow.entity.RunningFlowContext;
public interface AgentGateway <I extends AgentInputData, O extends AgentOutputData, C extends RunningFlowContext>{
public interface AgentGateway<I extends AgentInputData, O extends AgentOutputData, C extends RunningFlowContext> {
void launch();
default void receive(I inputData){
default void receive(I inputData) {
C finalInputData = adapter().parseInputData(inputData);
C outputContext = adapter().call(finalInputData);
O outputData = adapter().parseOutputData(outputContext);
@@ -22,5 +22,5 @@ public interface AgentGateway <I extends AgentInputData, O extends AgentOutputDa
*
* @return adapter实例
*/
AgentInteractionAdapter<I, O, C> adapter();
AgentInteractionAdapter<I, O, C> adapter();
}

View File

@@ -15,7 +15,7 @@ public abstract class AgentInteractionAdapter<I extends AgentInputData, O extend
protected AgentRunningFlow<C> agentRunningFlow = new AgentRunningFlow<>();
protected Map<Integer, List<MetaModule>> moduleOrderedMap = AgentConfigManager.INSTANCE.getModuleOrderedMap();
public C call(C finalInputData){
public C call(C finalInputData) {
return agentRunningFlow.launch(moduleOrderedMap, finalInputData);
}

View File

@@ -5,5 +5,5 @@ import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
public abstract class AgentInputData extends InteractionData{
public abstract class AgentInputData extends InteractionData {
}

View File

@@ -5,7 +5,7 @@ import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
public abstract class AgentOutputData extends InteractionData{
public abstract class AgentOutputData extends InteractionData {
protected int code;

View File

@@ -10,22 +10,22 @@ import java.util.stream.Collectors;
public final class AgentUtil {
public static boolean isAssignableFromAnnotation(Class<?> clazz,Class<? extends Annotation> targetAnnotation){
public static boolean isAssignableFromAnnotation(Class<?> clazz, Class<? extends Annotation> targetAnnotation) {
Set<Class<?>> visited = new HashSet<>();
return isAssignableFromAnnotation(clazz,targetAnnotation,visited);
return isAssignableFromAnnotation(clazz, targetAnnotation, visited);
}
private static boolean isAssignableFromAnnotation(Class<?> clazz,Class<? extends Annotation> targetAnnotation,Set<Class<?>> visited){
if (!visited.add(clazz)){
private static boolean isAssignableFromAnnotation(Class<?> clazz, Class<? extends Annotation> targetAnnotation, Set<Class<?>> visited) {
if (!visited.add(clazz)) {
return false;
}
if (clazz.isAnnotationPresent(targetAnnotation)){
if (clazz.isAnnotationPresent(targetAnnotation)) {
return true;
}
Annotation[] annotations = clazz.getAnnotations();
for (Annotation annotation : annotations) {
boolean ok = isAssignableFromAnnotation(annotation.annotationType(),targetAnnotation,visited);
if (ok){
boolean ok = isAssignableFromAnnotation(annotation.annotationType(), targetAnnotation, visited);
if (ok) {
return true;
}
}
@@ -63,7 +63,7 @@ public final class AgentUtil {
collectInterfaces(clazz, classes);
}
public static Set<Class<?>> getMethodAnnotationTypeSet(Class<? extends Annotation> clazz, Reflections reflections){
public static Set<Class<?>> getMethodAnnotationTypeSet(Class<? extends Annotation> clazz, Reflections reflections) {
Set<Method> methods = reflections.getMethodsAnnotatedWith(clazz);
return methods.stream()
.map(Method::getDeclaringClass)

View File

@@ -1,14 +1,14 @@
package work.slhaf.partner.api.chat.constant;
public class ChatConstant {
public enum ResponseStatus {
SUCCESS, FAILED
}
public static class Character {
public static final String USER = "user";
public static final String SYSTEM = "system";
public static final String ASSISTANT = "assistant";
}
public enum ResponseStatus {
SUCCESS, FAILED
}
}

View File

@@ -65,12 +65,12 @@ public class PrimaryChatResponse {
@Override
public String toString() {
return "UsageBean{" +
"prompt_tokens=" + prompt_tokens +
", completion_tokens=" + completion_tokens +
", total_tokens=" + total_tokens +
", prompt_cache_hit_tokens=" + prompt_cache_hit_tokens +
", prompt_cache_miss_tokens=" + prompt_cache_miss_tokens +
'}';
"prompt_tokens=" + prompt_tokens +
", completion_tokens=" + completion_tokens +
", total_tokens=" + total_tokens +
", prompt_cache_hit_tokens=" + prompt_cache_hit_tokens +
", prompt_cache_miss_tokens=" + prompt_cache_miss_tokens +
'}';
}
}

View File

@@ -6,7 +6,8 @@ import java.lang.reflect.Method;
import java.util.concurrent.Callable;
public class MyModuleProxyInterceptor {
public MyModuleProxyInterceptor() {}
public MyModuleProxyInterceptor() {
}
@RuntimeType
public Object intercept(@Origin Method method, @AllArguments Object[] allArguments, @SuperCall Callable<?> zuper, @This Object proxy) throws Exception {