From fdb4e439cf164f5a90e0e9f14f7655a42085ac57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E4=BA=8C=E7=8B=97?= Date: Thu, 21 May 2026 09:08:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 4 ++-- .gitignore | 5 +---- README.md | 8 +++---- package.json | 10 ++++----- packages/backend/CLAUDE.md | 4 ++-- packages/backend/bootstrap.js | 6 ++--- .../backend/installer/config.default.yaml | 6 ++--- packages/backend/package.json | 4 ++-- packages/backend/preload.js | 4 ++-- packages/backend/src/comm/runtime-lock.ts | 4 ++-- packages/backend/src/comm/runtime-secret.ts | 2 +- packages/backend/src/config/config.default.ts | 12 +++++----- packages/backend/src/config/config.prod.ts | 2 +- packages/backend/src/configuration.ts | 12 +++++----- packages/frontend/.env.development | 2 +- packages/frontend/.env.production | 2 +- packages/frontend/CLAUDE.md | 6 ++--- packages/frontend/package.json | 2 +- packages/frontend/src/modules/agent/config.ts | 12 +++++----- .../agent/views/channel-management.vue | 22 +++++++++---------- .../frontend/src/modules/agent/views/chat.vue | 2 +- .../src/modules/base/pages/login/index.vue | 4 ++-- packages/netabrowser-cli/package.json | 4 ++-- packages/shared/package.json | 2 +- scripts/dev-all.js | 12 +++++----- 25 files changed, 75 insertions(+), 78 deletions(-) diff --git a/.env.example b/.env.example index b5a3e21..494731b 100644 --- a/.env.example +++ b/.env.example @@ -1,8 +1,8 @@ -# Neta Monorepo 环境变量配置示例 +# GPU Guard Monorepo 环境变量配置示例 # 注意:后端数据库配置在 packages/backend/src/config/config.local.ts 中 # 后端端口 NODE_ENV=local -# AI 配置 (AI Flow 后端使用) +# AI 配置 (GPU Guard 后端使用) OPENAI_API_KEY=your_openai_key diff --git a/.gitignore b/.gitignore index 680779e..da49098 100644 --- a/.gitignore +++ b/.gitignore @@ -62,10 +62,7 @@ coverage/ .cache/ .worktrees/ -# Claude Code -.claude/settings.local.json +# Agent tooling .claude/ .husky/ .superpowers/ -/.husky/ -/.claude/ diff --git a/README.md b/README.md index 0f01b2a..2022627 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# Neta AI电商 - AI驱动的电商自动化运营平台 +# GPU Guard - GPU 智能监控与防护平台 -> 基于 Midway.js + Vue 3 + NetaClaw AI引擎 的智能电商运营平台,Monorepo 架构 +> 基于 Midway.js + Vue 3 + AI引擎 的智能 GPU 监控平台,Monorepo 架构 ## 技术架构 @@ -8,7 +8,7 @@ |------|---------|------| | **后端** | Midway.js 3.20 + TypeScript 5.9 + TypeORM + Cool Admin | 8003 | | **前端** | Vue 3.5 + Vite 5.4 + Element Plus 2.9 + Pinia | 9001 | -| **AI 引擎** | NetaClaw (ReAct 循环 + TypeBox Schema + WebSocket) | - | +| **AI 引擎** | AI Agent 引擎 (ReAct 循环 + TypeBox Schema + WebSocket) | - | | **数据库** | MySQL 8.0+ | 3306 | ## 项目结构 @@ -62,7 +62,7 @@ pnpm dev:frontend # 前端 http://localhost:9001 | 模块 | 路由前缀 | 用途 | |------|---------|------| -| **agent** | `/agent/*` | Agent 对话、Skill 管理、模型渠道管理 | +| **agent** | `/agent/*` | 智能体对话、技能管理、模型渠道管理 | | **base** | `/` | 登录、用户、角色、菜单、部门 | ## 数据库 diff --git a/package.json b/package.json index 448e6f5..01be863 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { - "name": "neta-monorepo", + "name": "gpu-guard-monorepo", "version": "0.1.0", "private": true, - "description": "Neta AI电商 - AI驱动的电商自动化运营平台", + "description": "GPU Guard - GPU 智能监控与防护平台", "pnpm": { "overrides": { "@cool-midway/core": "8.0.7" @@ -13,9 +13,9 @@ ] }, "scripts": { - "dev": "pnpm --parallel --filter @neta/backend --filter @neta/frontend dev", - "dev:backend": "pnpm --filter @neta/backend dev", - "dev:frontend": "pnpm --filter @neta/frontend dev", + "dev": "pnpm --parallel --filter @gpu-guard/backend --filter @gpu-guard/frontend dev", + "dev:backend": "pnpm --filter @gpu-guard/backend dev", + "dev:frontend": "pnpm --filter @gpu-guard/frontend dev", "build": "pnpm --filter './packages/*' build", "test": "pnpm --filter './packages/*' test", "lint": "pnpm --filter './packages/*' lint", diff --git a/packages/backend/CLAUDE.md b/packages/backend/CLAUDE.md index f973e48..b741a47 100644 --- a/packages/backend/CLAUDE.md +++ b/packages/backend/CLAUDE.md @@ -1,8 +1,8 @@ -# CLAUDE.md - Neta AI电商 后端 +# CLAUDE.md - GPU Guard 后端 ## 项目概述 -Neta AI电商 后端 - 基于 Midway.js + Cool Admin 框架的 AI 电商运营平台后端。 +GPU Guard 后端 - 基于 Midway.js + Cool Admin 框架的 GPU 智能监控平台后端。 **技术栈**: Midway.js 3.20 + TypeScript 5.9 + TypeORM + Cool Admin 8.x + MySQL 8+ **端口**: 8003 diff --git a/packages/backend/bootstrap.js b/packages/backend/bootstrap.js index d842ae0..3b02fa7 100644 --- a/packages/backend/bootstrap.js +++ b/packages/backend/bootstrap.js @@ -4,10 +4,10 @@ const { resolveTraySecret } = require('./dist/comm/runtime-secret'); const traySecret = resolveTraySecret(process.argv, process.env); if (traySecret) { - process.env.NETA_TRAY_SECRET = traySecret; + process.env.GPU_GUARD_TRAY_SECRET = traySecret; } if (process.argv.includes('--no-browser')) { - process.env.NETA_NO_BROWSER = 'true'; + process.env.GPU_GUARD_NO_BROWSER = 'true'; } if (process.argv.includes('--version')) { @@ -17,7 +17,7 @@ if (process.argv.includes('--version')) { const configArgIndex = process.argv.indexOf('--config'); if (configArgIndex > -1 && process.argv[configArgIndex + 1]) { - process.env.NETA_CONFIG_PATH = process.argv[configArgIndex + 1]; + process.env.GPU_GUARD_CONFIG_PATH = process.argv[configArgIndex + 1]; } try { diff --git a/packages/backend/installer/config.default.yaml b/packages/backend/installer/config.default.yaml index d7878ed..65406d1 100644 --- a/packages/backend/installer/config.default.yaml +++ b/packages/backend/installer/config.default.yaml @@ -2,7 +2,7 @@ server: port: 8003 data: - dir: "C:\\NetaData" + dir: "C:\\GPUGuardData" autoOpenBrowser: true @@ -10,6 +10,6 @@ database: type: mysql host: "120.48.5.80" port: 3306 - username: "neta_test" + username: "cpu_guard" password: "m8FmsnnfJ3znPkdx" - database: "neta_test" + database: "cpu_guard" diff --git a/packages/backend/package.json b/packages/backend/package.json index c744eb5..3e3bd43 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,7 +1,7 @@ { - "name": "@neta/backend", + "name": "@gpu-guard/backend", "version": "8.0.0", - "description": "AI Flow 审核平台后端 - 基于 Midway.js + Cool Admin 的 AI 流程编排引擎", + "description": "GPU Guard 平台后端 - 基于 Midway.js + Cool Admin 的 GPU 智能监控引擎", "private": true, "overrides": { "@cool-midway/core": "8.0.7" diff --git a/packages/backend/preload.js b/packages/backend/preload.js index a637db9..e741c01 100644 --- a/packages/backend/preload.js +++ b/packages/backend/preload.js @@ -3,8 +3,8 @@ * * Cool Admin 的 LocationUtil.getRunPath() 通过 Error stack trace 中的 * node_modules 位置反推项目根目录。在 pnpm monorepo 中,node_modules - * 被提升到根目录,导致解析到 Neta-monorepo/dist 而非 - * Neta-monorepo/packages/backend/dist(或src),使得模块配置无法加载。 + * 被提升到根目录,导致解析到 GPU_GUARD_MONOREPO/dist 而非 + * GPU_GUARD_MONOREPO/packages/backend/dist(或src),使得模块配置无法加载。 * * 本脚本通过 --require 或 NODE_OPTIONS 在所有模块加载前修补 getRunPath。 */ diff --git a/packages/backend/src/comm/runtime-lock.ts b/packages/backend/src/comm/runtime-lock.ts index 843e548..94fc99f 100644 --- a/packages/backend/src/comm/runtime-lock.ts +++ b/packages/backend/src/comm/runtime-lock.ts @@ -12,9 +12,9 @@ export function acquireRuntimeLock(lockPath: string) { const current = JSON.parse(fs.readFileSync(lockPath, 'utf8')) as { pid: number }; try { process.kill(current.pid, 0); - throw new Error(`Neta 已在运行,PID=${current.pid}`); + throw new Error(`GPU Guard 已在运行,PID=${current.pid}`); } catch (e: any) { - if (e.message?.includes('Neta 已在运行')) throw e; + if (e.message?.includes('GPU Guard 已在运行')) throw e; // Stale lock — remove and retry fs.rmSync(lockPath, { force: true }); fs.writeFileSync(lockPath, data, 'utf8'); diff --git a/packages/backend/src/comm/runtime-secret.ts b/packages/backend/src/comm/runtime-secret.ts index ffbd180..03cd71a 100644 --- a/packages/backend/src/comm/runtime-secret.ts +++ b/packages/backend/src/comm/runtime-secret.ts @@ -16,7 +16,7 @@ export function validateRuntimeSecret(expected?: string, actual?: string | null) export function resolveTraySecret(argv: string[], env: NodeJS.ProcessEnv) { const index = argv.indexOf('--tray-secret'); if (index > -1 && argv[index + 1]) return argv[index + 1]; - return env.NETA_TRAY_SECRET || ''; + return env.GPU_GUARD_TRAY_SECRET || ''; } export function createRuntimeSecret() { diff --git a/packages/backend/src/config/config.default.ts b/packages/backend/src/config/config.default.ts index fce6969..6592a7d 100644 --- a/packages/backend/src/config/config.default.ts +++ b/packages/backend/src/config/config.default.ts @@ -109,15 +109,15 @@ export default { }, }, autoOpenBrowser: - process.env.NETA_NO_BROWSER !== 'true' && - ((global as any).__NETA_EXTERNAL_CONFIG__?.autoOpenBrowser ?? false), - // NetaClaw Agent 引擎配置 + process.env.GPU_GUARD_NO_BROWSER !== 'true' && + ((global as any).__GPU_GUARD_EXTERNAL_CONFIG__?.autoOpenBrowser ?? false), + // GPU Guard AI 引擎配置 netaclaw: { defaultModel: 'anthropic:claude-sonnet-4-20250514', apiKeys: { - anthropic: process.env.NETACLAW_ANTHROPIC_KEY ?? '', - openai: process.env.NETACLAW_OPENAI_KEY ?? '', - deepseek: process.env.NETACLAW_DEEPSEEK_KEY ?? '', + anthropic: process.env.GPUCLAW_ANTHROPIC_KEY ?? '', + openai: process.env.GPUCLAW_OPENAI_KEY ?? '', + deepseek: process.env.GPUCLAW_DEEPSEEK_KEY ?? '', }, skillsDir: path.join(resolvedDataDir, 'skills'), dataDir: resolvedDataDir, diff --git a/packages/backend/src/config/config.prod.ts b/packages/backend/src/config/config.prod.ts index b9e2ac8..032331f 100644 --- a/packages/backend/src/config/config.prod.ts +++ b/packages/backend/src/config/config.prod.ts @@ -3,7 +3,7 @@ import { MidwayConfig } from '@midwayjs/core'; import { entities } from '../entities'; import { TenantSubscriber } from '../modules/base/db/tenant'; -const external = (global as any).__NETA_EXTERNAL_CONFIG__; +const external = (global as any).__GPU_GUARD_EXTERNAL_CONFIG__; export default { typeorm: { diff --git a/packages/backend/src/configuration.ts b/packages/backend/src/configuration.ts index 64f099d..c9fc075 100644 --- a/packages/backend/src/configuration.ts +++ b/packages/backend/src/configuration.ts @@ -86,20 +86,20 @@ export class MainConfiguration { ensureDpiAware(); const dataDir = pDataPath(); - const lockPath = path.join(dataDir, 'neta.lock'); + const lockPath = path.join(dataDir, 'gpu-guard.lock'); const runtimeInfoPath = path.join(dataDir, 'runtime-info.json'); - const configDir = path.dirname(process.env.NETA_CONFIG_PATH || process.execPath); + const configDir = path.dirname(process.env.GPU_GUARD_CONFIG_PATH || process.execPath); const port = this.app.getConfig('koa.port'); const startedAt = new Date().toISOString(); - (global as any).__NETA_RUNTIME_STARTED_AT__ = startedAt; - (global as any).__NETA_RUNTIME_READY__ = false; + (global as any).__GPU_GUARD_RUNTIME_STARTED_AT__ = startedAt; + (global as any).__GPU_GUARD_RUNTIME_READY__ = false; acquireRuntimeLock(lockPath); process.on('exit', () => releaseRuntimeLock(lockPath)); registerGracefulShutdown(async () => { - (global as any).__NETA_RUNTIME_READY__ = false; + (global as any).__GPU_GUARD_RUNTIME_READY__ = false; clearRuntimeInfo(runtimeInfoPath); releaseRuntimeLock(lockPath); setTimeout(() => process.exit(0), 50); @@ -122,7 +122,7 @@ export class MainConfiguration { .getAsync(DesktopOpConfigBootstrap); await desktopOpBootstrap.ensureConfigAndLoad(); - (global as any).__NETA_RUNTIME_READY__ = true; + (global as any).__GPU_GUARD_RUNTIME_READY__ = true; writeRuntimeInfo(runtimeInfoPath, { pid: process.pid, ready: true, diff --git a/packages/frontend/.env.development b/packages/frontend/.env.development index 91f670d..3cea21c 100644 --- a/packages/frontend/.env.development +++ b/packages/frontend/.env.development @@ -1,7 +1,7 @@ # 【开发】环境变量 # 应用名称 -VITE_NAME = "AI Flow 智能审核平台" +VITE_NAME = "GPU Guard 智能监控平台" # 前端开发服务器端口 VITE_PORT = 9001 diff --git a/packages/frontend/.env.production b/packages/frontend/.env.production index 29691be..d852b5a 100644 --- a/packages/frontend/.env.production +++ b/packages/frontend/.env.production @@ -1,5 +1,5 @@ # 应用名称 -VITE_NAME = "AI Flow 智能审核平台" +VITE_NAME = "GPU Guard 智能监控平台" # 网络超时请求时间 VITE_TIMEOUT = 30000 diff --git a/packages/frontend/CLAUDE.md b/packages/frontend/CLAUDE.md index 01f486e..5825d84 100644 --- a/packages/frontend/CLAUDE.md +++ b/packages/frontend/CLAUDE.md @@ -1,8 +1,8 @@ -# CLAUDE.md - Neta AI电商 前端 +# CLAUDE.md - GPU Guard 前端 ## 项目概述 -Neta AI电商 前端 - 基于 Vue 3 + Cool Admin UI 的 AI 电商运营平台前端。 +GPU Guard 前端 - 基于 Vue 3 + Cool Admin UI 的 GPU 智能监控平台前端。 **技术栈**: Vue 3.5 + TypeScript 5.5 + Vite 5.4 + Element Plus 2.9 + Pinia **端口**: 9001 @@ -95,7 +95,7 @@ service.project.info.info({ id: 1 }) // GET /admin/project/info/i | 模块 | 路由前缀 | 关键页面 | |------|---------|---------| | **base** | `/` | 登录(Canvas星河动画)、首页、用户管理、角色管理、菜单管理、部门管理 | -| **agent** | `/agent/*` | Agent对话(WebSocket)、Agent管理、Skill管理、模型渠道管理、检测结果 | +| **agent** | `/agent/*` | 智能体对话(WebSocket)、智能体管理、技能管理、模型渠道管理、检测结果 | | **project** | `/project/*` | 项目列表、项目详情(甘特图/日历/看板/列表四视图) | | **data** | `/data/*` | 商业健康险创新药、医保药品管理 | | **dict** | `/dict/*` | 字典管理 | diff --git a/packages/frontend/package.json b/packages/frontend/package.json index 8aabe0b..880267e 100644 --- a/packages/frontend/package.json +++ b/packages/frontend/package.json @@ -1,5 +1,5 @@ { - "name": "@neta/frontend", + "name": "@gpu-guard/frontend", "version": "8.0.0", "type": "module", "scripts": { diff --git a/packages/frontend/src/modules/agent/config.ts b/packages/frontend/src/modules/agent/config.ts index 2db7ec8..548c3e8 100644 --- a/packages/frontend/src/modules/agent/config.ts +++ b/packages/frontend/src/modules/agent/config.ts @@ -3,27 +3,27 @@ import { type ModuleConfig } from '/@/cool'; export default (): ModuleConfig => { return { name: 'agent', - label: 'Agent 对话', + label: 'AI 智能体', order: 100, views: [ { path: '/agent/chat', - meta: { label: 'Agent 对话' }, + meta: { label: '智能体对话' }, component: () => import('./views/chat.vue') }, { path: '/agent/agents', - meta: { label: 'Agent 管理' }, + meta: { label: '智能体管理' }, component: () => import('./views/agent-list.vue') }, { path: '/agent/tools', - meta: { label: 'Tool 管理' }, + meta: { label: '工具管理' }, component: () => import('./views/tools.vue') }, { path: '/agent/skills', - meta: { label: 'Skill 管理' }, + meta: { label: '技能管理' }, component: () => import('./views/skills.vue') }, { @@ -43,7 +43,7 @@ export default (): ModuleConfig => { }, { path: '/agent/crew-editor', - meta: { label: 'Agent 编排' }, + meta: { label: '智能体编排' }, component: () => import('./views/crew-editor.vue') }, { diff --git a/packages/frontend/src/modules/agent/views/channel-management.vue b/packages/frontend/src/modules/agent/views/channel-management.vue index 57e3818..1ab2fc3 100644 --- a/packages/frontend/src/modules/agent/views/channel-management.vue +++ b/packages/frontend/src/modules/agent/views/channel-management.vue @@ -3,7 +3,7 @@

频道管理

-

支持两种模式:ClawBot 私聊助手(扫码登录独立 bot 账号,用于一对一私聊);微信本地代理 weixin-db(从本机 PC 微信数据库读取消息,用于群聊场景,需 Windows + 已登录 PC 微信)。

+

支持两种模式:微信私聊助手(扫码登录独立 bot 账号,用于一对一私聊);微信本地代理 weixin-db(从本机 PC 微信数据库读取消息,用于群聊场景,需 Windows + 已登录 PC 微信)。

@@ -96,7 +96,7 @@