diff --git a/.gitignore b/.gitignore
index b83d222..1e75623 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,40 @@
-/target/
+# Compiled class file
+*.class
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.nar
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+replay_pid*
+
+# Build folders
+target/
+backend/target/
+
+# Frontend
+frontend/node_modules/
+frontend/dist/
+
+# IDE
+.idea/
+*.iml
+
+# Local Dev Configs (Do not commit passwords!)
+application-dev.yml
+*-dev.yml
diff --git a/README.md b/README.md
index 922f476..fed404a 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,160 @@
-# enterprise-ai-agent-gateway
-企业级 AI 智能体网关
+# Enterprise AI Agent Gateway (企业级 AI 智能体网关)
+
+🌍 *[English Version Below](#english-version)*
+
+**Enterprise AI Agent Gateway** 是一个定位于大模型(LLM/AI Agent)与企业老旧业务系统(Legacy Systems)之间的安全中间件与协议转换枢纽。
+
+在企业内部署 AI Agent 时,直接让 LLM 调用复杂的企业内网 API 存在极大的**数据泄露风险**、**越权风险**以及由于老旧系统返回冗余数据而导致的 **LLM Token 灾难消耗**问题。本项目通过提供轻量级的前端控制面与高性能的后端数据面,完美解决了这些痛点。
+
+---
+
+## 🌟 核心特性 (Key Features)
+
+* 🛡️ **纯粹的数据洗涤沙箱 (GraalVM Data Washing)**:内置安全隔离的 GraalVM Polyglot 引擎,允许管理员为主机 API 配置动态 JavaScript 洗涤脚本,在网关层将数百 KB 的冗余老旧 JSON 裁剪为只剩核心业务字段的极致精简 Payload,大幅节省 LLM Token。
+* ⛓️ **高扩展责任链架构 (Filter Chain)**:采用标准的 GatewayContext 穿透全链路,内置鉴权防刷 (Redis)、权限穿透 (Identity OBO)、危险动作人工挂起 (HITL Suspender) 以及全异步数据审计 (Async Audit)。
+* 🔌 **多协议执行策略 (Protocol Strategy)**:不仅支持基础的 HTTP 代理透传,底层执行器已完全抽象为 `ExecutionStrategy` 策略模式,未来从 HTTP 无缝切换/并存至 Dubbo、Spring Cloud Feign 毫无架构包袱。
+* ⚡ **极速内存直读 (Caffeine Local Cache)**:数据面网关对 API 配置信息的读取不会疯狂查询 DB,而是通过 Caffeine 提供带 TTL 的本地高速缓存。
+* 🎨 **开箱即用的控制台 (Control Plane)**:内置 Vue3 + Vite + Element Plus 编写的现代化管理后台,可以实现租户鉴权发放、工具注册配置、清洗脚本在线测试及全生命周期审计日志的可视化检索。
+
+---
+
+## 🛠️ 技术栈 (Tech Stack)
+
+* **后端 (Data Plane & Control Plane API)**
+ * Java 17 / 21
+ * Spring Boot 3.2.x
+ * GraalVM Polyglot (JavaScript Sandbox)
+ * MyBatis-Plus (MySQL 8.0)
+ * Caffeine & Redis
+ * OkHttp3 (HTTP Execution Proxy)
+* **前端 (Control Plane UI)**
+ * Vue 3 (Composition API)
+ * Vite 5
+ * Element Plus
+ * Axios & Vue Router
+
+---
+
+## 📁 项目结构 (Monorepo Structure)
+
+```text
+enterprise-ai-agent-gateway/
+├── backend/ # Java Spring Boot 后端工程
+│ ├── pom.xml
+│ └── src/main/
+│ ├── java/.../gateway/
+│ │ ├── controller/ # 管理台 CRUD API & 代理网关入口 API
+│ │ ├── engine/ # GraalVM / Cache 引擎组件
+│ │ ├── filter/ # 核心责任链路拦截器
+│ │ ├── model/ # 数据库实体
+│ │ └── service/ # 业务逻辑与执行策略抽象
+│ └── resources/
+│ ├── application.yml # 配置文件
+│ └── schema.sql # 数据库初始化建表脚本
+│
+└── frontend/ # Vue 3 管理台前端工程
+ ├── package.json
+ ├── vite.config.js
+ └── src/
+ ├── api/ # 后端接口 Axios 封装
+ ├── views/ # 管理台视图 (Tenant, Tool, Script, Audit)
+ └── App.vue # 侧边栏整体布局
+```
+
+---
+
+## 🚀 快速开始 (Quick Start)
+
+### 1. 数据库准备
+* 运行 MySQL 8.x 服务。
+* 创建数据库 `db_agent_gateway`。
+* 执行 `backend/src/main/resources/schema.sql` 完成表结构与测试数据的初始化。
+
+### 2. 启动后端 (Backend)
+* 修改 `backend/src/main/resources/application.yml` 中的数据库账号密码及 Redis 配置(支持无 Redis 本地优雅降级)。
+* 通过 IDE 或 Maven 启动应用:
+```bash
+cd backend
+mvn spring-boot:run
+```
+* 后端服务默认运行于 `http://localhost:8080`。
+
+### 3. 启动管理后台 (Frontend)
+需要 Node.js 环境 (推荐 v18+)。
+```bash
+cd frontend
+npm install
+npm run dev
+```
+* 浏览器访问 `http://localhost:5173` 进入 AI Gateway 管理控制台。
+
+### 4. 链路测试 (API Invocation Test)
+通过终端向网关数据面发起 API 请求验证洗涤链路(确保请求头携带控制台分配的对应 `X-App-Key`):
+```bash
+curl -X GET 'http://localhost:8080/api/v1/gw/invoke/get_time' \
+ -H "X-App-Key: test_key" --noproxy '*'
+```
+随后你可以在控制台的「审计日志」页面看到刚刚这笔调用的清洗前后比对!
+
+---
+---
+
+
+
+# Enterprise AI Agent Gateway
+
+**Enterprise AI Agent Gateway** is a secure middleware and protocol conversion hub positioned between Large Language Models (LLM / AI Agents) and legacy enterprise systems.
+
+When deploying AI Agents within an enterprise, allowing LLMs to directly invoke complex intranet APIs poses significant **data leakage risks**, **unauthorized access risks**, and **catastrophic LLM Token consumption** caused by redundant data returned by outdated systems. This project perfectly solves these pain points by providing a lightweight frontend Control Plane and a high-performance backend Data Plane.
+
+---
+
+## 🌟 Key Features
+
+* 🛡️ **GraalVM Data Washing Sandbox**: Built-in securely isolated GraalVM Polyglot engine, allowing administrators to configure dynamic JavaScript washing scripts for host APIs. At the gateway layer, hundreds of KBs of redundant legacy JSON can be trimmed down to a minimal payload containing only core business fields, drastically saving LLM Tokens.
+* ⛓️ **Highly Extensible Context Filter Chain**: Utilizes a standard `GatewayContext` penetrating the entire traffic chain, with built-in configurations for auth & rate limiting (Redis), Identity OBO (On-Behalf-Of), Human-In-The-Loop Suspender (for WRITE risky actions), and fully asynchronous data auditing.
+* 🔌 **Multi-Protocol Execution Strategy**: Not only supports basic HTTP proxy passthrough; the underlying executor is fully abstracted into an `ExecutionStrategy` pattern. Seamless switching or coexisting with Dubbo or Spring Cloud Feign in the future requires zero architectural burden.
+* ⚡ **Lightning-Fast Memory Read**: Configuration fetching on the high-concurrency Data Plane does not bombard the DB. Instead, it relies on Caffeine to provide TTL-based local high-speed caching.
+* 🎨 **Out-of-the-Box Control Panel**: A modern admin backend written in Vue3 + Vite + Element Plus is included, offering visual management for tenant auth, tool registry, online wash script testing, and full-lifecycle audit log retrieval.
+
+---
+
+## 🛠️ Tech Stack
+
+* **Backend (Data Plane & Control Plane API)**: Java 21, Spring Boot 3.2.x, GraalVM Polyglot (JS Sandbox), MyBatis-Plus (MySQL 8), Caffeine cache, OkHttp3.
+* **Frontend (Control Plane UI)**: Vue 3 (Composition API), Vite 5, Element Plus, Axios, Vue Router.
+
+---
+
+## 🚀 Quick Start
+
+### 1. Database Setup
+* Run MySQL 8.x.
+* Create a database named `db_agent_gateway`.
+* Execute `backend/src/main/resources/schema.sql` to initialize tables and test data.
+
+### 2. Start Backend
+* Update DB and Redis credentials in `backend/src/main/resources/application.yml` (supports graceful degradation if local Redis is down).
+* Run the application:
+```bash
+cd backend
+mvn spring-boot:run
+```
+* The backend runs on `http://localhost:8080` by default.
+
+### 3. Start Frontend Console
+Requires Node.js (v18+ recommended).
+```bash
+cd frontend
+npm install
+npm run dev
+```
+* Access `http://localhost:5173` in your browser to view the admin console.
+
+### 4. End-to-End Test
+Send a request to the Data Plane to verify the washing chain (ensure to include the valid `X-App-Key` allocated in the console):
+```bash
+curl -X GET 'http://localhost:8080/api/v1/gw/invoke/get_time' \
+ -H "X-App-Key: test_key" --noproxy '*'
+```
+You can instantly view the before-and-after payload contrast of this transaction in the "Audit Log" page of the Admin Console!
diff --git a/pom.xml b/backend/pom.xml
similarity index 100%
rename from pom.xml
rename to backend/pom.xml
diff --git a/src/main/java/com/cicc/enterprise/gateway/GatewayApplication.java b/backend/src/main/java/com/cicc/enterprise/gateway/GatewayApplication.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/GatewayApplication.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/GatewayApplication.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/config/MybatisPlusConfig.java b/backend/src/main/java/com/cicc/enterprise/gateway/config/MybatisPlusConfig.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/config/MybatisPlusConfig.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/config/MybatisPlusConfig.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/config/RedisConfig.java b/backend/src/main/java/com/cicc/enterprise/gateway/config/RedisConfig.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/config/RedisConfig.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/config/RedisConfig.java
diff --git a/backend/src/main/java/com/cicc/enterprise/gateway/controller/ControlPlaneAdminController.java b/backend/src/main/java/com/cicc/enterprise/gateway/controller/ControlPlaneAdminController.java
new file mode 100644
index 0000000..07d8283
--- /dev/null
+++ b/backend/src/main/java/com/cicc/enterprise/gateway/controller/ControlPlaneAdminController.java
@@ -0,0 +1,142 @@
+package com.cicc.enterprise.gateway.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.cicc.enterprise.gateway.model.*;
+import com.cicc.enterprise.gateway.service.*;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/api/v1/admin")
+@RequiredArgsConstructor
+@CrossOrigin(origins = "*")
+public class ControlPlaneAdminController {
+
+ private final AiTenantService tenantService;
+ private final AiToolRegistryService toolRegistryService;
+ private final AiWashScriptService washScriptService;
+ private final AiAuditLogService auditLogService;
+
+ // ================== Tenant CRUD ==================
+
+ @GetMapping("/tenant")
+ public List listTenants() {
+ return tenantService.list();
+ }
+
+ @PostMapping("/tenant")
+ public AiTenant createTenant(@RequestBody AiTenant tenant) {
+ tenantService.save(tenant);
+ return tenant;
+ }
+
+ @PutMapping("/tenant/{id}")
+ public AiTenant updateTenant(@PathVariable Long id, @RequestBody AiTenant tenant) {
+ tenant.setId(id);
+ tenantService.updateById(tenant);
+ return tenant;
+ }
+
+ @DeleteMapping("/tenant/{id}")
+ public void deleteTenant(@PathVariable Long id) {
+ tenantService.removeById(id);
+ }
+
+ // ================== Tool Registry CRUD ==================
+
+ @GetMapping("/tool")
+ public List listTools() {
+ return toolRegistryService.list();
+ }
+
+ @PostMapping("/tool")
+ public AiToolRegistry createTool(@RequestBody AiToolRegistry tool) {
+ toolRegistryService.save(tool);
+ return tool;
+ }
+
+ @PutMapping("/tool/{id}")
+ public AiToolRegistry updateTool(@PathVariable Long id, @RequestBody AiToolRegistry tool) {
+ tool.setId(id);
+ toolRegistryService.updateById(tool);
+ return tool;
+ }
+
+ @DeleteMapping("/tool/{id}")
+ public void deleteTool(@PathVariable Long id) {
+ toolRegistryService.removeById(id);
+ }
+
+ // ================== Wash Script ==================
+
+ @GetMapping("/wash-script/{toolId}")
+ public AiWashScript getWashScript(@PathVariable Long toolId) {
+ return washScriptService.getOne(
+ new LambdaQueryWrapper().eq(AiWashScript::getToolId, toolId)
+ );
+ }
+
+ @PostMapping("/wash-script")
+ public AiWashScript saveWashScript(@RequestBody AiWashScript script) {
+ AiWashScript existing = washScriptService.getOne(
+ new LambdaQueryWrapper().eq(AiWashScript::getToolId, script.getToolId())
+ );
+ if (existing != null) {
+ existing.setJsScript(script.getJsScript());
+ existing.setVersion(existing.getVersion() + 1);
+ washScriptService.updateById(existing);
+ return existing;
+ } else {
+ script.setVersion(1);
+ washScriptService.save(script);
+ return script;
+ }
+ }
+
+ @PostMapping("/wash-script/test")
+ public Map testWashScript(@RequestBody Map request) {
+ // TODO: invoke GraalVM engine to test the script
+ Map result = new HashMap<>();
+ result.put("status", "Test endpoint placeholder — will invoke GraalVM sandbox in next phase");
+ result.put("input", request.getOrDefault("rawJson", ""));
+ return result;
+ }
+
+ // ================== Audit Log ==================
+
+ @GetMapping("/audit-log")
+ public List listAuditLogs(
+ @RequestParam(required = false) String traceId,
+ @RequestParam(required = false) String toolName
+ ) {
+ LambdaQueryWrapper qw = new LambdaQueryWrapper<>();
+ if (traceId != null && !traceId.isBlank()) qw.eq(AiAuditLog::getTraceId, traceId);
+ if (toolName != null && !toolName.isBlank()) qw.eq(AiAuditLog::getToolName, toolName);
+ qw.orderByDesc(AiAuditLog::getId);
+ qw.last("LIMIT 200");
+ return auditLogService.list(qw);
+ }
+
+ // ================== AI Copilot Mock ==================
+
+ @PostMapping("/copilot/generate-wash-script")
+ public Map generateWashScript(@RequestBody Map request) {
+ String systemPrompt = """
+ # Role
+ 你是一个资深的 JavaScript 数据处理专家与大模型工程架构师。
+
+ # Objective
+ 根据用户提供的【原始庞大 JSON 样例】和【自然语言提取要求】,编写一段精简、安全、高效的 JavaScript 代码,用于在 GraalVM 环境下对 JSON 进行瘦身清洗。
+ """;
+
+ Map response = new HashMap<>();
+ response.put("mockedSystemPrompt", systemPrompt);
+ response.put("status", "This endpoint should delegate to an LLM provider to generate the JS string.");
+ response.put("dummyOutput", "function wash(rawJsonString) { return '{}'; }");
+ return response;
+ }
+}
diff --git a/src/main/java/com/cicc/enterprise/gateway/controller/GatewayEntryController.java b/backend/src/main/java/com/cicc/enterprise/gateway/controller/GatewayEntryController.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/controller/GatewayEntryController.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/controller/GatewayEntryController.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/engine/GraalVmJsEngine.java b/backend/src/main/java/com/cicc/enterprise/gateway/engine/GraalVmJsEngine.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/engine/GraalVmJsEngine.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/engine/GraalVmJsEngine.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/engine/LocalCacheManager.java b/backend/src/main/java/com/cicc/enterprise/gateway/engine/LocalCacheManager.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/engine/LocalCacheManager.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/engine/LocalCacheManager.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/engine/OkHttpProxyClient.java b/backend/src/main/java/com/cicc/enterprise/gateway/engine/OkHttpProxyClient.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/engine/OkHttpProxyClient.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/engine/OkHttpProxyClient.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/filter/core/ExecutionStrategy.java b/backend/src/main/java/com/cicc/enterprise/gateway/filter/core/ExecutionStrategy.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/filter/core/ExecutionStrategy.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/filter/core/ExecutionStrategy.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/filter/core/GatewayContext.java b/backend/src/main/java/com/cicc/enterprise/gateway/filter/core/GatewayContext.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/filter/core/GatewayContext.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/filter/core/GatewayContext.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/filter/core/GatewayFilter.java b/backend/src/main/java/com/cicc/enterprise/gateway/filter/core/GatewayFilter.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/filter/core/GatewayFilter.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/filter/core/GatewayFilter.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/filter/core/GatewayFilterChain.java b/backend/src/main/java/com/cicc/enterprise/gateway/filter/core/GatewayFilterChain.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/filter/core/GatewayFilterChain.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/filter/core/GatewayFilterChain.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/filter/core/GatewayFilterExecutor.java b/backend/src/main/java/com/cicc/enterprise/gateway/filter/core/GatewayFilterExecutor.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/filter/core/GatewayFilterExecutor.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/filter/core/GatewayFilterExecutor.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/filter/impl/AsyncAuditFilter.java b/backend/src/main/java/com/cicc/enterprise/gateway/filter/impl/AsyncAuditFilter.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/filter/impl/AsyncAuditFilter.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/filter/impl/AsyncAuditFilter.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/filter/impl/AuthRateLimitingFilter.java b/backend/src/main/java/com/cicc/enterprise/gateway/filter/impl/AuthRateLimitingFilter.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/filter/impl/AuthRateLimitingFilter.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/filter/impl/AuthRateLimitingFilter.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/filter/impl/ConfigWatcherFilter.java b/backend/src/main/java/com/cicc/enterprise/gateway/filter/impl/ConfigWatcherFilter.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/filter/impl/ConfigWatcherFilter.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/filter/impl/ConfigWatcherFilter.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/filter/impl/GraalVmWashingFilter.java b/backend/src/main/java/com/cicc/enterprise/gateway/filter/impl/GraalVmWashingFilter.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/filter/impl/GraalVmWashingFilter.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/filter/impl/GraalVmWashingFilter.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/filter/impl/HitlSuspenderFilter.java b/backend/src/main/java/com/cicc/enterprise/gateway/filter/impl/HitlSuspenderFilter.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/filter/impl/HitlSuspenderFilter.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/filter/impl/HitlSuspenderFilter.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/filter/impl/HttpExecutionStrategyImpl.java b/backend/src/main/java/com/cicc/enterprise/gateway/filter/impl/HttpExecutionStrategyImpl.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/filter/impl/HttpExecutionStrategyImpl.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/filter/impl/HttpExecutionStrategyImpl.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/filter/impl/IdentityOboFilter.java b/backend/src/main/java/com/cicc/enterprise/gateway/filter/impl/IdentityOboFilter.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/filter/impl/IdentityOboFilter.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/filter/impl/IdentityOboFilter.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/filter/impl/ProxyExecutionFilter.java b/backend/src/main/java/com/cicc/enterprise/gateway/filter/impl/ProxyExecutionFilter.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/filter/impl/ProxyExecutionFilter.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/filter/impl/ProxyExecutionFilter.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/mapper/AiAuditLogMapper.java b/backend/src/main/java/com/cicc/enterprise/gateway/mapper/AiAuditLogMapper.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/mapper/AiAuditLogMapper.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/mapper/AiAuditLogMapper.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/mapper/AiTenantMapper.java b/backend/src/main/java/com/cicc/enterprise/gateway/mapper/AiTenantMapper.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/mapper/AiTenantMapper.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/mapper/AiTenantMapper.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/mapper/AiTenantToolRelMapper.java b/backend/src/main/java/com/cicc/enterprise/gateway/mapper/AiTenantToolRelMapper.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/mapper/AiTenantToolRelMapper.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/mapper/AiTenantToolRelMapper.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/mapper/AiToolRegistryMapper.java b/backend/src/main/java/com/cicc/enterprise/gateway/mapper/AiToolRegistryMapper.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/mapper/AiToolRegistryMapper.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/mapper/AiToolRegistryMapper.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/mapper/AiWashScriptMapper.java b/backend/src/main/java/com/cicc/enterprise/gateway/mapper/AiWashScriptMapper.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/mapper/AiWashScriptMapper.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/mapper/AiWashScriptMapper.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/model/AiAuditLog.java b/backend/src/main/java/com/cicc/enterprise/gateway/model/AiAuditLog.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/model/AiAuditLog.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/model/AiAuditLog.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/model/AiTenant.java b/backend/src/main/java/com/cicc/enterprise/gateway/model/AiTenant.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/model/AiTenant.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/model/AiTenant.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/model/AiTenantToolRel.java b/backend/src/main/java/com/cicc/enterprise/gateway/model/AiTenantToolRel.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/model/AiTenantToolRel.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/model/AiTenantToolRel.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/model/AiToolRegistry.java b/backend/src/main/java/com/cicc/enterprise/gateway/model/AiToolRegistry.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/model/AiToolRegistry.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/model/AiToolRegistry.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/model/AiWashScript.java b/backend/src/main/java/com/cicc/enterprise/gateway/model/AiWashScript.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/model/AiWashScript.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/model/AiWashScript.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/service/AiAuditLogService.java b/backend/src/main/java/com/cicc/enterprise/gateway/service/AiAuditLogService.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/service/AiAuditLogService.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/service/AiAuditLogService.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/service/AiTenantService.java b/backend/src/main/java/com/cicc/enterprise/gateway/service/AiTenantService.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/service/AiTenantService.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/service/AiTenantService.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/service/AiTenantToolRelService.java b/backend/src/main/java/com/cicc/enterprise/gateway/service/AiTenantToolRelService.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/service/AiTenantToolRelService.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/service/AiTenantToolRelService.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/service/AiToolRegistryService.java b/backend/src/main/java/com/cicc/enterprise/gateway/service/AiToolRegistryService.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/service/AiToolRegistryService.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/service/AiToolRegistryService.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/service/AiWashScriptService.java b/backend/src/main/java/com/cicc/enterprise/gateway/service/AiWashScriptService.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/service/AiWashScriptService.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/service/AiWashScriptService.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/service/impl/AiAuditLogServiceImpl.java b/backend/src/main/java/com/cicc/enterprise/gateway/service/impl/AiAuditLogServiceImpl.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/service/impl/AiAuditLogServiceImpl.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/service/impl/AiAuditLogServiceImpl.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/service/impl/AiTenantServiceImpl.java b/backend/src/main/java/com/cicc/enterprise/gateway/service/impl/AiTenantServiceImpl.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/service/impl/AiTenantServiceImpl.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/service/impl/AiTenantServiceImpl.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/service/impl/AiTenantToolRelServiceImpl.java b/backend/src/main/java/com/cicc/enterprise/gateway/service/impl/AiTenantToolRelServiceImpl.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/service/impl/AiTenantToolRelServiceImpl.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/service/impl/AiTenantToolRelServiceImpl.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/service/impl/AiToolRegistryServiceImpl.java b/backend/src/main/java/com/cicc/enterprise/gateway/service/impl/AiToolRegistryServiceImpl.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/service/impl/AiToolRegistryServiceImpl.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/service/impl/AiToolRegistryServiceImpl.java
diff --git a/src/main/java/com/cicc/enterprise/gateway/service/impl/AiWashScriptServiceImpl.java b/backend/src/main/java/com/cicc/enterprise/gateway/service/impl/AiWashScriptServiceImpl.java
similarity index 100%
rename from src/main/java/com/cicc/enterprise/gateway/service/impl/AiWashScriptServiceImpl.java
rename to backend/src/main/java/com/cicc/enterprise/gateway/service/impl/AiWashScriptServiceImpl.java
diff --git a/src/main/resources/application.yml b/backend/src/main/resources/application.yml
similarity index 84%
rename from src/main/resources/application.yml
rename to backend/src/main/resources/application.yml
index 61e4e49..3af8a36 100644
--- a/src/main/resources/application.yml
+++ b/backend/src/main/resources/application.yml
@@ -1,12 +1,14 @@
server:
port: 8080
spring:
+ profiles:
+ active: dev
application:
name: ai-agent-gateway
datasource:
- url: jdbc:mysql://127.0.0.1:3306/db_agent_gateway?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=true
+ url: jdbc:mysql://127.0.0.1:3306/db_agent_gateway?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false
username: root
- password: Gmcc@123
+ password: YOUR_PASSWORD_HERE # Please configure actual password in application-dev.yml
driver-class-name: com.mysql.cj.jdbc.Driver
data:
redis:
diff --git a/src/main/resources/schema.sql b/backend/src/main/resources/schema.sql
similarity index 100%
rename from src/main/resources/schema.sql
rename to backend/src/main/resources/schema.sql
diff --git a/disign.md b/disign.md
index 87e1478..e646cf2 100644
--- a/disign.md
+++ b/disign.md
@@ -1,12 +1,3 @@
-# enterprise-ai-agent-gateway
-企业级 AI 智能体网关
-
-这份终稿设计书已经为你全面整合完毕。它不仅包含了底层的**数据库模型**和**网关责任链**,还把你刚刚关心的**“前端如何降低脚本编写成本”**的设计思路,以及核心的**系统提示词(System Prompt)**全部固化了进去。
-
-你可以直接将以下全部内容复制,喂给 Antigravity,让它开始生成骨架代码。
-
-***
-
# 🚀 Enterprise AI Agent Gateway (企业级 AI 智能体网关) - 核心架构与开发设计书
## 1. 架构定位与核心设计理念
@@ -128,7 +119,4 @@ function wash(rawJsonString) {
return JSON.stringify({ error: "数据清洗失败" });
}
}
-```
-***
-
-把这份文档丢给 Antigravity 后,你可以直接下达指令:**“请先根据第 3 节生成所有 MySQL 建表语句,然后生成第 5 节的 Filter 责任链代码骨架。”** 期待你的架构早日跑通!
\ No newline at end of file
+```
\ No newline at end of file
diff --git a/frontend/.gitignore b/frontend/.gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/frontend/.gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/frontend/.vscode/extensions.json b/frontend/.vscode/extensions.json
new file mode 100644
index 0000000..a7cea0b
--- /dev/null
+++ b/frontend/.vscode/extensions.json
@@ -0,0 +1,3 @@
+{
+ "recommendations": ["Vue.volar"]
+}
diff --git a/frontend/README.md b/frontend/README.md
new file mode 100644
index 0000000..1511959
--- /dev/null
+++ b/frontend/README.md
@@ -0,0 +1,5 @@
+# Vue 3 + Vite
+
+This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 `
+