package com.vincent.rsf.server.ai.service.impl; import com.vincent.rsf.server.ai.config.AiDefaults; import com.vincent.rsf.server.ai.dto.AiResolvedConfig; import com.vincent.rsf.server.ai.service.AiConfigResolverService; import com.vincent.rsf.server.ai.service.AiMcpMountService; import com.vincent.rsf.server.ai.service.AiParamService; import com.vincent.rsf.server.ai.service.AiPromptService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; @Service @RequiredArgsConstructor public class AiConfigResolverServiceImpl implements AiConfigResolverService { private final AiParamService aiParamService; private final AiPromptService aiPromptService; private final AiMcpMountService aiMcpMountService; @Override public AiResolvedConfig resolve(String promptCode) { String finalPromptCode = StringUtils.hasText(promptCode) ? promptCode : AiDefaults.DEFAULT_PROMPT_CODE; return AiResolvedConfig.builder() .promptCode(finalPromptCode) .aiParam(aiParamService.getActiveParam()) .prompt(aiPromptService.getActivePrompt(finalPromptCode)) .mcpMounts(aiMcpMountService.listActiveMounts()) .build(); } }