From 1b9d6ef57d42abc80a861339a172d3b7dbf18e34 Mon Sep 17 00:00:00 2001 From: jade Date: Sun, 12 Jul 2026 15:30:06 +0900 Subject: [PATCH] feat: Premium Dark Theme UI redesign for all admin pages - index.html: Complete redesign with deep zinc-950 background, card-based dashboard, neon blue accents - catalog.html: Full rewrite with dark theme, styled parameter tables with visible borders, tool cards - playground.html: Full rewrite with dark theme, visible input fields, gradient Execute button with glow effect - scaffold.html: CSS variables updated to dark theme (zinc-900 backgrounds, zinc-100 text, blue accents) - ScaffoldingController.java: Added listModules API for dynamic module dropdown --- .../presentation/ScaffoldingController.java | 21 + .../main/resources/static/admin/scaffold.html | 521 +++++++++------- .../src/main/resources/static/catalog.html | 354 ++++------- .../src/main/resources/static/index.html | 558 ++++------------- .../src/main/resources/static/playground.html | 566 ++++++------------ 5 files changed, 749 insertions(+), 1271 deletions(-) diff --git a/axhub-gateway/src/main/java/io/shinhanlife/axhub/biz/mcp/gateway/presentation/ScaffoldingController.java b/axhub-gateway/src/main/java/io/shinhanlife/axhub/biz/mcp/gateway/presentation/ScaffoldingController.java index 96dff74..639699e 100644 --- a/axhub-gateway/src/main/java/io/shinhanlife/axhub/biz/mcp/gateway/presentation/ScaffoldingController.java +++ b/axhub-gateway/src/main/java/io/shinhanlife/axhub/biz/mcp/gateway/presentation/ScaffoldingController.java @@ -4,6 +4,10 @@ import io.shinhanlife.axhub.common.util.PodScaffolder; import io.shinhanlife.axhub.common.util.ToolScaffolder; import org.springframework.web.bind.annotation.*; import java.util.Map; +import java.util.List; +import java.util.Arrays; +import java.util.stream.Collectors; +import java.io.File; @RestController @RequestMapping("/api/v1/scaffold") @@ -59,4 +63,21 @@ public class ScaffoldingController { return "오류 발생: " + e.getMessage(); } } + + @GetMapping("/modules") + public List listModules() { + try { + String sourceDir = System.getenv("AXHUB_SOURCE_DIR"); + if (sourceDir == null) sourceDir = System.getProperty("user.dir"); + + File dir = new File(sourceDir); + File[] files = dir.listFiles(f -> f.isDirectory() && f.getName().startsWith("axhub-tool-") && !f.getName().equals("axhub-tool-core")); + + if (files == null) return List.of("axhub-tool-other"); + + return Arrays.stream(files).map(File::getName).sorted().collect(Collectors.toList()); + } catch (Exception e) { + return List.of("axhub-tool-other"); + } + } } diff --git a/axhub-gateway/src/main/resources/static/admin/scaffold.html b/axhub-gateway/src/main/resources/static/admin/scaffold.html index e65cbfb..6f6e778 100644 --- a/axhub-gateway/src/main/resources/static/admin/scaffold.html +++ b/axhub-gateway/src/main/resources/static/admin/scaffold.html @@ -1,87 +1,82 @@ - + - 신한라이프 AXHUB Developer Portal - - - - + AX HUB Developer Portal + + + + + @@ -213,20 +286,20 @@
-
+
@@ -237,25 +310,27 @@
- - + +
- - -
Gateway 라우팅 및 Local 실행 시 사용할 고유 포트 번호입니다.
+ + +
Unique port for Gateway routing and local development.
- - + +
- - + +
- +
+ +
@@ -264,104 +339,108 @@
- - -
클래스명 생성에 사용됩니다. (ExchangeRateService 등)
+ + +
Used for class generation (ExchangeRateService).
- - + +
- - -
AI 에이전트가 이 설명을 보고 툴 호출 여부를 결정하므로 상세히 적어주세요.
+ + +
Critical for AI agent intent matching. Be descriptive.
- - + + - - - - + + + +
- +
- - -
코드가 생성될 대상 프로젝트(Pod) 폴더명입니다.
+ + +
Destination Pod directory.
- + -
Gateway에서 자동 라우팅될지 여부입니다.
+
Controls dynamic routing exposure.
- - + +
- - + +
- +
+ +
-
+
-
현재 시스템에 라우팅 가능한 Tool 목록입니다.
- Redis에 등록되지 않은(비공개) Tool도 포함되어 조회됩니다. +
Active Tools
+
Tools dynamically registered in the Gateway.
- + - - + +
- - +
+ - - - - - + + + + + - +
그룹서브툴 이름설명Pod 모듈인터페이스 (ID)CategoryTool NameDescriptionPodInterface
데이터를 불러오는 중입니다...Loading data...
@@ -380,38 +459,38 @@