refactor: 공용 클래스(MCP, Manifest, UseCase 등) lib 패키지로 이관 및 통합
All checks were successful
Deploy to OCIWP / deploy (push) Successful in 2m17s
All checks were successful
Deploy to OCIWP / deploy (push) Successful in 2m17s
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
package io.shinhanlife.dap.mcg.config;
|
package io.shinhanlife.dap.mcg.config;
|
||||||
|
|
||||||
import io.shinhanlife.dap.mcg.dto.ToolMetadata;
|
import io.shinhanlife.dap.lib.dto.ToolMetadata;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.data.redis.connection.RedisConnectionFactory;
|
import org.springframework.data.redis.connection.RedisConnectionFactory;
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ package io.shinhanlife.dap.mcg.guardrail;
|
|||||||
*/
|
*/
|
||||||
import io.shinhanlife.dap.mcg.resilience.FailureType;
|
import io.shinhanlife.dap.mcg.resilience.FailureType;
|
||||||
import io.shinhanlife.dap.mcg.resilience.ToolExecutionException;
|
import io.shinhanlife.dap.mcg.resilience.ToolExecutionException;
|
||||||
import io.shinhanlife.dap.mcg.dto.ToolMetadata;
|
import io.shinhanlife.dap.lib.dto.ToolMetadata;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ package io.shinhanlife.dap.mcg.guardrail;
|
|||||||
*/
|
*/
|
||||||
import io.shinhanlife.dap.mcg.resilience.FailureType;
|
import io.shinhanlife.dap.mcg.resilience.FailureType;
|
||||||
import io.shinhanlife.dap.mcg.resilience.ToolExecutionException;
|
import io.shinhanlife.dap.mcg.resilience.ToolExecutionException;
|
||||||
import io.shinhanlife.dap.mcg.dto.ToolMetadata;
|
import io.shinhanlife.dap.lib.dto.ToolMetadata;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ package io.shinhanlife.dap.mcg.presentation;
|
|||||||
*
|
*
|
||||||
* </pre>
|
* </pre>
|
||||||
*/
|
*/
|
||||||
import io.shinhanlife.dap.mcg.dto.ToolMetadata;
|
import io.shinhanlife.dap.lib.dto.ToolMetadata;
|
||||||
import io.shinhanlife.dap.mcg.registry.RedisRegistryService;
|
import io.shinhanlife.dap.mcg.registry.RedisRegistryService;
|
||||||
import io.shinhanlife.dap.mcg.service.ExecuteService;
|
import io.shinhanlife.dap.mcg.service.ExecuteService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import io.shinhanlife.dap.lib.adapter.dto.JsonRpcRequest;
|
|||||||
import io.shinhanlife.dap.lib.adapter.dto.JsonRpcResponse;
|
import io.shinhanlife.dap.lib.adapter.dto.JsonRpcResponse;
|
||||||
import io.shinhanlife.dap.lib.adapter.dto.Params;
|
import io.shinhanlife.dap.lib.adapter.dto.Params;
|
||||||
import io.shinhanlife.dap.mcg.config.GatewayFallbackProperties;
|
import io.shinhanlife.dap.mcg.config.GatewayFallbackProperties;
|
||||||
import io.shinhanlife.dap.mcg.dto.ToolMetadata;
|
import io.shinhanlife.dap.lib.dto.ToolMetadata;
|
||||||
import io.shinhanlife.dap.mcg.registry.RedisRegistryService;
|
import io.shinhanlife.dap.mcg.registry.RedisRegistryService;
|
||||||
import io.shinhanlife.dap.mcg.service.ExecuteService;
|
import io.shinhanlife.dap.mcg.service.ExecuteService;
|
||||||
import io.shinhanlife.dap.lib.mcp.security.SecurityProperties;
|
import io.shinhanlife.dap.lib.mcp.security.SecurityProperties;
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ package io.shinhanlife.dap.mcg.redis;
|
|||||||
*/
|
*/
|
||||||
import io.shinhanlife.dap.mcg.config.McpGatewayProperties;
|
import io.shinhanlife.dap.mcg.config.McpGatewayProperties;
|
||||||
import io.shinhanlife.dap.mcg.security.McpRequestContext;
|
import io.shinhanlife.dap.mcg.security.McpRequestContext;
|
||||||
import io.shinhanlife.dap.mcg.dto.ToolMetadata;
|
import io.shinhanlife.dap.lib.dto.ToolMetadata;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.ObjectProvider;
|
import org.springframework.beans.factory.ObjectProvider;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package io.shinhanlife.dap.mcg.registry;
|
package io.shinhanlife.dap.mcg.registry;
|
||||||
|
|
||||||
import io.shinhanlife.dap.mcg.dto.ToolMetadata;
|
import io.shinhanlife.dap.lib.dto.ToolMetadata;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
|
|||||||
@@ -18,8 +18,8 @@ package io.shinhanlife.dap.mcg.security;
|
|||||||
import io.shinhanlife.dap.mcg.config.McpGatewayProperties;
|
import io.shinhanlife.dap.mcg.config.McpGatewayProperties;
|
||||||
import io.shinhanlife.dap.mcg.resilience.FailureType;
|
import io.shinhanlife.dap.mcg.resilience.FailureType;
|
||||||
import io.shinhanlife.dap.mcg.resilience.ToolExecutionException;
|
import io.shinhanlife.dap.mcg.resilience.ToolExecutionException;
|
||||||
import io.shinhanlife.dap.mcg.dto.OperationType;
|
import io.shinhanlife.dap.lib.dto.OperationType;
|
||||||
import io.shinhanlife.dap.mcg.dto.ToolMetadata;
|
import io.shinhanlife.dap.lib.dto.ToolMetadata;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|||||||
@@ -17,11 +17,11 @@ package io.shinhanlife.dap.mcg.service;
|
|||||||
*/
|
*/
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
import io.shinhanlife.dap.mcg.dto.ToolMetadata;
|
import io.shinhanlife.dap.lib.dto.ToolMetadata;
|
||||||
import io.shinhanlife.dap.mcg.resilience.FailureType;
|
import io.shinhanlife.dap.mcg.resilience.FailureType;
|
||||||
import io.shinhanlife.dap.mcg.resilience.RetryPolicy;
|
import io.shinhanlife.dap.mcg.resilience.RetryPolicy;
|
||||||
import io.shinhanlife.dap.mcg.resilience.ToolExecutionException;
|
import io.shinhanlife.dap.mcg.resilience.ToolExecutionException;
|
||||||
import io.shinhanlife.dap.mcg.dto.OperationType;
|
import io.shinhanlife.dap.lib.dto.OperationType;
|
||||||
import io.shinhanlife.dap.mcg.config.McpGatewayProperties;
|
import io.shinhanlife.dap.mcg.config.McpGatewayProperties;
|
||||||
import io.shinhanlife.dap.mcg.guardrail.GuardrailService;
|
import io.shinhanlife.dap.mcg.guardrail.GuardrailService;
|
||||||
import io.shinhanlife.dap.mcg.security.McpRequestContext;
|
import io.shinhanlife.dap.mcg.security.McpRequestContext;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package io.shinhanlife.dap.mcg.service;
|
|||||||
|
|
||||||
import io.shinhanlife.dap.lib.mcp.security.SecurityProperties;
|
import io.shinhanlife.dap.lib.mcp.security.SecurityProperties;
|
||||||
import io.shinhanlife.dap.mcg.registry.RedisRegistryService;
|
import io.shinhanlife.dap.mcg.registry.RedisRegistryService;
|
||||||
import io.shinhanlife.dap.mcg.dto.ToolMetadata;
|
import io.shinhanlife.dap.lib.dto.ToolMetadata;
|
||||||
import io.shinhanlife.dap.mcg.config.GatewayFallbackProperties;
|
import io.shinhanlife.dap.mcg.config.GatewayFallbackProperties;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ package io.shinhanlife.dap.mcg.sync;
|
|||||||
import io.modelcontextprotocol.spec.McpSchema.ServerCapabilities;
|
import io.modelcontextprotocol.spec.McpSchema.ServerCapabilities;
|
||||||
import io.modelcontextprotocol.server.McpServer;
|
import io.modelcontextprotocol.server.McpServer;
|
||||||
import io.modelcontextprotocol.server.McpSyncServer;
|
import io.modelcontextprotocol.server.McpSyncServer;
|
||||||
import io.shinhanlife.dap.mcg.dto.ToolMetadata;
|
import io.shinhanlife.dap.lib.dto.ToolMetadata;
|
||||||
import io.shinhanlife.dap.mcg.sync.CustomWebMvcSseServerTransportProvider;
|
import io.shinhanlife.dap.mcg.sync.CustomWebMvcSseServerTransportProvider;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ package io.shinhanlife.dap.mcg.sync;
|
|||||||
*
|
*
|
||||||
* </pre>
|
* </pre>
|
||||||
*/
|
*/
|
||||||
import io.shinhanlife.dap.mcg.dto.ToolMetadata;
|
import io.shinhanlife.dap.lib.dto.ToolMetadata;
|
||||||
import io.shinhanlife.dap.mcg.service.ExecuteService;
|
import io.shinhanlife.dap.mcg.service.ExecuteService;
|
||||||
import io.modelcontextprotocol.server.McpServerFeatures;
|
import io.modelcontextprotocol.server.McpServerFeatures;
|
||||||
import io.modelcontextprotocol.spec.McpSchema;
|
import io.modelcontextprotocol.spec.McpSchema;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package io.shinhanlife.dap.mcg.sync;
|
package io.shinhanlife.dap.mcg.sync;
|
||||||
|
|
||||||
import io.shinhanlife.dap.mcg.dto.ToolMetadata;
|
import io.shinhanlife.dap.lib.dto.ToolMetadata;
|
||||||
import io.shinhanlife.dap.mcg.registry.RedisRegistryService;
|
import io.shinhanlife.dap.mcg.registry.RedisRegistryService;
|
||||||
import io.modelcontextprotocol.server.McpSyncServer;
|
import io.modelcontextprotocol.server.McpSyncServer;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ package io.shinhanlife.dap.mcg.tool.large;
|
|||||||
*
|
*
|
||||||
* </pre>
|
* </pre>
|
||||||
*/
|
*/
|
||||||
import io.shinhanlife.dap.mcg.dto.ToolMetadata;
|
import io.shinhanlife.dap.lib.dto.ToolMetadata;
|
||||||
import io.shinhanlife.dap.mcg.config.McpGatewayProperties;
|
import io.shinhanlife.dap.mcg.config.McpGatewayProperties;
|
||||||
import io.shinhanlife.dap.mcg.resilience.FailureType;
|
import io.shinhanlife.dap.mcg.resilience.FailureType;
|
||||||
import io.shinhanlife.dap.mcg.resilience.ToolExecutionException;
|
import io.shinhanlife.dap.mcg.resilience.ToolExecutionException;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
|
|||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import io.modelcontextprotocol.spec.McpSchema;
|
import io.modelcontextprotocol.spec.McpSchema;
|
||||||
import io.shinhanlife.dap.mcg.dto.ToolMetadata;
|
import io.shinhanlife.dap.lib.dto.ToolMetadata;
|
||||||
import io.shinhanlife.dap.mcg.sync.RegistryMcpToolSpecificationFactory;
|
import io.shinhanlife.dap.mcg.sync.RegistryMcpToolSpecificationFactory;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.shinhanlife.dap.mcg.dto;
|
package io.shinhanlife.dap.lib.dto;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @package io.shinhanlife.dap.mcg.dto
|
* @package io.shinhanlife.dap.mcg.dto
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.shinhanlife.dap.mcg.dto;
|
package io.shinhanlife.dap.lib.dto;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
@@ -63,6 +63,10 @@ public class ToolMetadata {
|
|||||||
@Builder.Default
|
@Builder.Default
|
||||||
private Boolean visible = true;
|
private Boolean visible = true;
|
||||||
|
|
||||||
|
// 활성화 여부
|
||||||
|
@Builder.Default
|
||||||
|
private Boolean enabled = true;
|
||||||
|
|
||||||
// 2-5. Redis 등록 여부 (UI 표출용)
|
// 2-5. Redis 등록 여부 (UI 표출용)
|
||||||
@Builder.Default
|
@Builder.Default
|
||||||
private Boolean isRegistered = true;
|
private Boolean isRegistered = true;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.shinhanlife.dap.mcc.manifest;
|
package io.shinhanlife.dap.lib.manifest;
|
||||||
|
|
||||||
/** Behaviour hints exposed by the Tool Service manifest. */
|
/** Behaviour hints exposed by the Tool Service manifest. */
|
||||||
public record ToolManifestAnnotations(
|
public record ToolManifestAnnotations(
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.shinhanlife.dap.mcc.manifest;
|
package io.shinhanlife.dap.lib.manifest;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.shinhanlife.dap.mcc.manifest;
|
package io.shinhanlife.dap.lib.manifest;
|
||||||
|
|
||||||
/** Operational metadata exposed by the Tool Service manifest. */
|
/** Operational metadata exposed by the Tool Service manifest. */
|
||||||
public record ToolManifestMeta(String version, long timeoutMillis, boolean enabled) {
|
public record ToolManifestMeta(String version, long timeoutMillis, boolean enabled) {
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.shinhanlife.dap.mcc.manifest;
|
package io.shinhanlife.dap.lib.manifest;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
package io.shinhanlife.dap.mcc.manifest;
|
package io.shinhanlife.dap.lib.manifest;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import io.shinhanlife.dap.lib.config.McpProperties;
|
import io.shinhanlife.dap.lib.config.McpProperties;
|
||||||
import io.shinhanlife.dap.mcc.dto.ToolMetadata;
|
import io.shinhanlife.dap.lib.dto.ToolMetadata;
|
||||||
import io.shinhanlife.dap.mcc.usecase.ToolRegistryHeartbeatSender;
|
import io.shinhanlife.dap.lib.usecase.ToolRegistryHeartbeatSender;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.security.MessageDigest;
|
import java.security.MessageDigest;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.shinhanlife.dap.mcc.mcp;
|
package io.shinhanlife.dap.lib.mcp;
|
||||||
|
|
||||||
/** Holds optional MCP headers for the lifetime of one HTTP request thread. */
|
/** Holds optional MCP headers for the lifetime of one HTTP request thread. */
|
||||||
public final class McpRequestHeaderContext {
|
public final class McpRequestHeaderContext {
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.shinhanlife.dap.mcc.mcp;
|
package io.shinhanlife.dap.lib.mcp;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import jakarta.servlet.FilterChain;
|
import jakarta.servlet.FilterChain;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.shinhanlife.dap.mcc.mcp;
|
package io.shinhanlife.dap.lib.mcp;
|
||||||
|
|
||||||
/** Optional request headers propagated from an MCP HTTP request to a Tool invocation. */
|
/** Optional request headers propagated from an MCP HTTP request to a Tool invocation. */
|
||||||
public record McpRequestHeaders(
|
public record McpRequestHeaders(
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.shinhanlife.dap.mcc.mcp;
|
package io.shinhanlife.dap.lib.mcp;
|
||||||
|
|
||||||
import io.modelcontextprotocol.server.transport.HttpServletStreamableServerTransportProvider;
|
import io.modelcontextprotocol.server.transport.HttpServletStreamableServerTransportProvider;
|
||||||
import org.springframework.boot.web.servlet.ServletRegistrationBean;
|
import org.springframework.boot.web.servlet.ServletRegistrationBean;
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
package io.shinhanlife.dap.mcc.mcp;
|
package io.shinhanlife.dap.lib.mcp;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import io.modelcontextprotocol.server.McpServerFeatures;
|
import io.modelcontextprotocol.server.McpServerFeatures;
|
||||||
import io.modelcontextprotocol.server.McpSyncServer;
|
import io.modelcontextprotocol.server.McpSyncServer;
|
||||||
import io.modelcontextprotocol.spec.McpSchema;
|
import io.modelcontextprotocol.spec.McpSchema;
|
||||||
import io.shinhanlife.dap.mcc.dto.ToolMetadata;
|
import io.shinhanlife.dap.lib.dto.ToolMetadata;
|
||||||
import io.shinhanlife.dap.mcc.presentation.BusinessToolController;
|
import io.shinhanlife.dap.mcc.presentation.BusinessToolController;
|
||||||
import io.shinhanlife.dap.mcc.usecase.ToolRegistryHeartbeatSender;
|
import io.shinhanlife.dap.lib.usecase.ToolRegistryHeartbeatSender;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.shinhanlife.dap.mcc.usecase;
|
package io.shinhanlife.dap.lib.usecase;
|
||||||
|
|
||||||
import io.shinhanlife.dap.lib.adapter.connector.LegacyEimsConnector;
|
import io.shinhanlife.dap.lib.adapter.connector.LegacyEimsConnector;
|
||||||
import io.shinhanlife.dap.lib.adapter.util.PiiMaskingUtils;
|
import io.shinhanlife.dap.lib.adapter.util.PiiMaskingUtils;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.shinhanlife.dap.mcc.usecase;
|
package io.shinhanlife.dap.lib.usecase;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -19,7 +19,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
|||||||
import io.shinhanlife.dap.lib.annotation.McpFunction;
|
import io.shinhanlife.dap.lib.annotation.McpFunction;
|
||||||
import io.shinhanlife.dap.lib.annotation.McpTool;
|
import io.shinhanlife.dap.lib.annotation.McpTool;
|
||||||
import io.shinhanlife.dap.lib.config.McpProperties;
|
import io.shinhanlife.dap.lib.config.McpProperties;
|
||||||
import io.shinhanlife.dap.mcc.dto.ToolMetadata;
|
import io.shinhanlife.dap.lib.dto.ToolMetadata;
|
||||||
import io.shinhanlife.dap.lib.util.ToolSchemaResolver;
|
import io.shinhanlife.dap.lib.util.ToolSchemaResolver;
|
||||||
import jakarta.annotation.PostConstruct;
|
import jakarta.annotation.PostConstruct;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
@@ -330,7 +330,7 @@ public class ToolScaffolder {
|
|||||||
import %s.dto.%sRequest;
|
import %s.dto.%sRequest;
|
||||||
import %s.dto.%sResponse;
|
import %s.dto.%sResponse;
|
||||||
import %s.usecase.%sUseCase;
|
import %s.usecase.%sUseCase;
|
||||||
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
|
import io.shinhanlife.dap.lib.usecase.AbstractMcpToolUseCase;
|
||||||
import %s.converter.%sConverter;
|
import %s.converter.%sConverter;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.shinhanlife.dap.mcc.presentation;
|
package io.shinhanlife.dap.lib.validation;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.networknt.schema.Error;
|
import com.networknt.schema.Error;
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
package io.shinhanlife.dap.mcc.dto;
|
|
||||||
|
|
||||||
import lombok.Getter;
|
|
||||||
import lombok.Setter;
|
|
||||||
import lombok.Builder;
|
|
||||||
import lombok.NoArgsConstructor;
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @package io.shinhanlife.dap.mcc.dto
|
|
||||||
* @className ToolMetadata
|
|
||||||
* @description AX HUB 시스템 처리 클래스
|
|
||||||
* @author 0986406
|
|
||||||
* @create 2026.09.01
|
|
||||||
* <pre>
|
|
||||||
* ---------- 개정이력 ----------
|
|
||||||
* 수정일 수정자 수정내용
|
|
||||||
* ---------- -------- ---------------------------
|
|
||||||
* 2026.09.01 0986406 최초생성
|
|
||||||
*
|
|
||||||
* </pre>
|
|
||||||
*/
|
|
||||||
@Getter
|
|
||||||
@Setter
|
|
||||||
@Builder
|
|
||||||
@NoArgsConstructor
|
|
||||||
@AllArgsConstructor
|
|
||||||
public class ToolMetadata {
|
|
||||||
// 1. Tool 기본 정보
|
|
||||||
private String uid; // UUID 형식의 고유 식별자
|
|
||||||
private String semver; // 버전 (예: 1.0.0)
|
|
||||||
private Long timeoutMillis;
|
|
||||||
private Boolean enabled;
|
|
||||||
private String displayName; // 사람이 읽는 라벨 (1-128자)
|
|
||||||
private String name; // MCP 서브툴 명칭 (64자 이하, 예: CustomerSearchTool)
|
|
||||||
private String description; // 툴의 목적 및 설명 (LLM 프롬프트에 활용 가능)
|
|
||||||
|
|
||||||
// 2. 파라미터 스키마 (JSON Schema 형태의 Map)
|
|
||||||
private Map<String, Object> parametersSchema;
|
|
||||||
|
|
||||||
// 2-0. 프론트엔드 UI용 함수별 프롬프트 매핑 (추가됨)
|
|
||||||
private Map<String, String> actionPrompts;
|
|
||||||
|
|
||||||
// 2-1. 도메인 부서 그룹명 (category_key, 슬러그 형식)
|
|
||||||
private String categoryKey;
|
|
||||||
private String endpoint;
|
|
||||||
private String podUrl;
|
|
||||||
private String integrationType;
|
|
||||||
private String mciServiceId;
|
|
||||||
|
|
||||||
|
|
||||||
@Builder.Default
|
|
||||||
private Boolean visible = true;
|
|
||||||
|
|
||||||
@Builder.Default
|
|
||||||
private Boolean isRegistered = true;
|
|
||||||
|
|
||||||
@Builder.Default
|
|
||||||
private Boolean requiresApproval = false;
|
|
||||||
|
|
||||||
@Builder.Default
|
|
||||||
private Boolean readOnlyHint = false;
|
|
||||||
|
|
||||||
@Builder.Default
|
|
||||||
private Boolean destructiveHint = false;
|
|
||||||
|
|
||||||
@Builder.Default
|
|
||||||
private Boolean idempotentHint = false;
|
|
||||||
|
|
||||||
@Builder.Default
|
|
||||||
private Boolean openWorldHint = false;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -18,10 +18,11 @@ package io.shinhanlife.dap.mcc.presentation;
|
|||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.networknt.schema.Error;
|
import com.networknt.schema.Error;
|
||||||
import io.shinhanlife.dap.lib.annotation.McpFunction;
|
import io.shinhanlife.dap.lib.annotation.McpFunction;
|
||||||
|
import io.shinhanlife.dap.lib.validation.ToolArgumentSchemaValidator;
|
||||||
import io.shinhanlife.dap.lib.annotation.McpTool;
|
import io.shinhanlife.dap.lib.annotation.McpTool;
|
||||||
import io.shinhanlife.dap.lib.config.McpProperties;
|
import io.shinhanlife.dap.lib.config.McpProperties;
|
||||||
import io.shinhanlife.dap.mcc.dto.ToolMetadata;
|
import io.shinhanlife.dap.lib.dto.ToolMetadata;
|
||||||
import io.shinhanlife.dap.mcc.usecase.ToolRegistryHeartbeatSender;
|
import io.shinhanlife.dap.lib.usecase.ToolRegistryHeartbeatSender;
|
||||||
import io.shinhanlife.dap.lib.util.ToolSchemaResolver;
|
import io.shinhanlife.dap.lib.util.ToolSchemaResolver;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package io.shinhanlife.dap.mcc.presentation;
|
package io.shinhanlife.dap.mcc.presentation;
|
||||||
|
|
||||||
import io.shinhanlife.dap.mcc.manifest.ToolManifestResponse;
|
import io.shinhanlife.dap.lib.manifest.ToolManifestResponse;
|
||||||
import io.shinhanlife.dap.mcc.manifest.ToolManifestService;
|
import io.shinhanlife.dap.lib.manifest.ToolManifestService;
|
||||||
import org.springframework.http.HttpHeaders;
|
import org.springframework.http.HttpHeaders;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.shinhanlife.dap.mcc.manifest;
|
package io.shinhanlife.dap.lib.manifest;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||||
@@ -6,7 +6,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
|
|||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import io.shinhanlife.dap.lib.config.McpProperties;
|
import io.shinhanlife.dap.lib.config.McpProperties;
|
||||||
import io.shinhanlife.dap.mcc.dto.ToolMetadata;
|
import io.shinhanlife.dap.lib.dto.ToolMetadata;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.shinhanlife.dap.mcc.mcp;
|
package io.shinhanlife.dap.lib.mcp;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertNull;
|
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||||
@@ -11,7 +11,7 @@ import static org.mockito.Mockito.when;
|
|||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import io.modelcontextprotocol.server.McpSyncServer;
|
import io.modelcontextprotocol.server.McpSyncServer;
|
||||||
import io.shinhanlife.dap.mcc.presentation.BusinessToolController;
|
import io.shinhanlife.dap.mcc.presentation.BusinessToolController;
|
||||||
import io.shinhanlife.dap.mcc.usecase.ToolRegistryHeartbeatSender;
|
import io.shinhanlife.dap.lib.usecase.ToolRegistryHeartbeatSender;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.shinhanlife.dap.mcc.mcp;
|
package io.shinhanlife.dap.lib.mcp;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
|
|||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import io.shinhanlife.dap.lib.validation.ToolArgumentSchemaValidator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ package io.shinhanlife.dap.mcc.biz.cmm.usecase.impl;
|
|||||||
* </pre>
|
* </pre>
|
||||||
*/
|
*/
|
||||||
import io.shinhanlife.dap.mcc.biz.cmm.usecase.BalanceUseCase;
|
import io.shinhanlife.dap.mcc.biz.cmm.usecase.BalanceUseCase;
|
||||||
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
|
import io.shinhanlife.dap.lib.usecase.AbstractMcpToolUseCase;
|
||||||
import io.shinhanlife.dap.mcc.biz.cmm.dto.BalanceRequest;
|
import io.shinhanlife.dap.mcc.biz.cmm.dto.BalanceRequest;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package io.shinhanlife.dap.mcc.biz.cmm.usecase.impl;
|
|||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import io.shinhanlife.dap.mcc.biz.cmm.usecase.BillingProcessUseCase;
|
import io.shinhanlife.dap.mcc.biz.cmm.usecase.BillingProcessUseCase;
|
||||||
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
|
import io.shinhanlife.dap.lib.usecase.AbstractMcpToolUseCase;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import io.shinhanlife.dap.mcc.biz.cmm.dto.BillingProcessRequest;
|
import io.shinhanlife.dap.mcc.biz.cmm.dto.BillingProcessRequest;
|
||||||
import io.shinhanlife.dap.mcc.biz.cmm.dto.BillingStatusRequest;
|
import io.shinhanlife.dap.mcc.biz.cmm.dto.BillingStatusRequest;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package io.shinhanlife.dap.mcc.biz.cmm.usecase.impl;
|
package io.shinhanlife.dap.mcc.biz.cmm.usecase.impl;
|
||||||
|
|
||||||
import io.shinhanlife.dap.mcc.biz.cmm.usecase.BondIssueUseCase;
|
import io.shinhanlife.dap.mcc.biz.cmm.usecase.BondIssueUseCase;
|
||||||
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
|
import io.shinhanlife.dap.lib.usecase.AbstractMcpToolUseCase;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import io.shinhanlife.dap.mcc.biz.cmm.dto.BondCheckRequest;
|
import io.shinhanlife.dap.mcc.biz.cmm.dto.BondCheckRequest;
|
||||||
import io.shinhanlife.dap.mcc.biz.cmm.dto.BondIssueRequest;
|
import io.shinhanlife.dap.mcc.biz.cmm.dto.BondIssueRequest;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package io.shinhanlife.dap.mcc.biz.cmm.usecase.impl;
|
package io.shinhanlife.dap.mcc.biz.cmm.usecase.impl;
|
||||||
|
|
||||||
import io.shinhanlife.dap.mcc.biz.cmm.usecase.CommonUtilityUseCase;
|
import io.shinhanlife.dap.mcc.biz.cmm.usecase.CommonUtilityUseCase;
|
||||||
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
|
import io.shinhanlife.dap.lib.usecase.AbstractMcpToolUseCase;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import io.shinhanlife.dap.mcc.biz.cmm.dto.LeaveCountRequest;
|
import io.shinhanlife.dap.mcc.biz.cmm.dto.LeaveCountRequest;
|
||||||
import io.shinhanlife.dap.mcc.biz.cmm.dto.VacationRegisterRequest;
|
import io.shinhanlife.dap.mcc.biz.cmm.dto.VacationRegisterRequest;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package io.shinhanlife.dap.mcc.biz.cmm.usecase.impl;
|
package io.shinhanlife.dap.mcc.biz.cmm.usecase.impl;
|
||||||
|
|
||||||
import io.shinhanlife.dap.mcc.biz.cmm.usecase.ContractInquiryUseCase;
|
import io.shinhanlife.dap.mcc.biz.cmm.usecase.ContractInquiryUseCase;
|
||||||
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
|
import io.shinhanlife.dap.lib.usecase.AbstractMcpToolUseCase;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import io.shinhanlife.dap.mcc.biz.cmm.dto.ContractDetailRequest;
|
import io.shinhanlife.dap.mcc.biz.cmm.dto.ContractDetailRequest;
|
||||||
import io.shinhanlife.dap.mcc.biz.cmm.dto.ContractStatusRequest;
|
import io.shinhanlife.dap.mcc.biz.cmm.dto.ContractStatusRequest;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package io.shinhanlife.dap.mcc.biz.cmm.usecase.impl;
|
package io.shinhanlife.dap.mcc.biz.cmm.usecase.impl;
|
||||||
|
|
||||||
import io.shinhanlife.dap.mcc.biz.cmm.usecase.CustomerInfoUseCase;
|
import io.shinhanlife.dap.mcc.biz.cmm.usecase.CustomerInfoUseCase;
|
||||||
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
|
import io.shinhanlife.dap.lib.usecase.AbstractMcpToolUseCase;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import io.shinhanlife.dap.mcc.biz.cmm.dto.CustomerDetailRequest;
|
import io.shinhanlife.dap.mcc.biz.cmm.dto.CustomerDetailRequest;
|
||||||
import io.shinhanlife.dap.mcc.biz.cmm.dto.CustomerGradeRequest;
|
import io.shinhanlife.dap.mcc.biz.cmm.dto.CustomerGradeRequest;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package io.shinhanlife.dap.mcc.biz.cmm.usecase.impl;
|
package io.shinhanlife.dap.mcc.biz.cmm.usecase.impl;
|
||||||
|
|
||||||
import io.shinhanlife.dap.mcc.biz.cmm.usecase.TemplateUtilityUseCase;
|
import io.shinhanlife.dap.mcc.biz.cmm.usecase.TemplateUtilityUseCase;
|
||||||
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
|
import io.shinhanlife.dap.lib.usecase.AbstractMcpToolUseCase;
|
||||||
import io.shinhanlife.dap.mcc.biz.cmm.dto.TemplateDownloadRequest;
|
import io.shinhanlife.dap.mcc.biz.cmm.dto.TemplateDownloadRequest;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package io.shinhanlife.dap.mcc.biz.smp.usecase.impl;
|
|||||||
import io.shinhanlife.dap.mcc.biz.smp.dto.DailyQuoteRequest;
|
import io.shinhanlife.dap.mcc.biz.smp.dto.DailyQuoteRequest;
|
||||||
import io.shinhanlife.dap.mcc.biz.smp.dto.DailyQuoteResponse;
|
import io.shinhanlife.dap.mcc.biz.smp.dto.DailyQuoteResponse;
|
||||||
import io.shinhanlife.dap.mcc.biz.smp.usecase.DailyQuoteToolUseCase;
|
import io.shinhanlife.dap.mcc.biz.smp.usecase.DailyQuoteToolUseCase;
|
||||||
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
|
import io.shinhanlife.dap.lib.usecase.AbstractMcpToolUseCase;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package io.shinhanlife.dap.mcc.biz.smp.usecase.impl;
|
|||||||
import io.shinhanlife.dap.mcc.biz.smp.dto.ExchangeRateRequest;
|
import io.shinhanlife.dap.mcc.biz.smp.dto.ExchangeRateRequest;
|
||||||
import io.shinhanlife.dap.mcc.biz.smp.dto.ExchangeRateResponse;
|
import io.shinhanlife.dap.mcc.biz.smp.dto.ExchangeRateResponse;
|
||||||
import io.shinhanlife.dap.mcc.biz.smp.usecase.ExchangeRateToolUseCase;
|
import io.shinhanlife.dap.mcc.biz.smp.usecase.ExchangeRateToolUseCase;
|
||||||
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
|
import io.shinhanlife.dap.lib.usecase.AbstractMcpToolUseCase;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.client.RestClient;
|
import org.springframework.web.client.RestClient;
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package io.shinhanlife.dap.mcc.biz.smp.usecase.impl;
|
|||||||
import io.shinhanlife.dap.mcc.biz.smp.dto.TeamMemberRequest;
|
import io.shinhanlife.dap.mcc.biz.smp.dto.TeamMemberRequest;
|
||||||
import io.shinhanlife.dap.mcc.biz.smp.dto.TeamMemberResponse;
|
import io.shinhanlife.dap.mcc.biz.smp.dto.TeamMemberResponse;
|
||||||
import io.shinhanlife.dap.mcc.biz.smp.usecase.TeamMemberUseCase;
|
import io.shinhanlife.dap.mcc.biz.smp.usecase.TeamMemberUseCase;
|
||||||
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
|
import io.shinhanlife.dap.lib.usecase.AbstractMcpToolUseCase;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package io.shinhanlife.dap.mcc.biz.smp.usecase.impl;
|
|||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import io.shinhanlife.dap.mcc.biz.smp.usecase.WeatherToolUseCase;
|
import io.shinhanlife.dap.mcc.biz.smp.usecase.WeatherToolUseCase;
|
||||||
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
|
import io.shinhanlife.dap.lib.usecase.AbstractMcpToolUseCase;
|
||||||
import io.shinhanlife.dap.mcc.biz.smp.dto.WeatherRequest;
|
import io.shinhanlife.dap.mcc.biz.smp.dto.WeatherRequest;
|
||||||
import io.shinhanlife.dap.mcc.biz.smp.dto.WeatherResponse;
|
import io.shinhanlife.dap.mcc.biz.smp.dto.WeatherResponse;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import io.shinhanlife.dap.lib.annotation.McpFunction;
|
|||||||
import io.shinhanlife.dap.lib.util.JsonSchemaGenerator;
|
import io.shinhanlife.dap.lib.util.JsonSchemaGenerator;
|
||||||
import io.shinhanlife.dap.lib.util.ToolSchemaResolver;
|
import io.shinhanlife.dap.lib.util.ToolSchemaResolver;
|
||||||
import io.shinhanlife.dap.mcc.biz.cmm.usecase.impl.ClaimSearchSchemaSampleUseCaseImpl;
|
import io.shinhanlife.dap.mcc.biz.cmm.usecase.impl.ClaimSearchSchemaSampleUseCaseImpl;
|
||||||
import io.shinhanlife.dap.mcc.presentation.ToolArgumentSchemaValidator;import io.shinhanlife.dap.mcc.biz.cmm.usecase.ClaimSearchSchemaSampleUseCase;
|
import io.shinhanlife.dap.lib.validation.ToolArgumentSchemaValidator;import io.shinhanlife.dap.mcc.biz.cmm.usecase.ClaimSearchSchemaSampleUseCase;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package io.shinhanlife.dap.mcc.biz.sms.usecase.impl;
|
package io.shinhanlife.dap.mcc.biz.sms.usecase.impl;
|
||||||
|
|
||||||
import io.shinhanlife.dap.mcc.biz.sms.usecase.SmsToolUseCase;
|
import io.shinhanlife.dap.mcc.biz.sms.usecase.SmsToolUseCase;
|
||||||
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
|
import io.shinhanlife.dap.lib.usecase.AbstractMcpToolUseCase;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import io.shinhanlife.dap.mcc.biz.sms.converter.SmsLegacyConverter;
|
import io.shinhanlife.dap.mcc.biz.sms.converter.SmsLegacyConverter;
|
||||||
import io.shinhanlife.dap.mcc.biz.sms.dto.SmsSendRequest;
|
import io.shinhanlife.dap.mcc.biz.sms.dto.SmsSendRequest;
|
||||||
|
|||||||
Reference in New Issue
Block a user